register Funktion im Login-System mit Sessions

free123

Mitglied
Hallo alle zusammen :)

Habe da ein anliegen betreffend des Tutorials Login-System mit Sessions
siehe auch
http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html

undzwar stehen die Daten Testbenutzer schon in der Datei drinne. Würde gerne eine Formular mit Eingabe Feld Registrieren einfügen

Hier ein Beispiel

PHP:
<form action="login.php" method="post">
  Name: <input type="text" name="name" size="20"><br>
  Kennwort: <input type="password" name="pwd" size="20"><br>
  noch nicht <a href="register.php">registriert?</a>
  <input type="submit" value="Login">
</form>

Wer kann mir da weiterhelfen

mfg chris
 
Als erstes brauchst du ein Forumluar.
Register.php
HTML:
echo"<form action=do_register method=post>";
echo"<table width=664 class=outtab><tr>
         <td width=332>
                    <tr><td><font class=mcont>Nachname :</td><td><input type=text name=name></td></tr>
                    <tr><td><font class=mcont>Vornamme :</td><td><input type=text name=vorname></td></tr>
                    <tr><td><font class=mcont>Nickname :</td><td> <input type=text name=nick></td></tr>
                    <tr><td><font class=mcont>Passwort :</td><td><input type=password name=passwort></td></tr>
<tr><td colspan=2><input name=register type=submit value=SENDEN></td>
     </tr></table></form>";

Musst du noch anpassen. Ist Designmäßig an meine Seite angepasst.
Damn die do_register.php
PHP:
$test = mysql_query("SELECT Nickname FROM benutzerdaten WHERE Nickname='" . mysql_real_escape_string($_POST['nick']) . "'");
if(mysql_num_rows($test) != 0)
    {
        echo "Dieser Nickname ist leider schon vergeben!<br>Bitte wähle Sie anderen!";

} else if( $abschicken == ($_POST['name'] !="") ) {
    echo"Bitte den Namen eingeben";
} else if( $abschicken == ($_POST['vorname'] !="") ) {
    echo"Bitte den Vornamen eingeben";
} else if( $abschicken == ($_POST['nick'] !="") ) {
    echo"Bitte einen Nicknamen eingeben";
} else if( $abschicken == ($_POST['passwort'] !="") ) {
    echo"Bitte ein Passwort eingeben";
}
else {
$nick = strip_tags($_POST['nick']);
$passwort = strip_tags($_POST['passwort']);
$name = strip_tags($_POST['name']);
$vorname = strip_tags($_POST['vorname']);
$sql = "INSERT INTO benutzerdaten
                (Nickname, Kennwort, Nachname, Vorname)
            VALUES
               ('".$nick."',
                '".md5 ($passwort)."',
                '".$name."',
                '".$vorname."')";
$eintragen = mysql_query($sql);
echo"Vielen Dank für die Registrierung.<br>
     Sie können Sich nun mit Ihrem Benutzernamen und Passwort einloggen";
}

Ich habe bereits eine überprüfung drinn das keine Benutzernamen doppelt Registriert werden. Ausserdem wird gleich überprüft ob alle Felder ausgefüllt wurden.
Es sollte auch schon recht sicher sein das kein PHP Code eingefügt werden kann .
Hoffe konnte dir helfen.
MFG
Funnyzocker
 
Zuletzt bearbeitet:
Ja vielen Dank habe es gerade getestet und es klappt :)

Eine Frage noch wie kann ich das überprüfen (do_register.php)
das keine Benutzerdaten 2mal eingetragen werden?

PHP:
echo"Der Benutzername ist schon vorhanden<br>";
;
 
Es wird bereits geprüft ob ein Benutzername schon vergeben ist!

*EDIT sehe auch gerade das da noch ein Fehler drinn ist. Schaue nochmal nach

*Edit2 Habe den Fehler rausgenommen und oben im Code bereits geändert.
 
Zuletzt bearbeitet:
Ja jetzt funktioniert es wunderbar.:)
So jetzt habe ich mich eingeloggt sehe meine Daten.
Wie kann ich denn internen Bereich(intern.php) erweitern?

