kostenloser Webspace werbefrei: lima-city


reload sperre für Formular

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    shuyio1985

    Kostenloser Webspace von shuyio1985

    shuyio1985 hat kostenlosen Webspace.

    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 /> &bull; Vorname<br />\n";
    		}
    		if (empty($_POST['nachname'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Nachname<br />\n";
    		}
    		if (empty($_POST['strasse'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Strasse<br />\n";
    		}
    		if (empty($_POST['postleitzahl'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Postleitzahl<br />\n";
    		}
    		if (empty($_POST['stadt'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Stadt<br />\n";
    		}
    		if (empty($_POST['land'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Land<br />\n";
    		}
    		if (empty($_POST['url'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Web Präsenz<br />\n";
    		}
    		if (empty($_POST['beschreibung'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Web Präsenz Beschreibung<br />\n";
    		}
    		if (empty($_POST['password'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; Passwort<br />\n";
    		}
    
    		if (empty($_POST['mail'])) {
    			$fehler = true;
    			$fehlertext .= "&bull; 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 :/
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Abgesehen davon, dass du das in Zeile 2 deklarierte $token in deinem Code nie verwendest kann . Vieleicht ist der Fehler ja in dem Skript, dass das Formular generiert? Kannst du das auch mal posten?
  4. shuyio1985 schrieb:
    ... EASY reload sperre ...
    es ist nicht gerade leich mit euren kastrierten snippets klar zu kommen ;) daher kann ich nur - versuchsweise - das anbieten:
    <?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 = '&bull;';
      $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 ;)
  5. Autor dieses Themas

    shuyio1985

    Kostenloser Webspace von shuyio1985

    shuyio1985 hat kostenlosen Webspace.

    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 = '&bull;';
      $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>&nbsp;Personen Details&nbsp;</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>&nbsp;Accoun Details&nbsp;</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
  6. shuyio1985 schrieb:
    ... so habe ich noch ne frage
    echo <<< EOT
    was bedeutet das ? ...
    das bedeutet gar nix! '<<<' ist aber ein zuweisungsoperator und EOT ist nur eine marke!

    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
    ;)
    ergibt
    xxxx
    <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
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Leider Off-Topic, muss aber dennoch sein:
    czibere schrieb:
    ja. das ist schon etwas dubioses ;) weil eben die beschreibung bei php.net NICHT ganz eindeutig ist!
    Ich weiß ja nicht welche Beschreibungen du liest, aber die hier ist ganz eindeutig.

    czibere schrieb:
    $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 […]
    Ich sehe hier nur 2 funktionierende Varianten sowie einen Syntax-Fehler. Bei der Zuweisung der Variablen musst du ein
    =
    angeben, also
    $var = <<< EOT
    .

    czibere schrieb:
    […] wovon das 3. eigentlich - laut php.net - gar nicht gut ist!
    Woher du das haben magst steht wohl auch in den Sternen (oder finde nur ich die entsprechende Seite auf php.net nicht?).
  8. hackyourlife schrieb:
    Leider Off-Topic, muss aber dennoch sein:
    czibere schrieb:
    ja. das ist schon etwas dubioses ;) weil eben die beschreibung bei php.net NICHT ganz eindeutig ist!
    Ich weiß ja nicht welche Beschreibungen du liest, aber die hier ist ganz eindeutig.

    czibere schrieb:
    $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 […]
    Ich sehe hier nur 2 funktionierende Varianten sowie einen Syntax-Fehler. Bei der Zuweisung der Variablen musst du ein
    =
    angeben, also
    $var = <<< EOT
    .
    richtig! mein flüchtigkeitsfehler


    czibere schrieb:
    […] wovon das 3. eigentlich - laut php.net - gar nicht gut ist!
    Woher du das haben magst steht wohl auch in den Sternen (oder finde nur ich die entsprechende Seite auf php.net nicht?).
    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!] ;)

    Beitrag zuletzt geändert: 8.8.2013 6:52:57 von czibere
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!