Eintrag in mysql funktioniert nicht

luppy

Grünschnabel
Ich versuche verzweifelt die Daten meines Formulars in die Datenbank zu schreiben. Bekomme allerdings immer nur leere Felder.
Bitte um Hilfe!

Name Datenbank: internationalewoche
table: anmeldung (vorname VARCHAR(30), nachname VARCHAR (30), email VARCHAR(35), passwort VARCHAR (30));


<html>
<body>
Registrierung war erfolgreich, zurück zur <a href="AnmeldungDeutsch.htm">Anmeldung</a><br>

<?php
$db_host = "localhost";
$db_user = "xyz";
$db_passwort = "";

$connect = @mysql_connect ($db_host, $db_user, $db_passwort) or die ("Verbindung nicht verfügbar");

$db = @mysql_select_db ("internationalewoche", $connect) or die ("Datenbank nicht verfügbar");

$insert = "insert into anmeldung (vorname, nachname, email, passwort) values ($vorname, $nachname, $email, $passwort);";
mysql_db_query ("internationalewoche", $insert, $connect);

$abfrage = "select * from anmeldung";
$erg = mysql_db_query ("internationalewoche", $abfrage, $connect);

echo "<table border = 1>";
echo "<tr><td>Vorname</td><td>Nachname</td><td>Email</td><td>Passwort</td></tr>";

while(list ($vorname,$nachname,$email,$passwort) = mysql_fetch_row($erg))
{
echo "<tr>";
echo "<td>$vorname</td><td>$nachname</td><td>$email</td><td>$passwort</td>";
echo "</tr>";
}
echo "</table>";

mysql_close($connect);


?>
</body>
</html>
 
Versuchs mal so:
PHP:
<?php
$db_host = "localhost";
$db_user = "xyz";
$db_passwort = "";

$connect = @mysql_connect ($db_host, $db_user, $db_passwort) or die ("Verbindung nicht verfügbar");

$db = @mysql_select_db ("internationalewoche", $connect) or die ("Datenbank nicht verfügbar");

//modifizierte INSERT-Anweisung
$insert = "INSERT INTO anmeldung (vorname, nachname, email, passwort) VALUES ('".$vorname."', '".$nachname."', '".$email."', '".$passwort."')";
$sql = mysql_query($insert);

$abfrage = "select * from anmeldung";
$erg = mysql_db_query ("internationalewoche", $abfrage, $connect);

echo "<table border = 1>";
echo "<tr><td>Vorname</td><td>Nachname</td><td>Email</td><td>Passwort</td></tr>";

while(list ($vorname,$nachname,$email,$passwort) = mysql_fetch_row($erg)) 
{
echo "<tr>";
echo "<td>$vorname</td><td>$nachname</td><td>$email</td><td>$passwort</td>";
echo "</tr>"; 
}
echo "</table>";

mysql_close($connect);


?>
 
Eigentlich sollte die Query von ludz stimmen.

Es kann evtl. sein, dass Du statt $vorname $_POST["vorname"] verwenden musst.

Also versuchs mal so:
PHP:
<?php 
$db_host = "localhost"; 
$db_user = "xyz"; 
$db_passwort = ""; 

$connect = @mysql_connect ($db_host, $db_user, $db_passwort) or die ("Verbindung nicht verfügbar"); 

$db = @mysql_select_db ("internationalewoche", $connect) or die ("Datenbank nicht verfügbar"); 

//modifizierte INSERT-Anweisung 
$insert = "INSERT INTO anmeldung (vorname, nachname, email, passwort) VALUES ('".$_POST['vorname']."', '".$_POST['nachname']."', '".$_POST['email']."', '".$_POST['passwort']."')"; 
$sql = mysql_query($insert); 

$abfrage = "select * from anmeldung"; 
$erg = mysql_db_query ("internationalewoche", $abfrage, $connect); 

echo "<table border = 1>"; 
echo "<tr><td>Vorname</td><td>Nachname</td><td>Email</td><td>Passwort</td></tr>"; 

