Formular Eingabe mittels If Anweisung Überprüfen

Dunkelelf9

Grünschnabel
So werde jetzt nochmal mein Glück hier versuchen ob mir einer helfen kann, ich hofe ich habe jetzt die richtige Überschrift.

Habe folgendes Problem
Ich gebe in einem Formular ein Nickname und ein Username ein diese werden dann zu einem PHP script gesendet das Überprüfen soll ob eine Eingabe gemacht worden ist oder eben nicht.

Mein Code sieht wie folgt aus:

PHP:
<?php

$nickname = $_POST['nickname'];
$username = $_POST['username'];


// Überprüfung ob was Eingegeben wurde ? //
if (($nickname = trim($_POST['nickname'])) == ''){
echo 'Bitte geben Sie ein Nicknamen ein.';
} 
if (($username = trim($_POST['username'])) == ''){
echo 'Bitte geben Sie ein Username ein.';
}
?>
Das funktioniert soweit auch aber wie kann ich es machen das ein Zurück button erscheint egal welche Fehler Meldung kommt, oder automatisch nach dem einigen Sekunden die Fehlermeldung erschienen ist wider zum Formular geleitet werde.
 
<a href="javascript:history.back()">zur&uuml;ck</a>
oder
<input type="button" value="zur&uuml;ck" onClick="history.back();">
oder
<meta http-equiv="refresh" content="5; url=URLzurEingabeSeite">

Dann wird nach 5 Sekunden zur Eingabeseite refresht ;)
Kann man natürlich auch noch mit Javascript machen..

Javascript

HTML:
<script type="text/javascript">
function goBack(sek){
  if(sek>=0){
    sek--;
    setTimeout('goBack('+sek+')',999);
  }
  else{
    location.href="URLzurEingabeSeite";
  }
}
</script>
und starten mit zb:
HTML:
<script type="text/javascript">goBack(5);</script>

Der Javascript Code ist ungetestet und ohne gewähr ;)
 
Zuletzt bearbeitet:
oder nach jedem echo ein

header("Refresh: 1; url=seite.php");

PHP:
<?php

$nickname = $_POST['nickname'];
$username = $_POST['username'];


// Überprüfung ob was Eingegeben wurde ? //
if (($nickname = trim($_POST['nickname'])) == ''){
echo 'Bitte geben Sie ein Nicknamen ein.';
header("Refresh: 1; url=seite.php");
} 
if (($username = trim($_POST['username'])) == ''){
echo 'Bitte geben Sie ein Username ein.';
header("Refresh: 1; url=seite.php");
}
?>
 
Mag sein jedoch kann ich nur damit arbeiten was ich hier habe vom Postersteller und darum geh ich mal von Aus das kein Header gesetzt wurde :)
 
Also ich persönlich würde auf das Javascript zurück greifen ;)
Denn mit dem header("refresh: 1 ...") könnte man das ganze einfach mal umgehen indem man F5 drückt.. dann wird nicht "umgeroutet" ;)

Javascript müsste nach dem drücken von F5 wieder von vorn anfangen..
und dann würde ich eventuell noch nen <noscript> tag einbauen, der dann das meta enthält, für den Fall das Javascript deaktiviert sein sollte.. (dann gehen zB auch die zurück Buttons nicht)
 
Danke für deine Hilfe aber das hate ich auch schon Probiert das proplem was ich hier dan habe ist das das script ja momentan nichts anderes macht auser zu Prüfen zeigt er mir trotzdem den zurück baten an auch wenn ich die Felder ausfülle.
 
PHP:
<?php

$nickname = $_POST['nickname'];
$username = $_POST['username'];


// Überprüfung ob was Eingegeben wurde ? //
if (($nickname = trim($_POST['nickname'])) == ''){
  echo 'Bitte geben Sie ein Nicknamen ein.';
  $error = 1;
} 
if (($username = trim($_POST['username'])) == ''){
  echo 'Bitte geben Sie ein Username ein.';
  $error = 1;
}
if($error==1)
  echo '
    <script type="text/javascript">
      function goBack(sek){
        if(sek>=0){
          sek--;
          setTimeout(\'goBack(\'+sek+\')\',999);
        }
        else{
          location.href="URLzurEingabeSeite";
        }
      }
    </script>
    goBack(5);
  ';
?>

da hat der Threadersteller doch glatt seinen zwischenpost gelöscht ^^
 
Zuletzt bearbeitet:
oder nach jedem echo ein

header("Refresh: 1; url=seite.php");

PHP:
<?php

$nickname = $_POST['nickname'];
$username = $_POST['username'];


// Überprüfung ob was Eingegeben wurde ? //
if (($nickname = trim($_POST['nickname'])) == ''){
echo 'Bitte geben Sie ein Nicknamen ein.';
header("Refresh: 1; url=seite.php");
} 
if (($username = trim($_POST['username'])) == ''){
echo 'Bitte geben Sie ein Username ein.';
header("Refresh: 1; url=seite.php");
}
?>

Allso das Funktioniert bei mir nicht da kommt folgende meldung
Warning: Cannot modify header information - header alredy sent by (output started at C:/xampp/htdocs/cms/register.php:9) in C:/xampp/htdocs/CMS/register.php on line 10


Und Java Script kenne ich mich nicht aus währe super wenn man das in PHP umsetzen könnte
 
Zuletzt bearbeitet:
Müsste aber nur gehen, wenn er nicht vorher bereits einen header gesetzt hat..

Allso das Funktioniert bei mir nicht da kommt folgende meldung
Warning: Cannot modify header information - header alredy sent by (output started at C:/xampp/htdocs/cms/register.php:9) in C:/xampp/htdocs/CMS/register.php on line 10


Und Java Script kenne ich mich nicht aus währe super wenn man das in PHP umsetzen könnte

wzbw :D
die Umsetzung hab ich einen Post vor deinem gepostet.. ;)
 

Neue Beiträge

Zurück