Interruptor Posted March 7, 2006 Report Share Posted March 7, 2006 Hallo! Ich habe einen Geburtstags reminder angefangen zu schreiben. Ist etwas schlampig programmiert aber ich br?uchte in einer anderen art eure Hilfe. Ich m?chte, dass 10 Tage vor dem Tag X eine Email an den User geschickt wird. Wie kann ich soetwas automatisieren. Da muss doch etwas immer automatisch im hintergrund laufen. Oder muss ich da noch ein script ausf?hren, welches durch cron jobs automatisiert wir. <?php $id = $_SESSION["customer_id"]; $i = 0; $del = $_REQUEST['delete']; echo "<P>"; //Geburtstagstermin aus der Datenbank l?schen// if ($del != "") { mysql_query("Delete from geburtstag_reminder where geb_id = " . $del); } //Hinzuf?gen einer Geburtstagserinnerrung// if (($_REQUEST["name"] != "") && ($_REQUEST["tag"] != "") && ($_REQUEST["monat"] != "") && ($_REQUEST["jahr"] != "")) { $name == $_REQUEST["name"]; $tag == $_REQUEST["tag"]; $monat == $_REQUEST["monat"]; $jahr == $_REQUEST["jahr"]; $datum = $jahr . "." . $monat . "." . $tag; mysql_query("insert into geburtstag_reminder (customers_id, geb_name, geb_datum) values ('$id', '$name', '$datum')"); } //Auflisten der bereits angelegten Geburtstagserinnerungen// $res = mysql_query("Select * from geburtstag_reminder where customers_id = $id"); echo "<table width='70%'>"; while ($dsatz = mysql_fetch_assoc($res)) { $i = $i + 1; echo "<tr>"; echo "<td width='5%'>"; echo $i; echo "</td>"; echo "<td width='35%'>"; echo $dsatz["geb_name"]; echo "</td>"; echo "<td width='20%'>"; echo $dsatz["geb_datum"]; echo "</td>"; echo "<td width='20%'>"; $gebid = $dsatz["geb_id"]; echo "<form name='loeschen' method='post'>"; echo "<input type='hidden' name='delete' value='$gebid'>"; echo "<input type='submit' value='löschen'>"; echo "</form>"; echo "</tr>"; } echo "</table>"; ?> <script language="JavaScript" type="text/javascript"> function pruefen() { var Wert = document.birthday.tag.value; if(isNaN(Wert) == true || Wert < 0 || Wert > 31) { alert(Wert + " ist keine Zahl oder kein gueltiger Tag!"); return false; } else return pruefen1(); } function pruefen1() { var Wert = document.birthday.monat.value; if(isNaN(Wert) == true || Wert < 1 || Wert > 12) { alert(Wert + " ist keine Zahl oder kein gueltiger Monat!"); return false; } else return pruefen2(); } function pruefen2() { var Wert = document.birthday.jahr.value; if(isNaN(Wert) == true || Wert < 1900 || Wert > 3000) { alert(Wert + " ist keine Zahl oder kein gueltiges Jahr!"); return false; } else return true(); } </Script> <p> <form method="post" name="birthday" onSubmit="return pruefen();"> <table width="100%"> <tr> <td width="30%"> <b>Name</b> </td> <td width="10%"> <b>Tag</b> </td> <td width="10%"> <b>Monat</b> </td> <td width="10%"> <b>Jahr</b> </td> <td width="20%"></td> <td width="20%"></td> </tr> <tr> <td width="30%"> <input type="text" name="name" size="25" length="50"> </td> <td width="10%"> <input type="text" name="tag" size="2" length="2"> </td> <td width="10%"> <input type="text" length="2" size="2" name="monat"> </td> <td width="10%"> <input type="text" length="4" size="4" name="jahr"> </td> <td width="20%"> <input type="submit" value="speichern"> </td> <td width="20%"> <input type="reset"> </td> </tr> </table> </form> Vielen Dank schonmal Link to comment Share on other sites More sharing options...
bara.munchies Posted March 7, 2006 Report Share Posted March 7, 2006 Sehr gute idee, vielleicht kannst du noch einbauen, dass der kunden automatisch nen gutschein bekommt? kann dir leider nicht helfen mit dem code, nur weiss ich, dass der bedarf f?r so ein modul sehr gross ist. Vielleicht motiviert das etwas. Link to comment Share on other sites More sharing options...
Interruptor Posted March 7, 2006 Author Report Share Posted March 7, 2006 Das w?re nat?rlich auch machbar. Allerdings ?berlass ich das dan den entwicklern, da ich nur ein klein wenig programmiern kann wie man an der programmier art erkennen kann. Zudem denke ich, dass es im Adminbereich auch noch gut eingepflegt w?re. Aber ich kann nur den ansporn geben. Ich brauche es jetzt kann dann auch alles hier rein posten. Aber ich weis einfach nicht wie ich das mit dem verschicken der mails machen soll, dass die 10 Tage vorher benachrichtigt werden. Gr??le der Interruptor Link to comment Share on other sites More sharing options...
diepowertrader Posted March 7, 2006 Report Share Posted March 7, 2006 hiho, finde ich auch ne super idee, wir w?rden sogar soweit gehen und unserem Kunden ein klienes Geburtstagsgeschenk machen und dieses 3 4 Tage vorher versenden damit er dann sch?n sein geburtstagsgeld bei uns wieder ausgeben kann Link to comment Share on other sites More sharing options...
techway Posted March 7, 2006 Report Share Posted March 7, 2006 Hallo, ich hatte mal vor einer Zeit lang, sowas ?hnliches schon gemacht... und zwar, wenn ich bei mir in den Adminbereich reingehe, werden alle Kunden die Heute und noch in diesem Monat Geburtstag haben angezeigt... muss es nur noch sortieren (hab ich grad bemerkt) Ich hatte es auch schon mal hier im Forum gepostet... Wenns jemand interessiert kann ichs nochmal posten Gru? Steffen Link to comment Share on other sites More sharing options...
Interruptor Posted March 8, 2006 Author Report Share Posted March 8, 2006 Nun ja das ist ja alles schon fertig. Was ich brauche ist eine M?glichkeit, wie der shop automatisch 10 tage oder je nach dem wie viel man angiebt vorher die erinnerung per email verschickt, ohne das man dazu in den Adminbereich rein sieht und erst die jenigen ausw?hlen muss. Link to comment Share on other sites More sharing options...
nom Posted March 8, 2006 Report Share Posted March 8, 2006 Cronjob Link to comment Share on other sites More sharing options...
Interruptor Posted March 8, 2006 Author Report Share Posted March 8, 2006 Ok dacht ich mir schon. Dachte vieleicht, dass es eine option gibt, dass sich ein script alle 24 Stunden von selbst ausf?hrt. Sprich einmal starten und dann eine Warteschleife von 24 stunden eingebaut wird. Da ist nur die Frage wann es gestartet wird. Den das soll ja alles automatisch gehen *G*. Aber ich werde es mit cronjob l?sen. Danke Link to comment Share on other sites More sharing options...
Interruptor Posted March 8, 2006 Author Report Share Posted March 8, 2006 So jetzt hab ich etwas in php Programmiert, da f?llt mir doch ein. Wie soll ich den bitte eine php seite als cron einrichten???? Das muss doch mit nem explorer ausgef?hrt werden. So ein schei?! Da m?sste ich ein batch script schreiben. Das kann ich nicht wirklich. Kann mir da jemand helfen?? m?sste ja aus mysql ausgelesen werden. gru? Interruptor Link to comment Share on other sites More sharing options...
techway Posted March 8, 2006 Report Share Posted March 8, 2006 Hi, google doch einfach danach z.b.: http://www.phpforum.de/[email protected]_anzeigen.html Link to comment Share on other sites More sharing options...
bara.munchies Posted March 8, 2006 Report Share Posted March 8, 2006 du kannst mit einem cronjob jede url aufrufen, also auch php dateien, z.b. kann ich cronjob.de empfehlen. Link to comment Share on other sites More sharing options...
Interruptor Posted March 8, 2006 Author Report Share Posted March 8, 2006 Super!!! Vielen Dank! Unter windows hab ich ne l?sung gefunden gehabt. Da muss man nur eine batch datei schreiben in der man den explorer ?ffnet und einfach die url zu der seite dahinter h?ngt. Interruptor Link to comment Share on other sites More sharing options...
techway Posted March 16, 2006 Report Share Posted March 16, 2006 Hallo, damit alles beieinander ist, poste ich hier mal meine L?sung... ich hab jetzt noch die Sortierung eingebaut... also diesen Code: <!-- Geburtstage pr?fen - ANFANG ----------------------------------------------- realisiert durch TechWay 2004-2006--> <p><font face="Verdana" size="2"><b>Geburtstage werden ?berpr?ft!!!</b></font></p> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="100%" style="border-style: none; border-width: medium" bgcolor="cccccc" colspan="2"> <p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die heute Geburtstag haben:</font></td> </tr> <?php $ergebnis=xtc_db_query("SELECT * FROM customers ORDER BY customers_dob"); $i=0; while($row = mysql_fetch_object($ergebnis)) { $gebdat=strtotime($row->customers_dob); $gebjahr=date('Y',$gebdat); //geburtsjahr z.b. 1980 $gebmonat=date('n',$gebdat); //geburtsmonat z.b. 5 $gebtag=date('j',$gebdat); //geburtstag z.b. 20 if ($gebmonat == date('n') and $gebtag == date('j')) { //Kunde hat heute Geburtstag echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">'; echo $row->customers_firstname . " " . $row->customers_lastname; echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">'; echo xtc_date_long($row->customers_dob); echo '</font></td></tr>'; } if ($gebmonat == date('n') and $gebtag > date('j')) { //Kunde hat noch in diesem Monat Geburtstag //(nur zwischenspeichern und nach der schleife ausgeben) $geb_bald[$i][0]=$row->customers_firstname; $geb_bald[$i][1]=$row->customers_lastname; $geb_bald[$i][2]=$row->customers_dob; $i++; } } ?> <tr> <td width="100%" style="border-style: none; border-width: medium" colspan="2"></td> </tr> <tr> <td width="100%" style="border-style: none; border-width: medium" colspan="2" bgcolor="#CCCCCC"> <p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die noch in diesem Monat Geburtstag haben:</font></td> </tr> <?php //Array sortieren // BSP: 1988-03-15 00:00:00 // zun?chst ein Array bilden welcher nur die Tage beinhaltet: $anzahl = count($geb_bald); for($i=0; $i<$anzahl; $i++) { $geb_bald_sort[$i][0] = $geb_bald[$i][0]; $geb_bald_sort[$i][1] = $geb_bald[$i][1]; $geb_bald_sort[$i][2] = substr($geb_bald[$i][2],8,2); } array_qsort($geb_bald_sort, 2); //nach Tagen sortieren // nun die Reihenfolge in den Array ?bernehmen for($i=0;$i<$anzahl;$i++) { for($a=0;$a<$anzahl;$a++) { if (($geb_bald_sort[$i][0] == $geb_bald[$a][0]) && ($geb_bald_sort[$i][1] == $geb_bald[$a][1])) break; } $geb_bald_sort[$i][2] = $geb_bald[$a][2]; } // nun die Liste ausgeben for($i=0; $i<$anzahl; $i++) { echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">'; echo $geb_bald_sort[$i][0] . ' ' . $geb_bald_sort[$i][1]; echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">'; echo xtc_date_long($geb_bald_sort[$i][2]); echo '</font></td></tr>'; } echo '</table><br>'; unset($geb_bald); ?> <!-- Geburtstage pr?fen - ENDE -------------------------------------------------> in die Datei admin/start.php nach dieser Zeile: <?php include(DIR_WS_MODULES.FILENAME_SECURITY_CHECK); ?> einf?gen... au?erdem noch diese Funktion gleich am anfang der start.php nach den require einf?gen: function array_qsort (&$array, $column=0, $order=SORT_ASC, $first=0, $last= -2) { // $array - the array to be sorted // $column - index (column) on which to sort // can be a string if using an associative array // $order - SORT_ASC (default) for ascending or SORT_DESC for descending // $first - start index (row) for partial array sort // $last - stop index (row) for partial array sort // $keys - array of key values for hash array sort $keys = array_keys($array); if($last == -2) $last = count($array) - 1; if($last > $first) { $alpha = $first; $omega = $last; $key_alpha = $keys[$alpha]; $key_omega = $keys[$omega]; $guess = $array[$key_alpha][$column]; while($omega >= $alpha) { if($order == SORT_ASC) { while($array[$key_alpha][$column] < $guess) {$alpha++; $key_alpha = $keys[$alpha]; } while($array[$key_omega][$column] > $guess) {$omega--; $key_omega = $keys[$omega]; } } else { while($array[$key_alpha][$column] > $guess) {$alpha++; $key_alpha = $keys[$alpha]; } while($array[$key_omega][$column] < $guess) {$omega--; $key_omega = $keys[$omega]; } } if($alpha > $omega) break; $temporary = $array[$key_alpha]; $array[$key_alpha] = $array[$key_omega]; $alpha++; $key_alpha = $keys[$alpha]; $array[$key_omega] = $temporary; $omega--; $key_omega = $keys[$omega]; } array_qsort ($array, $column, $order, $first, $omega); array_qsort ($array, $column, $order, $alpha, $last); } } das wars. :-) Viele Gr??e TechWay Link to comment Share on other sites More sharing options...
jpx10 Posted March 23, 2006 Report Share Posted March 23, 2006 Hallo zusammen Da habt ihr ja was spitzenm?ssiges gebastelt - Hut ab! Frage: W?re es m?glich diese Erweiterung zusammen mit dem cron job in eine Beschreibung zu verpacken und als download zu publizieren? Ich habe ehrlichgesagt keine Ahnung wohin ich das Hauptfile legen muss und wie des heissen soll? Geburtstag.php und dann? Eine detailierte Beschreibung f?r die, die nicht programmieren k?nnen w?re schon Luxus Beste Gr?sse jpx10 Link to comment Share on other sites More sharing options...
enzko Posted March 23, 2006 Report Share Posted March 23, 2006 Hi, Super Teil, sieht gut aus im Admin. Werden die Kunden nun automatisch zum Geburtstag gratuliert oder passiert das damit noch nicht ? BIG THX Link to comment Share on other sites More sharing options...
meister-eder Posted March 30, 2006 Report Share Posted March 30, 2006 bin ebenfalls begeistert - theoretisch. bei mir kommt ein fehler: Warning: array_keys(): The first argument should be an array in /homepages/32/d153741356/htdocs/admin/start.php on line 32 die zeile 32 ist die: $keys = array_keys($array); wo w?re denn da der hund begraben? Link to comment Share on other sites More sharing options...
absoluto Posted March 30, 2006 Report Share Posted March 30, 2006 sorry, fuer die bloede frage, aber fuer welche version ist dieser reminder denn gedacht? kann ich den in meiner 3.0.4 SP1 einsetzen? funktioniert er dort? merci... Link to comment Share on other sites More sharing options...
Interruptor Posted March 30, 2006 Author Report Share Posted March 30, 2006 <?php include(DIR_WS_MODULES.FILENAME_SECURITY_CHECK); ?> Das sollte noch in die start.php Oben rein, dann sollte das gehen. Dieses Modul sollte eigentlich bei der 3.04 laufen. Noch mal ein Dank Techway f?r dieses Modul! Gru? Interruptor Link to comment Share on other sites More sharing options...
techway Posted March 30, 2006 Report Share Posted March 30, 2006 Originally posted by meister-eder@Mar 30 2006, 01:45 PM bin ebenfalls begeistert - theoretisch. bei mir kommt ein fehler: die zeile 32 ist die: $keys = array_keys($array); wo w?re denn da der hund begraben? Quoted post Hallo, kann es sein dass in diesem Monat keiner Geburtstag bei dir hat? ich hatte das Problem noch nicht, weil bei mir schon so viele Kunden in der Datenbank sind... Pr?fe doch mal kurz nach, ob es so ist, dass keiner Geburtstag hat, oder vielleicht nur einer? Gru? TechWay Link to comment Share on other sites More sharing options...
meister-eder Posted April 5, 2006 Report Share Posted April 5, 2006 sorry, dass ich mich erst melde. die grippe... es stimmt, in diesem monat hat keiner geburtstag. Link to comment Share on other sites More sharing options...
techway Posted April 5, 2006 Report Share Posted April 5, 2006 Hmmmm komisch, bei wir war letztens auch der Fall dass keine Geburtstag hatte... und es lief alles ganz normal ich denke mal nicht dass es an der 3.0.4 liegt Gru Link to comment Share on other sites More sharing options...
khm Posted April 17, 2006 Report Share Posted April 17, 2006 Hallo, an der Shop-Version liegt es bestimmt nicht, da hast Du recht. Es liegt aber daran, dass keine Geburtstage an diesem Tag sind und somit das array leer ist und nichts sortiert werden kann. Also einfach vor die Zeile: array_qsort($geb_bald_sort, 2); //nach Tagen sortieren folgendes einf?gen: if ($anzahl > 0) Und schon klappt alles wunderbar. Auch von meiner Seite besten Dank f?r das Tool. Gru? Michael Link to comment Share on other sites More sharing options...
Buggyboy Posted April 17, 2006 Report Share Posted April 17, 2006 Moin! Finde das echt toll, das Ihr das so zusammen jetzt hinbekommen habt, aber vielleicht k?nnte einer mal das komplette neue und mit allen ?nderungen versehende Script hier nochmal eben kurz Posten. Und dann auch mit einer kurzen Erkl?rung, welches Script wo und wie hin soll. Ist sonst f?r einen Laien, wie schon gelesen, wohl etwas schwierig. Also schonmal vielen Dank an Euch alle... Und noch einen sch?nen Ostermontag... ;-} Link to comment Share on other sites More sharing options...
jpx10 Posted April 29, 2006 Report Share Posted April 29, 2006 Hallo zusammen Bei mir l?uft nun schon seit einiger Zeit die Erweiterung von Techway. L?uft ?brigens einwandfrei! Ich sende nun jedem der Geburtstag hat einen Rabbat Kuppon mit einem kurzen Text in welchem ich ihm oder ihr gratuliere. Dies mache ich t?glich. Das heisst Text aus dem Rabatt Cupon Kopieren, einen neuen Rabatt Cupon anlegen, text hineinkopieren etc etc. Dies ist ein t?glicher Prozess welcher schon mal vergessen werden kann. Selbstverst?ndlich w?re es genial wenn man dies automatisieren k?nnte. Hat jemand ein solches Modul im Einsatz. Oder gibts sowas irgendwo zu kaufen? Danke jpx10 Link to comment Share on other sites More sharing options...
techway Posted April 29, 2006 Report Share Posted April 29, 2006 Hi, dass ist eine gute Idee :-) wenn ich Zeit habe, baue ich mein Modul aus, mit Email-Template usw... Aber wer auch Zeit und Lust hat, kann es gerne machen Gru0 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.