system
21. Januar 2007 um 20:49
1
Hi!!
bei meinem code:
[php]
<head>
<title>Registrierung mit Hilfe einer Aktivierungsmail</title>
</head>
<body>
<?php
$DatabaseHost = "localhost";
$DatabaseUser = "USER";
$DatabasePassword = "PW";
$Database = "DB";
$TableAktivierung = "Aktivierung";
$Absender = "admins@toma.de.pn";
if($_REQUEST['Send'])
{
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$Erstellt = date("Y-m-d H:i:s");
$Aktivierungscode = rand(1, 99999999);
mysql_query("INSERT INTO $TableAktivierung (Aktivierungscode, Erstellt, EMail, Aktiviert, passwort, username) VALUES ('$Aktivierungscode', '$Erstellt', '".$_REQUEST['EMail']."', 'Nein', passwort, username)", $DatabasePointer);
echo"Der Admin wird nun entscheiden ob sie den Zugang zum Mitglieder-Bereich erhalten. Sie werden dann Informiert! Bitte haben sie etwas geduld!!!";
}
else
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
eMail: <input maxlength="255" name="EMail" type="text"><br>
Passwort:
Benutzername:
<input name="Send" type="submit" value="Absenden">
</form>
<?php
}
?>
</body>
</html>
[/php]
werden username und passwort nicht in die tabelle eingetragen!! warum nicht?
→ variablenausgabe im string
Nils aka XraYSoLo
system
22. Januar 2007 um 12:53
4
habs jetzt so:
[php]
<?php
$verbindung = @mysql_connect("localhost", "USER" , "PW")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("DB") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["username"];
$email = $_POST["email"];
$icq = $_POST["icq"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
if($passwort != $passwort2 OR $username == "" OR $passwort == "")
{
echo "Eingabefehler. Bitte alle Felder korekt ausfüllen.
Achte bitte darauf, dass die ICQ-Nummer 9 ZAHLEN haben MUSS!!! Zurück ";
exit;
}
$passwort = md5($passwort);
$result = mysql_query("SELECT ID FROM Aktivierung WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);
$Aktivierungscode = rand(1, 99999999);
if($menge == 0)
{
$eintrag = "INSERT INTO Aktivierung (Aktivierungscode, username, passwort, EMail, icq) VALUES ('$Aktivierungscode', '$username', '$passwort', '$EMail', 'Nein', '$icq')";
$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo "Benutzername $username wurde erstellt. Login ";
}
else
{
echo "Fehler beim Speichern des Benutzernames. Zurück ";
}
}
else
{
echo "Benutzername schon vorhanden. Zurück ";
}
?>
[/php]
aber immernoch fehler beim speichern des benutzernamens warum?
Probier mal das
[php]
$eintrag = „INSERT INTO Aktivierung (Aktivierungscode, username, passwort, EMail, icq) VALUES (‚$Aktivierungscode‘, ‚$username‘, ‚$passwort‘, ‚$EMail‘, ‚Nein‘, ‚$icq‘)“;
[/php]
in
[php]
$eintrag = „INSERT INTO Aktivierung (Aktivierungscode, username, passwort, EMail, icq) VALUES ('“.$_POST[‚Aktivierungscode‘].„', '“.$_POST[‚username‘].„', '“.$_POST[‚passwort‘].„', '“:$_POST[‚EMail‘].„', ‚Nein‘, '“.$_POST[‚icq‘].„')“;
[/php]
um. Ich bin mir zwar gerade nicht sicher, aber einen Versuch wäre es ja wert.
Gruß
system
22. Januar 2007 um 14:05
6
mhh… kommt immernoch auf die meldung fehler beim speichern des benutzernamens raus!
Frank
22. Januar 2007 um 14:41
7
das liegt aber net an der Mysql Abfrage
[PHP]
if($eintragen == true)
{
echo „Benutzername $username wurde erstellt.
<a href="login.html">Login“;
}
[/PHP]
Dieser Fall wird NIEMALS eintreten.
Denn gelingt die Mysql abfrage, so gibt mysql_query eine Ressourcen-Kennung zurück und nicht TRUE
http://www.php.net/mysql_query
Nur wenn die Abfrage fehlschlägt, bekommst du false.
Also änder deine If abfrage
[PHP]
//Variante 1
if($eintragen != false)
{
echo „Benutzername $username wurde erstellt.
<a href="login.html">Login“;
}
//Variante 2
if(mysql_affected_rows($eintragen) == 1)
{
echo „Benutzername $username wurde erstellt.
<a href="login.html">Login“;
}
[/PHP]
mfG Ch3ck3r
system
22. Januar 2007 um 14:58
8
und immernoch bekomm ich zu lesen das die speicherung des benutzernamens nicht geklappt hat:
[php]
<?php
$verbindung = @mysql_connect("localhost", "USER" , "PW")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("DB") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["username"];
$EMail = $_POST["EMail"];
$icq = $_POST["icq"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
if($passwort != $passwort2 OR $username == "" OR $passwort == "")
{
echo "Eingabefehler. Bitte alle Felder korekt ausfüllen.
Achte bitte darauf, dass die ICQ-Nummer 9 ZAHLEN haben MUSS!!! Zurück ";
exit;
}
$passwort = md5($passwort);
$result = mysql_query("SELECT ID FROM Aktivierung WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);
$Aktivierungscode = rand(1, 99999999);
if($menge == 0)
{
$eintrag = "INSERT INTO Aktivierung (Aktivierungscode, username, passwort, EMail, icq) VALUES ('".$_POST['Aktivierungscode']."', '".$_POST['username']."', '".$_POST['passwort']."', '";$_POST['EMail']."', 'Nein', '".$_POST['icq']."')";
$eintragen = mysql_query($eintrag);
//Variante 1
if($eintragen != false)
{
echo "Benutzername $username wurde erstellt.
Login ";
}
else
{
echo "Fehler beim Speichern des Benutzernames. Zurück ";
}
}
else
{
echo "Benutzername schon vorhanden. Zurück ";
}
?>
[/php]
Frank
22. Januar 2007 um 15:08
9
dann gib einfach mal den mysql fehler aus und du weißt was nicht stimmt
system
22. Januar 2007 um 15:12
10
wie kann ich den denn ausgeben?
Indem du ein:
[php]
or die(mysql_error());
[/php]
ans Ende des Querys schreibst.
Frank
22. Januar 2007 um 15:20
12
boah also langsam reichts echt
[PHP]
echo mysql_error();
echo mysql_errno();
[/PHP]