• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Register Problem

derises

Mitglied
Hy,

Hab ein problem bei meinem Code...

Ich klicke auf senden, es kommt die meldung das die Registrierung erfolgreich gewesen sei...
Aber in der DB ist nichts :/


Code :

PHP:
<?php
echo "<h1>Register</h1>";

$submit = $_POST ['submit'];
$vorname = strip_tags($_POST ['vorname']);
$nachname = strip_tags($_POST ['nachname']);
$username = strip_tags($_POST ['username']);
$plz = strip_tags($_POST ['plz']);
$password = (strip_tags($_POST ['password']));
$repeatpassword = (strip_tags($_POST ['repeatpassword']));
$date = date("Y-m-d");

if ($submit)
{
//check for existence	
if($username&&$plz&&$password&&$repeatpassword)


{
//encrypt password
$password = md5($password);
$repeatpassword = md5($repeatpassword);

if ($password==$repeatpassword)
{
//register the user

//open DB
include ('mysql.php');

$queryreg = mysql_query("INSERT INTO users VALUES ('','$vorname','$nachname','$username','$plz','$password','$date')");
die("Registrierung erfolgreich. <a href='index.php'>Login</a>");




}
else
echo"Passwörter stimmen nicht überein";


}
else
echo"Bitte füllen sie die gekennzeichneten felder aus.";

}


?>

<form action='register.php' method='POST'>
	<table>
	<tr>
		<td>
		Vorname:
		</td>
		<td>
		<input type='text' name='vorname' value='<?php echo $vorname; ?>' />
		</td>
	</tr>
	
		<tr>
		<td>
		Nachname:
		</td>
		<td>
		<input type='text' name='nachname' value='<?php echo $nachname; ?>' />
		</td>
	</tr>
	
		<tr>
		<td>
		Username:
		</td>
		<td>
		<input type='text' name='username' value='<?php echo $username; ?>' />
		</td>
	</tr>
	
	
	<tr>
		<td>
		PLZ:
		</td>
		<td>
		<input type='text' name='plz' value='<?php echo $plz; ?>' />
		</td>
	</tr>
	
	<tr>
		<td>
		Passwort:
		</td>
		<td>
		<input type='password' name='password' />
		</td>
	</tr>
	
			<tr>
		<td>
		Passwort Wiederholung:
		</td>
		<td>
		<input type='password' name='repeatpassword' />
		</td>
	</tr>
</table>
<p>
<input type='submit' name='submit' value='Register'/>

Datenbank struktur:

Code:
 id	int(11)			Nein	kein(e)	AUTO_INCREMENT	 	 	 
 vorname	varchar(50)	latin1_swedish_ci		Nein	kein(e)
 nachname	varchar(50)	latin1_swedish_ci		Nein	kein(e)		 	 	 
 username	varchar(50)	latin1_swedish_ci		Nein	kein(e)		 	 	  
 plz	varchar(50)	latin1_swedish_ci		Nein	kein(e)		 	 	 
 password	varchar(1000)	latin1_swedish_ci		Nein	kein(e)		 	 	 
 repeatpassword	varchar(1000)	latin1_swedish_ci		Nein	kein(e)		 	 	   
 date	date			Nein	kein(e)

Password hab ich normal auf Varchar mit einer länge von 32 Zeichen.
Habs testweise auf 1000 gesetzt ....
 
Werbung:
Werbung:
Steht vor meinem or ein Semikolon?? Zumal der Text in deinem or die() überhaupt keinen Sinn macht, der wird nämlich bei Nichterfolg ausgefürt.
Und mach mal error_reporting an.
 
Hab dein Script ein wenig überarbeitet - allerdings ungetestet. Sofern also Fehler auftreten, sag Bescheid.

PHP:
<h1>Register</h1>

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if (isset($_POST['submit'])) {
    $userDatas = array('firstname'       => isset($_POST['vorname'])        ? (string)trim($_POST['vorname'])        : '',
                       'secondname'      => isset($_POST['nachname'])       ? (string)trim($_POST['nachname'])       : '',
                       'username'        => isset($_POST['username'])       ? (string)trim($_POST['username'])       : '',
                       'plz'             => isset($_POST['plz'])            ? (string)trim($_POST['plz'])            : '',
                       'password'        => isset($_POST['password'])       ? (string)trim($_POST['password'])       : '',
                       'repeat_password' => isset($_POST['repeatpassword']) ? (string)trim($_POST['repeatpassword']) : '',
                       'date'            => date('Y-m-d'));

    // an empty input is not allowed    
    if (!empty($userDatas['firstname']) && !empty($userDatas['secondname']) && 
        !empty($userDatas['username']) && !empty($userDatas['plz']) &&
        !empty($userDatas['password']) && !empty($userDatas['repeat_password'])) {

        if ($userDatas['password'] == $userDatas['repeat_password']) {
            include ('mysql.php'); 

            $sql = "INSERT INTO `users`
                    (
                     `Spalte 1`,
                     `Spalte 2`,
                     `Spalte 3`,
                     `Spalte 4`,
                     `Spalte 5`,
                     `Spalte 6`,
                     `Spalte 7`                     
                    )
                    VALUES 
                    (
                     '',
                     '".mysql_real_escape_string($userDatas['firstname'])."',
                     '".mysql_real_escape_string($userDatas['secondname'])."',
                     '".mysql_real_escape_string($userDatas['username'])."',
                     '".mysql_real_escape_string($userDatas['plz'])."',
                     '".mysql_real_escape_string(md5($userDatas['password']))."',
                     '".mysql_real_escape_string($userDatas['date'])."'
                    )";
                    
            $result = mysql_query($sql);
            
            if ($result) {
                die('Registrierung erfolgreich. <a href="index.php">Login</a>');
            }
        } else {
            echo 'Passwörter stimmen nicht überein';
        }

    } else {
        echo 'Bitte füllen sie die gekennzeichneten felder aus.';
    }
}


