reload sperre für Formular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
beschreibung
code
detail
fehler
folgende fehler
formular
land
message
nachname
postleitzahl
sperre
stadt
string
syntax
tempus
text
url
vorname
weben
-
Hallo zusammen,
ich versuche mich gerade an einer EASY reload sperre...
Doch leider klappt es noch net so wie ich möchte. Hier erstmal der Code
<?php $token = md5(uniqid('token')); if (isset($_POST['submit'])) { session_start(); if(isset($_SESSION['token'])) { if($_SESSION['token'] == $_POST['token']) { print "reload sperre"; exit; // abruch } } $fehler = false; $fehlertext = ""; if (empty($_POST['vorname'])) { $fehler = true; $fehlertext .= "Folgende Fehler sind aufgetreten:<br /><br /> • Vorname<br />\n"; } if (empty($_POST['nachname'])) { $fehler = true; $fehlertext .= "• Nachname<br />\n"; } if (empty($_POST['strasse'])) { $fehler = true; $fehlertext .= "• Strasse<br />\n"; } if (empty($_POST['postleitzahl'])) { $fehler = true; $fehlertext .= "• Postleitzahl<br />\n"; } if (empty($_POST['stadt'])) { $fehler = true; $fehlertext .= "• Stadt<br />\n"; } if (empty($_POST['land'])) { $fehler = true; $fehlertext .= "• Land<br />\n"; } if (empty($_POST['url'])) { $fehler = true; $fehlertext .= "• Web Präsenz<br />\n"; } if (empty($_POST['beschreibung'])) { $fehler = true; $fehlertext .= "• Web Präsenz Beschreibung<br />\n"; } if (empty($_POST['password'])) { $fehler = true; $fehlertext .= "• Passwort<br />\n"; } if (empty($_POST['mail'])) { $fehler = true; $fehlertext .= "• E-Mail Adresse<br />\n"; } if ($fehler) { echo "<p>$fehlertext</p>"; } else { $_SESSION['token'] = $_POST['token']; echo $_SESSION['token'] ; } } ?>
Der Token wird erstellt und wird auch in der else {} ausgegeben doch wenn ich nun F5 drücke bricht er das Script nicht ab und zeigt mir auch keine meldung wegen reload sperre oder sonst was :/
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
shuyio1985 schrieb:
es ist nicht gerade leich mit euren kastrierten snippets klar zu kommen ;) daher kann ich nur - versuchsweise - das anbieten:
... EASY reload sperre ...<?php // czibere.lima-city.de/_forum/shuyio1985/reload-sperre-fuer-formular.php session_start(); $token = md5(uniqid('token')); if(!empty($_SESSION['token']) AND $_SESSION['token'] === $_POST['token']) { print "reload sperre"; exit(); } if(isset($_POST['submit'])) { $x = $err = 0; $b = '•'; $fehlertext = array(0 => '', 1 => (empty($_POST['vorname'])) ? "$b Vorname<br />\n": '', 2 => (empty($_POST['nachname'])) ? "$b Nachname<br />\n": '', 4 => (empty($_POST['strasse'])) ? "$b Strasse<br />\n": '', 8 => (empty($_POST['postleitzahl'])) ? "$b Postleitzahl<br />\n": '', 6 => (empty($_POST['stadt'])) ? "$b Stadt<br />\n": '', 2 => (empty($_POST['land'])) ? "$b Land<br />\n": '', 64 => (empty($_POST['url'])) ? "$b Web Präsenz<br />\n": '', 128 => (empty($_POST['beschreibung'])) ? "$b Web Präsenz Beschreibung<br />\n": '', 256 => (empty($_POST['password'])) ? "$b Passwort<br />\n": '', 562 => (empty($_POST['mail'])) ? "$b E-Mail Adresse<br />\n": '' ); $x = 0;foreach($fehlertext as $text) {if(!empty($text)) $x++;} if($x) { $tempus = ($x > 1) ? ' sind': ' ist'; $message = "<h4>Folgende Fehler$tempus aufgetreten:</h4>"; foreach($fehlertext as $text) { if(!empty($text)) {$message .= "$text<br />\n";} } echo $message; } else { $_SESSION['token'] = $_POST['token']; echo $_SESSION['token'] ; } echo "<h1>$x</h1>"; echo "<h1>{$_SESSION['token']}</h1>"; } $self = basename(__FILE__); echo <<< EOT <form action="./$self" method="post"><br />\n vorname <input type="text" name="vorname" /><br />\n nachname <input type="text" name="nachname" /><br />\n strasse <input type="text" name="strasse" /><br />\n postleitzahl <input type="text" name="postleitzahl" /><br />\n stadt <input type="text" name="stadt" /><br />\n land <input type="text" name="land" /><br />\n url <input type="text" name="url" /><br />\n beschreibung <input type="text" name="beschreibung" /><br />\n password <input type="text" name="password" /><br />\n mail <input type="text" name="mail" value="xy@example.org" /><br />\n <input type="hidden" name="token" value="$token" /><br />\n <input type="submit" name="submit" value="submit" /><br />\n </form><br />\n EOT;
probiere es einfach aus und sage was sache ist ;) -
Hey super das script funktioniert super =)
so habe ich noch ne frage
echo <<< EOT
was bedeutet das ?
nachdem ich es nun gegoogelt habe was es bedeutet und was es macht stehe ich nun vor einem neuen Problem =)
Ich hab das Script eingebunden und versuch es ein wenig für meine bedürfnisse anzupassen =) doch leider stehe ich nun vor einem neuen Problem.
Die Fehler meldungen zerreissen mir mein Layout :/ die schrift wird dadurch kleiner .
<?php session_start(); $token = md5(uniqid('token')); if(!empty($_SESSION['token']) AND $_SESSION['token'] === $_POST['token']) { print "reload sperre"; exit(); } if(isset($_POST['submit'])) { $x = $err = 0; $b = '•'; $fehlertext = array(0 => '', 1 => (empty($_POST['vorname'])) ? "$b Vorname<br />\n": '', 2 => (empty($_POST['nachname'])) ? "$b Nachname<br />\n": '', 4 => (empty($_POST['strasse'])) ? "$b Strasse<br />\n": '', 8 => (empty($_POST['postleitzahl'])) ? "$b Postleitzahl<br />\n": '', 6 => (empty($_POST['stadt'])) ? "$b Stadt<br />\n": '', 2 => (empty($_POST['land'])) ? "$b Land<br />\n": '', 256 => (empty($_POST['password'])) ? "$b Passwort<br />\n": '', 562 => (empty($_POST['mail'])) ? "$b E-Mail Adresse<br />\n": '' ); $x = 0;foreach($fehlertext as $text) {if(!empty($text)) $x++;} if($x) { $tempus = ($x > 1) ? ' sind': ' ist'; $message = "<h4>Folgende Fehler$tempus aufgetreten:</h4>"; foreach($fehlertext as $text) { if(!empty($text)) {$message .= "$text<br />\n";} } echo $message; } else { $_SESSION['token'] = $_POST['token']; echo $_SESSION['token'] ; } echo "<h1>$x</h1>"; echo <<< EOT <a id="anchor-contact-1"></a> <div class="corner-content-1col-top"></div> <div class="content-1col-nobox"> <h1 class="contact">Babbelfish | Deine Registrierung war erfolgreich!</h1> <p class="demo"> </div> <div class="corner-content-1col-bottom"></div> </div> EOT; } $self = basename(__FILE__); echo <<< EOT <a id="anchor-contact-1"></a> <div class="corner-content-1col-top"></div> <div class="content-1col-nobox"> <h1 class="contact">Babbelfish | Jetzt Registrieren</h1> <p class="demo">Nacht der Registrierung hast du die möglichkeit deine Webseite einzutragen.<br />Du hast dann die Wahl zwischen einem Premium Werbeplatz oder einem Kostenlosen Werbeplatz</p> <div class="contactform"> <form method="post" action="registrieren.html"> <fieldset><legend> Personen Details </legend> <p><label for="contact_title_1" class="left">Title:</label> <select name="contact_title" id="contact_title_1" class="combo"> <option value="choose"> Anrede... </option> <option value="mrs"> Herr </option> <option value="mr"> Frau </option> <option value="dr"> Dr. </option></select></p> <input type="hidden" name="token" value="$token" /> <p><label for="contact_firstname_1" class="left" />Vorname:</label> <input type="text" name="vorname" id="contact_firstname_1" class="field" tabindex="1" /></p> <p><label for="contact_familyname_1" class="left" />Nachname:</label> <input type="text" name="nachname" id="contact_familyname_1" class="field" tabindex="1" /></p> <p><label for="contact_street_1" class="left" />Strasse:</label> <input type="text" name="strasse" id="contact_street_1" class="field" tabindex="1" /></p> <p><label for="contact_postalcode_1" class="left" />Postleitzahl:</label> <input type="text" name="postleitzahl" id="contact_postalcode_1" class="field" tabindex="1" /></p> <p><label for="contact_city_1" class="left" />Stadt:</label> <input type="text" name="stadt" id="contact_city_1" class="field" tabindex="1" /></p> <p><label for="contact_country_1" class="left" />Land:</label> <input type="text" name="land" id="contact_city_1" class="field" tabindex="1" /></p> <p><label for="contact_phone_1" class="left" />Telefon:</label> <input type="text" name="telefon" id="contact_phone_1" class="field" tabindex="2" /></p> </fieldset> <fieldset><legend> Accoun Details </legend> <p><label for="contact_subject_1" class="left" />Passwort:</label> <input type="password" name="password" id="contact_subject_1" class="field" tabindex="4" /></p> <p><label for="contact_subject_1" class="left" />E-Mail:</label> <input type="text" name="mail" id="contact_subject_1" class="field" tabindex="4" /></p> <p><input type="submit" name="submit" id="submit_1" class="button" value="Registrieren!" tabindex="6" /></p> </fieldset> </form> </div> </div> <div class="corner-content-1col-bottom"></div> </div> EOT; ?>
Die fehlermeldungen sollten in den Divs vom formular eingebunden werden damit das layout so bleibt :/
Beitrag zuletzt geändert: 6.8.2013 0:33:20 von shuyio1985 -
shuyio1985 schrieb:
das bedeutet gar nix! '<<<' ist aber ein zuweisungsoperator und EOT ist nur eine marke!
... so habe ich noch ne frage
echo <<< EOT
was bedeutet das ? ...
ja. das ist schon etwas dubioses ;) weil eben die beschreibung bei php.net NICHT ganz eindeutig ist!
$var <<< EOT <variablenwert> EOT;
echo <<< EOT 'blaaaaaaaaaaaaa' EOT;
exit(<<< EOT da kannst ausgeben was du willst. ja sogar eine ganze html-seite. EOT );
das sind 3 funktionierende varianten für mich, wovon das 3. eigentlich - laut php.net - gar nicht gut ist!
ja was ist dann überhaupt gut daran?? genau! ich kann damit die GANZE HTML-seite ausgeben. nur! ich muss alles vorher in variablen abgelegt haben und dann kann ich es wieder von dort in das html reinsetzen!
kurz:echo 'xxxx'; exit(<<< eot <DOCTYPE! html> <html> </html> eot ;)
ergibtxxxx <DOCTYPE! html> <html> </html>
wo dann natürlich 'xxxx' voll und ganz am falschen platz ist! (und genau das haut dein design zusammen!)
was kann man da machen? echo/*print* weglassen! alles in variablen packen und von dort mit EXIT ausgeben!
Beitrag zuletzt geändert: 7.8.2013 5:16:13 von czibere -
Leider Off-Topic, muss aber dennoch sein:
czibere schrieb:
Ich weiß ja nicht welche Beschreibungen du liest, aber die hier ist ganz eindeutig.
ja. das ist schon etwas dubioses ;) weil eben die beschreibung bei php.net NICHT ganz eindeutig ist!
czibere schrieb:
Ich sehe hier nur 2 funktionierende Varianten sowie einen Syntax-Fehler. Bei der Zuweisung der Variablen musst du ein
$var <<< EOT <variablenwert> EOT;
echo <<< EOT 'blaaaaaaaaaaaaa' EOT;
exit(<<< EOT da kannst ausgeben was du willst. ja sogar eine ganze html-seite. EOT );
das sind 3 funktionierende varianten für mich […]
angeben, also=
.$var = <<< EOT
czibere schrieb:
Woher du das haben magst steht wohl auch in den Sternen (oder finde nur ich die entsprechende Seite auf php.net nicht?).
[…] wovon das 3. eigentlich - laut php.net - gar nicht gut ist! -
hackyourlife schrieb:
richtig! mein flüchtigkeitsfehler
Leider Off-Topic, muss aber dennoch sein:
czibere schrieb:
Ich weiß ja nicht welche Beschreibungen du liest, aber die hier ist ganz eindeutig.
ja. das ist schon etwas dubioses ;) weil eben die beschreibung bei php.net NICHT ganz eindeutig ist!
czibere schrieb:
Ich sehe hier nur 2 funktionierende Varianten sowie einen Syntax-Fehler. Bei der Zuweisung der Variablen musst du ein
$var <<< EOT <variablenwert> EOT;
echo <<< EOT 'blaaaaaaaaaaaaa' EOT;
exit(<<< EOT da kannst ausgeben was du willst. ja sogar eine ganze html-seite. EOT );
das sind 3 funktionierende varianten für mich […]
angeben, also=
.$var = <<< EOT
genau ;) laut php.net soll auf das schließende marke ein semikolon folgen. leider nicht bei exit. (aber solche schlampereien gibt es bei php.net nachweislich mehrere [wenn man php.net aufmerksam liest!] ;)
czibere schrieb:
Woher du das haben magst steht wohl auch in den Sternen (oder finde nur ich die entsprechende Seite auf php.net nicht?).
[…] wovon das 3. eigentlich - laut php.net - gar nicht gut ist!
Beitrag zuletzt geändert: 8.8.2013 6:52:57 von czibere -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage