[PHP]Problem mit Registrations Script

11/15/2012 12:23 DasPrinzip.#1
PHP Code:
 <?php
$verbindung 
mysql_connect("localhost""u19828_user" "****")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("u19828_user") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort $_POST["passwort"];
$passwort2 $_POST["passwort2"];

if(
$passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
    echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"reg.php\">Zurück</a>";
    exit;
    }
$passwort md5($passwort);

$result mysql_query("SELECT id FROM user WHERE username LIKE '$username'");
$menge mysql_num_rows($result);

if(
$menge == 0)
    {
    
$eintrag "INSERT INTO user (username, passwort) VALUES ('$username', '$passwort')";
    
$eintragen mysql_query($eintrag);

    if(
$eintragen == true)
        {
        echo 
"<head><meta http-equiv=\"refresh\" content=\"5; URL=index.php\"></head>Benutzername <b>$username</b> wurde erstellt.<br> Du wirst nun weitergeleitet...";
        }
    else
        {
        echo 
"Fehler beim Speichern des Benutzernames. <a href=\"reg.php\">Zurück</a>";
        }


    }

else
    {
    echo 
"Benutzername schon vorhanden. <a href=\"reg.php\">Zurück</a>";
    }
?>
Ich bekomme immer, wenn ich auf registrieren dürcke die Meldung: "Fehler beim Speichern des Benutzernames." Heißt hier klappt was nicht: $eintragen = mysql_query($eintrag);

Das Formular dazu:

HTML Code:
			<table>
			<form action="reg2.php" method="POST">
			<tr>
				<td>Email:</td><td> <input type="text" name="email" /></td>
			</tr>
			<tr>
				<td>Username:</td> <td><input type="text" name="username" /></td>
			</tr>
			<tr>
				<td>Password:</td><td> <input type="password" name="password" /></td>
			</tr>
			<tr>
				<td>Re-type Password:</td><td> <input type="password" name="re-password" /></td>
			</tr>
			<tr>
				<td></td><td><input type="submit" value="Registrieren" /></td>
			</tr>			
			</form>
			</table>
Vielen Dank für jegliche Hilfe!
11/15/2012 12:35 boxxiebabee#2
schau mal ob mysql_query nen error auspuckt
$eintragen = mysql_query($eintrag) or die(mysql_error());
11/15/2012 12:44 Mikesch01#3
Es ist nur eine Vermutung:

