Bei Formular Aufruf schon Ausgabe

  • Themenstarter Themenstarter Perforator
  • Beginndatum Beginndatum
P

Perforator

habe ein anmeldescript!
und nun wenn ich es aufrufe wird unter meinem formular schon das echo ausgegeben was eigentlich erst nachdem man auf submit geklickt hat erscheinen soll.

also ich ruf die datei auf und ohne irgendwas eingegeben zu haben steht unter meinem form schon "Daten eingetragen" oder wie auch immer.

warum?

danke für die Hilfe
 
Ich schätze mal das du einfach alles hintereinander geschrieben hast ohne eine Kontrollstruktur einzufügen die kontrolliert ob der Button "Submit" schon gedrückt wurde.

Du solltest eine If-Abfrage vorher machen ob der Submit-Button schon gedrückt wurde. Wenn nicht, dann soll er nur das Formular ausgeben, wenn ja dann den gewünschten Text.

Beispielcode:
PHP:
<?
if($_POST['submit']) {
print "Button gedrueckt";
} else {
?>
<form action="..." method="post">
<input type="submit" name="submit" ...>
<?
}
?>
$_POST['submit'] = der Name des Buttons, hier submit
 
noe ich habe ne abfrage gemacht
also so:
PHP:
if($submit){
....
...
..
}

das mit der abfrage kommt allerdings nach dem HTML code für das formular.

wenns erwünscht is kann ich im späten nachmittag mal den code posten, wenn ich zu Hause bin.
 
Ich würde das Formular in die Abfrage mit einbauen, sonst ist wirklich das "submit" schon vorhanden, was zu folglicherweise zu einem Fehler führt.

Ansonsten kann es sein das bei dir die Einstellung register_globals auf off ist, dann wird ein einfaches "$submit" als eine leere Variable angesehen.
Hier benötigst du dann wirklich ein $_POST['submit'].
 
register_globals is auf on des weis ich ziemlich sicher!
aber das mit dem $_POST['submit'] werd ich mal machen, und ein bisschen probieren.
wie ich das formular in die abfrage einbau ist mir noch ein wenig unklar!

werde wenn ich das nicht hinbekomme den code mal posten, dann kann man ja nochmal drüber schaun was zu verbessern wäre!

bis dann
danke schonmal
 
also ich habs bis jetzt noch nicht hinbekommen!
register_globals is auf on

is poste jetzt mal den code:
PHP:
<html>
<title>Anmeldung</title>
<body bgcolor="black" text="#a0a0a0"> 
<center>
<table border="3" width="400" height="200" cellpadding="1" cellspacing="1">
<tr>
<td> 
<form action=<? $_SERVER["PHP_SELF"] ?> method="post">

//html code für das form

</form> 
<?php 

// Adresse des Servers mit Port 
$servername = "localhost"; 

// Benutzername für die Datenbank 
$dbusername = ""; 

// Passwort für die Datenbank 
$dbpassword = ""; 

// Name der datenbank 
$dbname = "huhu"; 

$table = "lala";

	 //eine Verbindung zum MySQL-Server wird hergestellt 

	 @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen"); 
	 mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

	 
if($_POST['submit'])
{ 

	 //Jetzt werden in die Tabelle die Daten eingefügt
   $query="INSERT INTO lala (nickname, e-mail, name, vorname, geburtsdatum, clan, passwort) values ('$nickname', '$e-mail', '$name', '$vorname', $'geburtsdatum', '$clan, '$passwort')"; 
	 $result = mysql_query($query);
      echo "Geschafft"; 

   }else{ 

      echo "Einer deiner Eingaben waren nicht korrekt, bitte wiederholen!"; 

   } 

@mysql_close(); 

?> 
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
schade das du den Inhalt deiner Form nicht mitgepostet hast, aber auf diesem Wege würde er a beim ersten Aufruf zumindest ausgeben, dass die Eingaben falsch waren...auch nicht sehr gut...ich übergeben in der Form immer noch eine Kontrollvariable
PHP:
<input type=hidden name=wasistzutun value=eintragen>
und gucke dann über PHP ob was gemacht werden soll und geh dann durch ob die EIngaben ok sind
PHP:
if (isset($wasistzutun)) {
   if ($wasistzutun == "eintragen") {
      if (isset($name) && $name != "") {
         echo "alles klar";
      } else {
         echo "gib mal´nen Namen ein!";
      }
   }
}
 
ok sehr gut, des funktioniert soweit schonmal

aber ich würd gern wissen wie ich jetzt die ganzen if abfragen etwas schöner machen könnte weil ich ziemlich viele felder hab!
und es nicht so gut programmiert ist jetzt 10x mal oder so if untereinander zu haben.

weis jemand ne lösung?

thx
 
Hmmm...also ich verschachtel das immer so, wie du es jetzt angehen willst...musst ja auch nicht alle Felder chacken...aber bei der MailAddy ist es scon recht sinnvoll da mit regex drüber zu gehen...
um mehrere Felder zu checken, ob sie Inhalt würde ich es mal mit folgendem Versuchen.
PHP:
if ((nickname, e-mail, name, vorname, geburtsdatum, clan, passwort) != "") {
//bla
}

kann das jetzt grad nicht testen...ansonsten versuch ma statt den Kommata(,) AND(&&) einzusetzen.

viel spass damit
 
also mit "," geht es nicht! ich hab es mit && gemacht, was aber alle noch nicht so funktionieren zu scheint!
also er macht zwar die Ausgabe blos er schreibt es nicht in die DB.

hier nochmal der code
PHP:
<?php 

// Adresse des Servers mit Port 
$servername = "localhost"; 

// Benutzername für die Datenbank 
$dbusername = "root"; 

// Passwort für die Datenbank 
$dbpassword = ""; 

// Name der datenbank 
$dbname = "huhu"; 

$table = "lulu";




if(isset($wasistzutun)) {
   if($wasistzutun == "Anmelden") {
	  if ((nickname && email && name && vorname && geburtsdatum) != "") {
		 if($passwort == $passwort2) {
            if($submit) { 

	 //eine Verbindung zum MySQL-Server wird hergestellt 

	 @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen"); 
	 mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");
	 
	 //Jetzt werden in die Tabelle die Daten eingefügt
   $query="INSERT INTO lulu (nickname, email, name, vorname, geburtsdatum, clan, passwort) values ('$nickname', '$email', '$name', '$vorname', $'geburtsdatum', '$clan, '$passwort')"; 
	 $result = mysql_query($query);
	 
      echo "Du hast dich erfolgreich angemeldet!"; 

			@mysql_close();
			
   }else{ 

      echo "Du hast entweder nicht alle Felder ausgefüllt oder ein Fehler ist aufgetreten!"; 

   } } } } }
 

?>
 
Zurück