e-cards mit PHP, ein Lösungsansatz...
mike
- php
Hallo Boardies,
ich versuche mich gerade ein einem e-card Modul für meine HP.
Wollte es mit PHP + mySQL lösen.
Ich hab mir das in etwa so gedacht:
Man wählt erst ein Bild, schreibt in ein Formular Empfänger, Absender (jew. Name + email) sowie einen kurzen Text.
Wenn man auf absende klickt, wird diese Kombination in der DB gespeichert, und ein link an Absendre und Empfänger geschickt, auf der man die ecard sehen kann.
Damit man immer nur die für einen bestimmten ecards sehen kann, währe es unsinnig z.B. die id der cards immer um eins raufzuzählen und dann als Referenz für die URL zu verwenden.
Deshalb dacht ich, ich erstell mir jedesmall eine 10-stellige Zufallszahl, speichere die mit in die DB und setzt daraus die URL zusammen.
Also z.B. /ecard.php$ref=1234567890
Das 2x die gleiche Zufallszahl generiert würde halte ich für rel. unwahrscheinlich, da ich auch nicht damit rechne, dass der "Service" extrem oft benutzt wird.
So, was haltet ihr von diesem Ansatz ?
Brauchbar oder offensichtliche Mängel ?
Ein Problem ist noch der email-Versand, da ich bei einem formmailer die Zieladresse nicht fest ins script eintragen könnte -> spam !?
Bin auf eure Antworten gespannt :-)
Bis demnächst
Mike
Hallo Boardies,
Hallo Mike,
ich versuche mich gerade ein einem e-card Modul für meine HP.
Wollte es mit PHP + mySQL lösen.
Ich hab mir das in etwa so gedacht:
Man wählt erst ein Bild, schreibt in ein Formular Empfänger, Absender (jew. Name + email) sowie einen kurzen Text.
Das ist meistens so ;-)
Wenn man auf absende klickt, wird diese Kombination in der DB gespeichert, und ein link an Absendre und Empfänger geschickt, auf der man die ecard sehen kann.
OK, baue aber noch was ein, daß die Daten nur eine bestimmte Zeit lang gespeichert werden, da sonst schnell die Datenbank zugemüllt wird. Jede Ecard sollte höchstens eine Woche da sein.
Damit man immer nur die für einen bestimmten ecards sehen kann, währe es unsinnig z.B. die id der cards immer um eins raufzuzählen und dann als Referenz für die URL zu verwenden.
Genau, fortlaufende IDs sind selten brauchbar. Ständig muß man beim Anlegen eines neuen Datensatzes die Tabelle LOCKen, die größte ID auslesen, um eins erhöhen, Datensatz schreiben und Tabelle unlocken.
Mit zufälligen Zahlen (oder besser noch Strings) kann man da eine ganze Menge Code/Rechenzeit sparen.
Deshalb dacht ich, ich erstell mir jedesmall eine 10-stellige Zufallszahl, speichere die mit in die DB und setzt daraus die URL zusammen.
Also z.B. /ecard.php$ref=1234567890Das 2x die gleiche Zufallszahl generiert würde halte ich für rel. unwahrscheinlich, da ich auch nicht damit rechne, dass der "Service" extrem oft benutzt wird.
Benutze dazu am besten Funktionen wie uniqid(). Beachte aber auch am besten die Hinweise in den Kommentaren zur Doku.
So, was haltet ihr von diesem Ansatz ?
Brauchbar oder offensichtliche Mängel ?
Prinzip ist eigentlich in Ordnung, achte nur noch auf die angesprochenen Details.
Ein Problem ist noch der email-Versand, da ich bei einem formmailer die Zieladresse nicht fest ins script eintragen könnte -> spam !?
Könntest Du diesen Pukt bitte mal genauer erläutern, irgendwie verstehe ich Dich hier nicht ganz.
Bin auf eure Antworten gespannt :-)
Bis demnächst
Mike
Hoffe, geholfen zu haben,
Daniel
Hallo mike,
Hallo Boardies,
Board?!?!?!?!?
Deshalb dacht ich, ich erstell mir jedesmall eine 10-stellige Zufallszahl, speichere die mit in die DB und setzt daraus die URL zusammen.
Also z.B. /ecard.php$ref=1234567890
du könntest auch time() benutzern, und evtl noch eine (2-3stellige) Zahl dranhängen.
Ein Problem ist noch der email-Versand, da ich bei einem formmailer die Zieladresse nicht fest ins script eintragen könnte -> spam !?
das würde ich nicht unbedingt als Problem ansehen, das du ja nur einen festen Text und einen Link verschickst, und keine Daten die der User vorher eingegeben hat.
Grüße aus Nürnberg
Tobias
Hallo FORUM-user :-)
erstmal dank ich euch beiden für die schnelle Antwort und die Tips.
Zu dem Problem mit dem Spam:
Das ausgefüllte Formular wollte ich mittels formmailer (PHP oder CGI, vermutl. eher CGI) an die entspr. email Adresse schicken.
Nur hab ich schon 1000ml gelesen, dass man bei einem formmailer die Empfänger-email-Adresse ins Formmailer- SCRIPT und nicht in den HTML/PHP - Code einbauen soll.
Ansonsten könnte jeder x-beliebige sich eine eigene HTML Seite bauen, und meinen formmailer dazu benutzen seinen SPAM zu verbreiten.
Bei festem Empfänger würde immer nur einer betroffen werden.
Bei einem Feedback-Formular habe ich z.B. meine Adresse fest eingebunden, d.h. alle emails kommen immer zu mir.
=> Spam an unterschiedl. Leute ausgeschlossen
Bei dem e-card Problem ist dies natürlich nicht möglich, da man den Empfänger ja nicht kennt.
Vielen Dank für eure Aufmerksamkeit :)
bye,
Mike
Hallo mike,
Hallo FORUM-user :-)
brav :-)
(PHP oder CGI, vermutl. eher CGI) an die entspr. email Adresse schicken.
cgi ist afaik nur eine Schnittstelle, du willst das ganze vielleicht in perl schreiben...
Nur hab ich schon 1000ml gelesen, dass man bei einem formmailer die Empfänger-email-Adresse ins Formmailer- SCRIPT und nicht in den HTML/PHP - Code einbauen soll.
das ist richtig, nur im php-Code muss es natürlich drinstehen, die Adresse darf eben nur nicht vom User übernommen werden.
Ansonsten könnte jeder x-beliebige sich eine eigene HTML Seite bauen, und meinen formmailer dazu benutzen seinen SPAM zu verbreiten.
ich gehe mal davon aus, dass die E-Mails die du verschickst, nur den von dir festgelegten Text enthalten, und keinen Text den der User eingegeben hat, somit dürfte es auch etwas witzlos sein, an beliebig viele Leute diese E-Mail zu verschicken.
Grüße aus Nürnberg
Tobias
Hi Tobias,
mit CGI meinte ich Perl, richtig :)
somit dürfte es auch etwas witzlos sein, an beliebig viele Leute diese E-Mail zu verschicken
Auch da ist was wahres drann, aber sicher ist sicher.
Nur hab ich schon 1000ml gelesen, dass man bei einem formmailer die Empfänger-email-Adresse ins Formmailer- SCRIPT und nicht in den HTML/PHP - Code einbauen soll.
das ist richtig, nur im php-Code muss es natürlich drinstehen, die Adresse darf eben nur nicht vom User übernommen werden.
Kannst Du das nochmal genauer erklären !!
Es wird dann so sein, dass die Empfänger-email Adresse aus dem Formular ausgelesen wird.
Anders gehts ja nicht, oder ?
Danke und Gruß aus München :)
Mike