PHP Code:
mysql_select_db("u19828_user"
Die Datenbank scheint gleich zu heißen, wie der Benutzer. Ist das wirklich so?
11/15/2012 12:44 DasPrinzip.#4
Quote:
Originally Posted by boxxiebabee View Post
schau mal ob mysql_query nen error auspuckt
$eintragen = mysql_query($eintrag) or die(mysql_error());
Kommt kein Fehler :/

Quote:
Originally Posted by Mikesch01 View Post
Es ist nur eine Vermutung:

PHP Code:
mysql_select_db("u19828_user"
Die Datenbank scheint gleich zu heißen, wie der Benutzer. Ist das wirklich so?
Das ist richtig so.. ;) Der Login ist gleich mit der Datenbank .. bzw ich schau nochmal nach :o

Ne passt so..
11/15/2012 12:48 Zettabytes*#5
PHP Code:
$verbindung mysql_connect("localhost""u19828_user" "****")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("u19828_user") or die ("Datenbank konnte nicht ausgewählt werden"); 
u19828_user <- Ich glaube daran liegt es, benne die mal um.
11/15/2012 12:52 DasPrinzip.#6
Quote:
Originally Posted by Zettabytes* View Post
PHP Code:
$verbindung mysql_connect("localhost""u19828_user" "****")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("u19828_user") or die ("Datenbank konnte nicht ausgewählt werden"); 
u19828_user <- Ich glaube daran liegt es, benne die mal um.
Ich hab jetzt eine neue DB erstellt. Die neue heißt test. Hab das Skript angepasst. Jetzt kommt: "Unknown column 'passwort' in 'field list'"
11/15/2012 12:54 Zettabytes*#7
Quote:
Originally Posted by DasPrinzip. View Post
Ich hab jetzt eine neue DB erstellt. Die neue heißt test. Hab das Skript angepasst. Jetzt kommt: "Unknown column 'passwort' in 'field list'"

dann gibt es Passwort nicht, oder hast du es sicher richtig geschrieben bzw erstellt?

Wenn du Skype hast, adde mich mal: zettabytes.epvp
11/15/2012 13:20 DasPrinzip.#8
Ach bin ich ein Doofkopf :D

Ich hab euch das falsche Formular gegeben :P

HTML Code:
<form action="reg2.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2"><br>

<input type="submit" value="Abschicken">
</form>
Ach Leute Danke für eure Hilfe. Ich bin so ein Doofi ^^ Ich sollte mir mal angewöhnen entweder passwort oder password zu nehmen :P
11/15/2012 16:23 _robox#9
fehler1 keine namme für submit
Code:
<input type="submit" value="Abschicken">
dein Code Kann so nicht laufen leider wird diese Vorgehensweise oft noch so gelehrt

in schriet 1 musst du erst mit isset überprüfen ob dein Formular überhaupt abgeschickt wurde dazu braust du jetzt den Name von Submit

PHP Code:
if (isset($_POST['submit'])) {

    if (isset(
$_POST["username"]) && Isset($_POST["passwort"]) && isset($_POST["passwort2"])) {
        
$username $_POST["username"];
        
$passwort $_POST["passwort"];
        
$passwort2 $_POST["passwort2"];
        if (
$passwort != $passwort2 || $username == "" || $passwort == "") {
            echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"reg.php\">Zurück</a>";
            exit;
        }
    }

das zu Fehler 2
und jetzt zu Fehler 3
du fragst nun ab ob eine id für den username schon vorhanden ist soweit so gut kann Mann so machen ich wurde es zwar mit count machen
dein Überprüfung ist an dieser stelle der Fehler sie wird nie war werden
den mysql_num_rows liefert dir ja das Ergebnis zurück wenn er aber keine User Findet
kommt gar nichts zurück auch keine 0
PHP Code:
if($menge == 0
so Ware es richtig in deinen fall

PHP Code:
if($menge[0] == ""
11/15/2012 16:27 DasPrinzip.#10
Quote:
Originally Posted by _robox View Post
fehler1 keine namme für submit
Code:
<input type="submit" value="Abschicken">
dein Code Kann so nicht laufen leider wird diese Vorgehensweise oft noch so gelehrt

in schriet 1 musst du erst mit isset überprüfen ob dein Formular überhaupt abgeschickt wurde dazu braust du jetzt den Name von Submit

PHP Code:
if(isset($_POST['submit'])){

if(isset(
$_POST["username"]) && Isset("$_POST["passwort"]) && isset($_POST["passwort2"]){
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"]
if(
$passwort != $passwort2 || $username == "" || $passwort == "")
    {
    echo "
EingabefehlerBitte alle Felder korekt ausfüllen. <a href=\"reg.php\">Zurück</a>";
    exit;
    } 

das zu Fehler 2
und jetzt zu Fehler 3
du fragst nun ab ob eine id für den username schon vorhanden ist soweit so gut kann Mann so machen ich wurde es zwar mit count machen
dein Überprüfung ist an dieser stelle der Fehler sie wird nie war werden
den mysql_num_rows liefert dir ja das Ergebnis zurück wenn er aber keine User Findet
kommt gar nichts zurück auch keine 0
PHP Code:
if($menge == 0
so Ware es richtig in deinen fall

PHP Code:
if($menge[0] == ""
Ich kapier es nicht, warum manche noch posten obwohl das Problem schon lange behoben ist? Lest ihr euch eigentlich überhaupt mal die Posts der anderen User durch?
Und das Script klappt auch so.. Auch wenn mein Button keinen Namen ala Submit hat.
Trotzdem werden die Inputs weitergegeben und Das 2. Script kann diese Benutzen.
11/15/2012 16:30 NotEnoughForYou#11
Quote:
den mysql_num_rows liefert dir ja das Ergebnis zurück wenn er aber keine User Findet
kommt gar nichts zurück auch keine 0
Falsch, mysql_num_rows liefter im Fehlerfall 0 zurück (bzw. false).

Quote:
so Ware es richtig in deinen fall

PHP-Code:
if($menge[0] == "")
Ebenfalls falsch. Nirgends steht ein fetch_row / array

Außerdem sollte man mittels empty() prüfen ob ein Eintrag leer ist und nicht über == "".

PS: Ja ich habe gesehen, dass es behoben wurde. Wollte das nur klar stellen.
11/15/2012 17:00 _robox#12
Quote:
Originally Posted by NotEnoughForYou View Post
Falsch, mysql_num_rows liefter im Fehlerfall 0 zurück (bzw. false).


Ebenfalls falsch. Nirgends steht ein fetch_row / array
oke du hast recht mein Fehler.

Quote:
Originally Posted by NotEnoughForYou View Post
Außerdem sollte man mittels empty() prüfen ob ein Eintrag leer ist und nicht über == "".

PS: Ja ich habe gesehen, dass es behoben wurde. Wollte das nur klar stellen.
das Mann mit empty oder isset prüfen soll ist mir auch klar habe es in diesen Fall nicht extra angegeben.

@DasPrinzip.
das diene Script so sauber lauft kann ich mir so nicht vorstellen wenn ich mir den php code den du gebostet hat anschaue.

da es nur gehen kann wenn du in der php ini einige funktionen wieder eingeschalteten hast die da für notwendig waren was Mann auf gar keinen Fall machen soll.

außerdem solltest du alle anfragen mit mysql_real_escape_string absichern
11/15/2012 17:08 Hiris#13
Quote:
@DasPrinzip.
das diene Script so sauber lauft kann ich mir so nicht vorstellen wenn ich mir den php code den du gebostet hat anschaue.

da es nur gehen kann wenn du in der php ini einige funktionen wieder eingeschalteten hast die da für notwendig waren was Mann auf gar keinen Fall machen soll.
Beispiel?

Würde mich nur interessieren was du meinst denn ich sehe nichts, was auch nur annähernd eine änderung an der Php.ini vorraussetzen würde Q_Q
11/15/2012 17:11 NotEnoughForYou#14
Quote:
außerdem solltest du alle anfragen mit mysql_real_escape_string absichern
Habe ich ihm bereits über pn gesagt, genauso wie die richtige Verwendungsweise von LIKE.

Wie Hiris schon sagte, sieht man dort keine Inhalte die eine Änderung der php.ini vorraussetzen würden.

Da sich das Formular wie das Verarbeitungsscript nicht in einer Datei befinden ist auch ein Prüfen des Submits nicht zwingend notwendig.
11/15/2012 18:43 Mikesch01#15
Quote:
Originally Posted by NotEnoughForYou View Post
Wie Hiris schon sagte, sieht man dort keine Inhalte die eine Änderung der php.ini vorraussetzen würden.

Da sich das Formular wie das Verarbeitungsscript nicht in einer Datei befinden ist auch ein Prüfen des Submits nicht zwingend notwendig.
Aber

PHP Code:
if(isset($_POST['submit'])) {
...

benötigt eine POST-Variable mit dem Namen 'submit'. Und diese Variable ist doch nicht gesetzt, daher müsste es doch nicht gehn oder irre ich mich?