Abstimmungsscript per E-Mail
Abstimmungsscript mit E-Mail
- sonstiges
Hallo ich hätte da mal ne Frage.
Und zwar bräuchte ich ein Abstimmungsscript bei dem eine Eingabe der E-Mail Adresse erfordlerich ist. Anschließend soll quasi eine E-Mail an diese Adresse geschickt werden mit einem Links zu der Abstimmung. Nur wenn man die E-Mail bestätigt also den Links klickt soll die Stimme wirklich gewertet werden. Somit möchte ich vermeide das Ein Benutzer mehrmals abstimmt.
Natürlich soll man anschließend mit dieser E-Mail Adresse nicht mehr abstimmen können. Zusätzlich sollen cokkies und eine Ip Sperre vorhanden sein.
KAnn mir da jemand ein Script empfehlen oder hat zufällig eines zur Hand? Bin für jeden Rat dankbar
MFG
Die Mietz
Hallo Mietz!
Hallo ich hätte da mal ne Frage.
Das ist der häufigste Grund warum SELF-Nutzer hier posten ;-)
Zu Deinem Anliegen möchte ich versuchen Dir ein wenig in die Richtung zu verhelfen, in die Du gehen willst, konkrete Code-Beispiele kann ich Dir allerdings nicht geben, da Du nicht mitgeteilt hast, welche Programmiersprache(n)/Serverumgebung Dir zur Verfügung steht/stehen und welche Du nutzen willst.
Und zwar bräuchte ich ein Abstimmungsscript bei dem eine Eingabe der E-Mail Adresse erfordlerich ist. Anschließend soll quasi eine E-Mail an diese Adresse geschickt werden mit einem Links zu der Abstimmung. Nur wenn man die E-Mail bestätigt also den Links klickt soll die Stimme wirklich gewertet werden. Somit möchte ich vermeide das Ein Benutzer mehrmals abstimmt.
Also ich würde das Script in 3 Teile "zerlegen":
1. Einführungsseite ("Was denken Sie über Blubb? A: Toll, B: Blöd. Ihre E-Mailadresse: [Eingabefeld] [Button:Abstimmen]")
2. Verarbeitung und Information: Eingegebene E-Mailadresse auf halbwegs korrektes Format prüfen (dafür gibts fertige code-schnipsel) und ob der Benutzer schon abgestimmt hat, wenn
JA -> Info Anzeigen "Sie haben bereits abgestimmt, nur eine Stimme pro Benutzer"
NEIN -> Speichern der Auswahl, E-Mailadresse, IP, evtl. weitere Daten (später mehr dazu) und Rückmeldung "Ihre Stimme wurde gespeichert. Sie erhalten in Kürze eine E-Mail mit einem Link zum bestätigen Ihrer Stimme", generieren des Links, E-Mailtext aus vordefinierten Konstanten einbinden und versenden der E-Mail.
3. Verarbeitung der Bestätigung, prüfen der übergebenen Parameter (prüfe alles was von Außen kommt), abgleich der eingegebenen Daten mit der DB und wenn alles stimmig ist kann die Stimme dann in das Abstimmungsergebnis einbezogen werden. Dann nochmal eine Bestätigung und das bisherige Ergebnis der Abstimmung anzeigen.
Natürlich soll man anschließend mit dieser E-Mail Adresse nicht mehr abstimmen können. Zusätzlich sollen cokkies und eine Ip Sperre vorhanden sein.
Die E-Mailadresse kannst Du im 2. Schritt prüfen, wenn Sie schon in der DB vorhanden ist geht's bei NEIN weiter ;-)
Cookies funktionieren natürlich nur, wenn der Browser sie akzeptiert und selbst dann nur, wenn Dein Cookie beim erneuten Aufruf der Abstimmung noch vorhanden ist, es könnte aus verschiedenen Gründen gelöscht worden sein also verlass Dich nicht drauf. Die Cookies liegen beim Benutzer und daher solltest Du darauf nicht zu viel Gewicht legen, lieber baust Du Dir einen serverseitigen Prüfmechanismus.
Eine IP-Sperre ist nicht so das Problem, allerdings sage ich gleich vorweg: denk daran, es könnte eine unbekannte Anzahl Clients hinter einer IP stehen, hier bietet sich eine Kombination mit clientspezifischen Daten an, z.B. Browserkennung, aber auch das kann noch dazu führen, dass Du Benutzer ausschliesst obwohl sie noch nicht teilgenommen haben. Weiterhin ist es ja so, dass die meissten Internetnutzer keine feste IP haben und wenn der Benutzer nach dem Abstimmen seine Internetverbindung neu aufbaut hast Du zwei Probleme:
1. Er kann mit einer anderen E-Mailadresse nochmal abstimmen, weil Du ihn anhand seiner IP nicht mehr ausschliessen kannst (er hat jetzt eine andere).
2. (sehr unwahrscheinlich aber möglich) jemand anderes beim gleichen ISP baut seine Internetverbindung auf und bekommt die IP und will zufällig auch auf Deiner Seite abstimmen, wird aber aufgrund der IP-Sperre ausgeschlossen.
Eine IP-Sperre kannst Du über die DB lösen, einfach die IP und den aktuellen Timestamp (vielleicht in Kombination mit der E-Mailadresse) speichern.
Zuvor solltest Du aber in Schritt 2 überprüfen ob die IP schon in der DB existiert und wenn
JA -> ob der Timestamp mindestens (sagen wir) 6 Stunden alt ist, wenn das gegeben ist kann das Script weiterlaufen, wenn nicht brichst Du mit einer Meldung ab "Von Ihrer IP wurde innerhalb der letzten 6 Stunden bereits abgestimmt" oder so ähnlich.
NEIN -> Die IP wird eingetragen und das Script läuft weiter.
Wenn Du so eine IP-Sperre einbaust, sollte das Script in Schritt 2 gleichzeitig "aufräumen", damit meine ich, dass es bei jedem Aufruf auch gleich guckt, welche IPs schon länger als 6 Stunden in der DB stehen, diese können dann gelöscht werden damit die DB nicht irgendwann explodiert. Am besten lässt Du den Schritt gleich am Anfang durchführen, dann brauchst Du bei der Prüfung der IP nur noch gucken ob die IP in der DB vorhanden ist, wenn ja, dann ist gleich klar, dass der Timestamp noch weniger als 6 Stunden alt ist (sonst hätte die Aufräumfunktion den Eintrag ja gelöscht).
KAnn mir da jemand ein Script empfehlen oder hat zufällig eines zur Hand? Bin für jeden Rat dankbar
Ein fertiges Script dafür weiss ich nicht, frag doch einfach mal Tante Google "Votingscript %scriptsprache%" oder guck mal in einschlägigen Coder-Foren oder Scriptsammlungen.
Abschliessend möchte ich noch anmerken, dass mein Vorschlag weder Perfektion noch Vollständigkeit für sich beansprucht, möglich, dass ich beim drauf-los-erzählen das eine oder andere Detail vergessen habe. Vielleicht ergänzt das ein anderer SELF-Forum-Nutzer noch oder kann Dir eine geeignetere Lösung anbieten.
MFG
Die Mietz
Gruß Basti
Also Programmiersprache wäre wohl php ich hab leider keine Ahnung mit was man sowas am besten realisiert aber denke php wäre dafür guit geeignet und ich kenn mich da leider sehr wenig mti aus.
Hab Tante google schon gefragt aber leider kein Skript mit dieser E-Mail funtion gefunden.
Sollen halt mehrer Bilder angeguckt werden können und dnan am Schluss soll man für ein Bild stimmen.
Kannst du php denn gut das du mir das vll helfen könntest?
Hallo Battelcat!
Also Programmiersprache wäre wohl php ich hab leider keine Ahnung mit was man sowas am besten realisiert aber denke php wäre dafür guit geeignet und ich kenn mich da leider sehr wenig mti aus.
Ja, kann man mit PHP machen.
Hab Tante google schon gefragt aber leider kein Skript mit dieser E-Mail funtion gefunden.
Ist wohl zu speziell, guck doch mal nach einem Script, das so ähnlich ist und versuche es an Deine Anforderungen anzupassen.
Sollen halt mehrer Bilder angeguckt werden können und dnan am Schluss soll man für ein Bild stimmen.
Das mit den Bildern ist nicht so das Problem, lässt halt alle Bilder Anzeigen und gibst jedem Bild eine Nummer oder einen Namen, dadrunter kommt dann das eigentliche Voting-Modul, wo Du die Nummern/Namen dann als Auswahloptionen benutzt.
Kannst du php denn gut das du mir das vll helfen könntest?
Gut, hmm, sagen wir mal so, ich arbeite schon eine Weile damit, bekomme das was ich will über kurz oder lang gebastelt, bin aber oft mehr Zeit mit dem Manual beschäftigt als das scripten an Zeit braucht, also eher nein.
Helfen würde ich Dir vielleicht in Form von Code-reviews oder Hinweisen auf interessante Möglichkeiten in PHP. Andererseits weiss ich, dass mein Programmierstil nicht der Beste und nicht hilfreich ist um jemand anderem etwas beizubringen.
Es ist bitter, aber es ging jedem hier nicht anders: Du musst es weitestgehend alleine lernen.
Such Dir eine Ecke Deines vorhabens, an der Du anfangen willst und scripte drauf los. Das PHP-Onlinemanual hilft schon ne Menge. Und hier oder in anderen Foren kannst Du jeder Zeit fragen wenn Du nicht weiter kommst oder etwas nicht verstehst.
Gruß Basti