Beispiel ich habe ein Gästebuch wie kann man das einfügen
PHP:
<a href="index.php?login=gastbuch">Testseite Gästebuch?</a>

Nur ausführen wenn der Benutzer eingelogt istwie kann man das realisieren?
 
Jede Seite die geschützt sein soll muss am anfang
PHP:
include ("check_user.php");
haben.

Durch das script wird geprüft ob der User eingeloggt ist und für ihn eine Session angelegt wurde. Ist das nicht der Fall wird er wie in der check_user.php angegeben auf eine andere Seite umgeleitet.
PHP:
if (!isset ($_SESSION["user_id"]))
{
  header ("Location: /index.php?section=loggedout");
}
Bei Location gibst du die Seite an auf die umgeleitet werden soll.
 
Hi leutz^^,

bin noch recht neu hier aber so geht das bei mir nicht...

hier mal mein fomularscript:

Regidit.php
Code:
<?php
session_start ();
?>
<html>
<head>

		
		<title>Game2/Regedit</title>
		<link rel="stylesheet" type="text/css" href='./css/dii.css'>
		
</head>
<body bgcolor="black" class="mainbg">

<center>
<table border="0" width="100%" height="100%" bgcolor="red">
	<tr>
		<td>
			<table border="0" width="100%" height="100%" bgcolor="black">
				<tr>
					<td align="center" valign="top">
						<form action="regedit1.php" method="post">
						Name:<br />
							<input type="text" name="name"><br />
						Passwort:<br />
							<input type="password" name="pwd"><br />
						E-Mail:<br />
							<input type="text" name="email"><br /><br />
					
							<input type="submit" value="Registrieren"><br />
							zum <a href="login.php">Login</a>
						</form>
					</td>
				</tr>
			</table>
		</td>
	</tr>
</table>
</center>
</body>
</html>

und hier das andere script^^

regedit1.php
Code:
<?php
session_start ();
include ("bin/verbindung.php");


		
$test = mysql_query("SELECT name FROM users WHERE name='" . mysql_real_escape_string($_POST['name']) . "'");
if(mysql_num_rows($test) != 0)
    {
        echo "Dieser Nickname ist leider schon vergeben!<br>Bitte wähle Sie anderen!";

} else if( $abschicken == ($_POST['name'] !="") ) {
    echo"Bitte den Namen eingeben";
} else if( $abschicken == ($_POST['pwd'] !="") ) {
    echo"Bitte ein Passwort eingeben";
} else if( $abschicken == ($_POST['email'] !="") ) {
    echo"Bitte eine E-mail eingeben";
} 
else {
$name = strip_tags($_POST['name']);
$pwd = strip_tags($_POST['pwd']);
$email = strip_tags($_POST['email']);

$sql = "INSERT INTO users
                (name, pwd, email)
            VALUES
               ('".$name."',
                '".md5 ($pwd)."',
                '".$email."',)";
				
$eintragen = mysql_query($sql);

echo"Vielen Dank für die Registrierung.<br>
     Sie können Sich nun mit Ihrem Benutzernamen und Passwort <a href=login.php>einloggen</a>";
} 
?>

Wo liegt mein fehler? also die Überprüfung functioniert wunderbahr aber er speichert die daten nicht in der Datenbank und er mekert auch nich^^.

Grus
xXGohanXx

*EDIT*

ok hab den fehler gefunden da war nen Komma zu viel

Code:
$sql = "INSERT INTO users
                (name, pwd, email)
            VALUES
               ('".$name."',
                '".md5 ($pwd)."',
                '".$email."', <-------- Hier ist der Böhsewicht*gg* )";
 
Zuletzt bearbeitet:
Da habe ich jetzt allerding noch ne frage! =)
Wo muss ich meine zugangsdaten eingeben (für mysql)

ich kenne mich nicht so gut mit php aus =)

danke

gruss
-={ schubi }=-
 
Zurück