?>

<form action='register.php' method='POST'>
    <table>
    <tr>
        <td>
        Vorname:
        </td>
        <td>
        <input type='text' name='vorname' value='<?php echo isset($_POST['vorname']) ? htmlentities(trim($_POST['vorname'])) : ''; ?>' />
        </td>
    </tr>
    
        <tr>
        <td>
        Nachname:
        </td>
        <td>
        <input type='text' name='nachname' value='<?php echo isset($_POST['nachname']) ? htmlentities(trim($_POST['nachname'])) : ''; ?>' />
        </td>
    </tr>
    
    <tr>
        <td>
        Username:
        </td>
        <td>
        <input type='text' name='username' value='<?php echo isset($_POST['username']) ? htmlentities(trim($_POST['username'])) : ''; ?>' />
        </td>
    </tr>
    
    
    <tr>
        <td>
        PLZ:
        </td>
        <td>
        <input type='text' name='plz' value='<?php echo isset($_POST['plz']) ? htmlentities(trim($_POST['plz'])) : ''; ?>' />
        </td>
    </tr>
    
    <tr>
        <td>
        Passwort:
        </td>
        <td>
        <input type='password' name='password' />
        </td>
    </tr>
    
            <tr>
        <td>
        Passwort Wiederholung:
        </td>
        <td>
        <input type='password' name='repeatpassword' />
        </td>
    </tr>
</table>
<p>
<input type='submit' name='submit' value='Register' />
 
Werbung:
Ich habe meinen Beitrag oben aktualisiert. Versuchs mit dem neuen Code.

PS: werden schon Daten eingetragen?

Hab ich versucht, keine fehlermeldung aber auch kein eintrag.

Auch das die('Registrierung erfolgreich. <a href="index.php">Login</a>'); wird nicht ausgegeben.
Ich klicke auf den button und die beiden passwort felder werden geleert, ansonsten passiert garnichts .

Die DB verbindung wird aber hergestellt, da ich mal probehalber über phpmyadmin nen benutzer angelegt hab und mich eingeloggt hab , über das login formular...

Hmm
 
Werbung:
Die Spaltennamen im SQL Statement hast Du aber schon angepasst? ^^

Joa... jetzt schon .. habs vorhin gemacht aber nicht nach deiner änderung :(

Jetzt klappt alles :)

Mal ne frage nebenbei.
Hast du nen Speziellen Editor oder warum ist dein code so gut strukturiert und formatiert ?

Klar bist du in php tausend mal besser als ich keine frage, aber ich hab notepad+ ....
Gibts was besseres für anfänger ?
 
Eine kleine frage noch...

Ich will nur kappieren was ich hier falsch mache ?

PHP:
<?php

session_start();

if($_SESSION['username'])



echo "Welcome, ".$_SESSION['username']."! <a href='logout.php'>Logout</a><br />";

include ('mysql.php');

$query = mysql_query("SELECT * FROM users");

else
die("Sie müssen eingeloggt sein um diese Seite zu sehen.");

?>

Ohne

PHP:
include ('mysql.php');

$query = mysql_query("SELECT * FROM users");

funktioniert es .... mit aber nicht
 
Werbung:
Sooo soweit funktionierts nun...


PHP:
<?php

session_start();

error_reporting(E_ALL);
ini_set('display_errors', 1);

if($_SESSION['username'])



echo "Welcome, ".$_SESSION['username']."! <a href='logout.php'>Logout</a><br />

";



else
die("Sie müssen eingeloggt sein um diese Seite zu sehen.");


include ('mysql.php');

$query = "SELECT * FROM users WHERE username='".$_SESSION['username']."'"; 

$result = mysql_query($query); 
  while ($row = mysql_fetch_array($result)) 

  echo"Vorname: $row[vorname] <br />";
echo"Nachname: $row[nachname] <br />";
echo"PLZ: $row[plz] <br />";
echo"Punkte: $row[points] <br />";
?>

Problem: es wird nur Vorname ausgegeben ... nachname, plz und points nicht ...
 
Dir fehlen offenbar grundlegende PHP Kenntnisse. In der Quellensammlung in meiner Signatur kannst du dir jede Menge Infomaterial besorgen. Ich denke man wird dir nicht weiterhin alles vorgekaut servieren.
 
Dir fehlen offenbar grundlegende PHP Kenntnisse. In der Quellensammlung in meiner Signatur kannst du dir jede Menge Infomaterial besorgen. Ich denke man wird dir nicht weiterhin alles vorgekaut servieren.

Wie du schon bemerkt hast , bin ich am lernen. Ich lese auch sehr viel. Dennoch bin ich ein mensch der die praxis braucht.
Ich bitte dich freundlich, poste keine antworten mehr auf meine fragen.
Viele leute werden & wollen helfen , und haben die geduld da jeder selbst weiß das aller anfang schwer ist . Danke
 
Werbung:
Zurück
Oben