while(list ($vorname,$nachname,$email,$passwort) = mysql_fetch_row($erg)) 
{ 
echo "<tr>"; 
echo "<td>$vorname</td><td>$nachname</td><td>$email</td><td>$passwort</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 

mysql_close($connect); 


?>

Falls das nicht klappt, kannst Du Dir ja mal Deine ganzen Variablen ausgeben lassen, und testen, ob die überhaupt Werte entahlten.
 
Danke funktioniert jetzt

Könnte noch jemand meine Passwortkontrolle überprüfen es wird nämlich immer "Passwort korrekt ausgegeben".

$passwort ist vom Registrierungsfomular
$pwanmeldung ist vom Anmeldungsformular

<html>
<body>
<?
$db_host = "localhost";
$db_user = "xyz";
$db_passwort = "";

$connection = @mysql_connect ($db_host, $db_user, $db_passwort) or die ("Verbindung nicht verfügbar");

$db = @mysql_select_db ("internationalewoche", $connection) or die ("Datenbank nicht verfügbar");

$abfrage = "select passwort from anmeldung where email = '$email';";

$erg = mysql_db_query ("internationalewoche", $abfrage, $connection);

while(list ($passwort) = mysql_fetch_row ($erg))
{
$pw3 = $passwort;
}

if($pwanmeldung == $pw3)
{
echo "Passwort korrekt!<br>";

echo "<form action = SpracheFreundDeutsch.htm method = post>";
echo "<input type = submit>";
echo "</form>";
}

else
{
echo "Passwort vergessen?";

echo "<form action = AnmeldungDeutsch.htm method = post>";
echo "<input type = submit>";
echo "</form>";
}

mysql_close ($connection);

?>
</body>
</html>

könnt ihr mir auch noch sagen wie ich überprüfe ob die email schon in der datenbank vorhanden ist, damit man sich nur einmal damit registrieren kann.
 
Zuletzt bearbeitet:
könnt ihr mir auch noch sagen wie ich überprüfe ob die email schon in der datenbank vorhanden ist, damit man sich nur einmal damit registrieren kann.
PHP:
//Wenn die eMail-Adresse direkt aus einem Formular kommt, dann solltest du besser $_POST['email'] oder $_GET['email'] o.Ä. verwenden (anstatt nur $email)
if (mysql_num_rows(mysql_query("SELECT email FROM anmeldung WHERE email = '".$email."'")) > 0) {
    echo 'eMail-Adresse ist bereits vorhanden!';
}
 
und das gleiche noch bei der Passwort-Kontrolle, dann passt'S :)
PHP:
 //Wenn die eMail-Adresse direkt aus einem Formular kommt, dann solltest du besser $_POST['email'] oder $_GET['email'] o.Ä. verwenden (anstatt nur $email) 
if (mysql_num_rows(mysql_query("SELECT email FROM anmeldung WHERE passwort = '".$pwanmeldung."' AND user = 'xyz'")) = 0) { 
    echo 'PW falsch!'; 
}
else{
echo 'PW richtig';
}
 
Hab das jetzt so gemacht, jetzt bekomm ich aber immer "passwort falsch"

<html>
<body>
<?
$db_host = "localhost";
$db_user = "xyz";
$db_passwort = "";

$connection = @mysql_connect ($db_host, $db_user, $db_passwort) or die ("Verbindung nicht verfügbar");

$db = @mysql_select_db ("internationalewoche", $connection) or die ("Datenbank nicht verfügbar");

$abfrage = "select passwort from anmeldung where email = '$email';";

$erg = mysql_db_query ("internationalewoche", $abfrage, $connection);



if (mysql_num_rows(mysql_query("SELECT email FROM anmeldung WHERE passwort = '".$pwanmeldung."'")) < 1)
{
echo "Passwort falsch!<br>";

echo "<form action = AnmeldungDeutsch.htm method = post>";
echo "<input type = submit>";
echo "</form>";
}

else
{
echo "Passwort korrekt";

echo "<form action = SpracheFreundDeutsch.htm method = post>";
echo "<input type = submit>";
echo "</form>";
}

mysql_close ($connection);
?>
</body>
</html>
 
Also ich hab mir jetz grad mal bei mir ne kleine Umgebung eingerichtet um dein Script zu testen.
Bei mir funktioniert der Passwort-Check einwandfrei mit Deinem Code.

Hast Du mal anstelle von $pwanmeldung $_POST['pwanmeldung'] versucht? Vielleicht liegt's ja daran...

MfG
 
Zurück