Einmalige Formularabsendung

Sehr geehrte Damen und Herren,

ich möchte eine anonyme Umfrage durchführen, ohne Angabe von Name, E-Mail-Adresse und sonstigen Angaben. Das Formular wird per E-Mail gesendet und manuell ausgewertet, ohne Datenbankanbindung.
Es sollte für eine Onlinesitzung nur einmal abgesendet werden dürfen.
Wie kann ich das am besten realisieren, mit einer session_id oder IP-Auswertung in Verbindung mit einer Zählervariable?
Oder gibt es andere Möglichkeiten das Formular nur einmal abzusenden?

Vielen Dank schon mal im Voraus für Ihre kompetente Rückantwort.

Mit freundlichen Grüßen
Thorsten Eberhardt

Halloechen !

Da von Sessions schon die Rede, war könnte man dies wie folgt lösen :
Beim Start der Session könnten man eine (globale)Session-Variable mit
$_SESSION[‚geschickt‘]=0 ;
registrieren .
Wenn das Formular verschickt werden soll, dann prüft man die Variable
$_SESSION[‚geschickt‘] auf ihren Inhalt .
Ist de Inhalt 0 dann wird das Formular verschickt und der Inhalt der Variable auf 1 gesetzt .
Wird versucht das Formular erneut zu verschicken, dann scheitert der Versuch bei der Prüfung der Session-Variablen, da diese nun den Wert 1 hat .
Ich hoffe ich hab alles richtig verstanden .
mfg
Jogi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Halloechen !

Da von Sessions schon die Rede, war könnte man dies wie folgt
lösen :
Beim Start der Session könnten man eine
(globale)Session-Variable mit
$_SESSION[‚geschickt‘]=0 ;
registrieren .
Wenn das Formular verschickt werden soll, dann prüft man die
Variable
$_SESSION[‚geschickt‘] auf ihren Inhalt .
Ist de Inhalt 0 dann wird das Formular verschickt und der
Inhalt der Variable auf 1 gesetzt .
Wird versucht das Formular erneut zu verschicken, dann
scheitert der Versuch bei der Prüfung der Session-Variablen,
da diese nun den Wert 1 hat .
Ich hoffe ich hab alles richtig verstanden .
mfg
Jogi

Hallo,

jawoll, genau das möchte ich erreichen.
Da ich aber noch nie mir globalen Session Variablen gearbeitet habe, da ich ja noch PHP-Anfänger bin, weiß ich nicht so genau, wie ich diese Variablen ansprechen, aufrufen und zuweisen kann.
Ich hab jetzt mal folgendes realisiert, da passiert aber leider nicht wirklich viel. Ein Profi wird wohl jetzt lächelnd drüberschauen und direkt den Fehler erkennen. Für den richtigen Programmcode wäre ich überglücklich und bedanke mich schon mal im Voraus.
Das habe ich mit wenig Erfolg fabriziert:

<?PHP session_start();
$\_SESSION['geschickt']=0 ; echo "sessionid=$PHPSESSID"; echo "geschickt=$\_SESSION['geschickt']"; ?\> Parse error: parse error, unexpected T\_ENCAPSED\_AND\_WHITESPACE, expecting T\_STRING or T\_VARIABLE or T\_NUM\_STRING <?PHP if ($_SESSION['geschickt']==0) {
sende die nachricht ab und danach setze $\_SESSION['geschickt']=1 ; } ?\> Mit freundlichen Grüßen Thorsten Eberhardt

Hallo nochmal !

Man kann ja nicht alles wissen bzw können .
Der Fehler hat mit der Session eigentlich nichts zu tun .

<?PHP session_start();<br />$\_SESSION['geschickt']=1 ;

echo "
sessionid=".session\_id() ;
echo "
geschickt=".$\_SESSION['geschickt'];



?\>


Test


if ($\_SESSION['geschickt']==0) 
{
 echo "
Test1 :".$\_SESSION['geschickt'];
}
else
{
 echo "
Test2 :".$\_SESSION['geschickt'];
}
?\>

Sie sollten dieses Script mal auf ihrem Server ausführen.
So sollte es eigentlich gehen .
Wenn sie die Session Id ausgeben möchten , dann liefert ihnen die Funktion Session_id() die Session ID zurück(siehe oben ).
Wenn Sie eine Variable ausgeben , dann sollten Sie das wie folgt machen :

echo "Hallo" ; // Ausgabe Text .

$test="Hallo" ;
echo $test; // Ausgabe Variable .

$test = "Ihr da";
echo "Hallo ".$test; // Ausgabe text + Variable

Ich hoffe es hilft ein wenig .

mfg
Jogi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jogi,

vielen Dank für die Hilfe und freundliche und kompetente Erklärung.
Sie haben nicht nur ein bischen geholfen, sondern viel.
Das ist genau das, was ich gebraucht habe und jetzt klappt auch alles, so wie ich mir das vorgestellt habe.

Sie haben wieder einen Menschen glücklich gemacht, vielen Dank!

Mfg
Thorsten

Hallo,

wenn ich noch kurz anmerken darf: die Lösung ist zwar auf den ersten Blick funktionsfähig, doch was ist, wenn der Benutzer einfach die Session im Adressfeld des Browsers löscht? Dann kann er die ganze Umfrage öfters machen. Oder irre ich mich da und habe etwas übersehen (gebe zu, dass ich nicht alles genau gelesen habe).
Eine andere Lösung kann ich im Moment auch nicht anbieten, denn so viel ich weiß, ist es - auch laut der dclp-faq - nicht möglich eine „schummelsichere“ Umfrage zu machen.

25.1. Wie kann ich eine schummelsichere Abstimmung codieren?
http://www.dclp-faq.de/q/q-scripte-abstimmung.html

Viele Grüße
dome

Wenn die Umfrage anonym sein soll, dann ist „schummelsicher“ fast unmöglich.
Wenn ein User mehrmals die Umfrage machen möchte, dann kann er auch einfach den Browser schliessen und die Seite erneut aufrufen. Dieses Spiel kann er machen bis der Strom ausfällt.

Schummelsicher wird es nur, wenn man die Daten des Benutzer speichert, und prüft, ob dieser an der Umfrage schon teilgenommen hat .
-> nicht mehr anonym

Die SessionID muss garnicht in der Adresszeile des Browsers stehen.

Gruss jochen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]