Register Problem

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 :confused:

Code :

[PHP]<?php
echo „

Register

“;

$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. Login“);

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

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

}

?>

	<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>
Vorname:

[/PHP]

Datenbank struktur:

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 …

[PHP] $result = mysql_query($query) or die(mysql_error());[/PHP]

[SIZE=3]or[/SIZE]

so ?

[PHP]$queryreg = mysql_query(„INSERT INTO users VALUES (‚‘,‚$vorname‘,‚$nachname‘,‚$username‘,‚$plz‘,‚$password‘,‚$date‘)“);
or die(„Registrierung erfolgreich. Login“);[/PHP]

Bekomm ne weiße seite !

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]

Register

<?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. Login'); } } else { echo 'Passwörter stimmen nicht überein'; } } else { echo 'Bitte füllen sie die gekennzeichneten felder aus.'; } } ?>
    <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>
Vorname: ' />

[/PHP]

Erstmal Danke :slight_smile:
[B]
Notice: Undefined variable: date in /home/.sites/16/site1639/web/boerse/register.php on line 42

[/B]

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. Login‘); 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

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

Joa… jetzt schon … habs vorhin gemacht aber nicht nach deiner änderung :frowning:

Jetzt klappt alles :slight_smile:

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 ?

Verwende ebenfalls Notepad++.

Bzg. dem Strukturieren - Varianten gibts da viele, ich halte mich beim schreiben von Code an folgende: PHP Coding Guidelines | Buxaprojects

Eine kleine frage noch…

Ich will nur kappieren was ich hier falsch mache ?

[PHP]<?php

session_start();

if($_SESSION[‚username‘])

echo „Welcome, „.$_SESSION[‚username‘].“! Logout
“;

include (‚mysql.php‘);

$query = mysql_query(„SELECT * FROM users“);

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

?>[/PHP]

Ohne

[PHP]include (‚mysql.php‘);

$query = mysql_query(„SELECT * FROM users“); [/PHP]

funktioniert es … mit aber nicht

Sooo soweit funktionierts nun…

[PHP]<?php

session_start();

error_reporting(E_ALL);
ini_set(‚display_errors‘, 1);

if($_SESSION[‚username‘])

echo "Welcome, „.$_SESSION[‚username‘].“! Logout

";

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]
„;
echo"Nachname: $row[nachname]
“;
echo"PLZ: $row[plz]
„;
echo"Punkte: $row[points]
“;
?>[/PHP]

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.

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