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

Login und Registrierung mit php und mysql! wie geht das?

Status
Für weitere Antworten geschlossen.
ich hab jetzt alle fehler behoben!
Hier nochmal die codes für alle:

für reg.php
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<?php
$host = "geheim.geheim.geheim";
$user = "geheim";
$pass = "geheim";
$database = "geheim";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> 
<?php
if(isset($_POST['submit'])) {
       if(empty($_POST['name'])) {
              $fehler .= "<li>Der Name fehlt!</li>";
       }
    #######################################################################
       if(empty($_POST['pwd'])) {
              $fehler .= "<li>Das Passwort fehlt!</li>";
       }
       #######################################################################
       if(empty($_POST['code'])) {
              $fehler .= "<li>Der Code fehlt!</li>";
       }
       #######################################################################
       elseif($_POST['code'] == $_POST['codetrue']) {
                   #Garnichts ist!^^#
       }
       #######################################################################
       else {
         $fehler .= "<li>Der Code ist Falsch</li>";
       }
    #######################################################################
    $wunschname = $_POST['name'];//Wunschname wird aus dem Formular gelesen.
$x = 0; //Beliebige Variabele auf 0 setzen.(Optional)
$sql = mysql_query("SELECT * FROM reg");
while($data = mysql_fetch_object($sql)) { //Die uebliche Abfrage, alles eimal durch.
$name = $data->name; //$name bekommt den Wert aus der Tabelle.
if($wunschname == $name) {
      $x = 1;
      $fehler .= "<li>Der Benutzername ist schon vergeben!</li>";
}
}
if($x != 1) echo "Der Benutzername ist noch zu haben. "; //Hier koennen natuerlcih auch Daten uebergeben werden.
 
 
 
    if(empty($fehler)) {
            $query = "INSERT INTO reg SET
               name = '".$_POST['name']."',
               pwd = '".$_POST['pwd']."'";
            $sql = mysql_query($query) or die(mysql_error());
            echo "Danke für deine registrierung<script type=\"text/javascript\">location.href=\"http://www.malegi.de/login.php?\";document.write(\"Weiterleitung\")</script>";
   header ("Location: login.php");
       }
    else echo "<h2>ERROR:<ul>".$fehler."</ul></h2>";
}
elseif(!isset($_POST['submit'])) {#Garnichts ist#
}
?> <h1>Registrierung</h1> <form method="post">
Name:<br> <input type="text" name="name"><br><br>
Passwort:<br> <input type="password" name="pwd"><br><br> <?php
$counter = rand(10000,100500);
$anzahl = strlen($counter);
$counter_grafik = "";
for ($pos = 0; $pos < $anzahl; $pos++) {
  $ziffer = substr($counter, $pos, 1);
  $counter_grafik .= "<img style=\"width:35px; height:50px;\" src=\"bilder/bild/$ziffer.png\">";
}
echo $counter_grafik;
?> <input type="hidden" value="<?=$counter?>" name="codetrue">
Bitte den linken Zahlencode Eingeben:<i>(Als Spammschutz)</i><br><input type="text" name="code"><br><br> <input type="submit" name="submit" value="Abschicken"> </form> </body> </html>

für login.php:

HTML:
<?php
session_start();
$host = "geheim.geheim.geheim";
$user = "geheim";
$pass = "geheim";
$database = "geheim";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
if($_GET['o'] == 1) {
     $variable = "Sie sind nun nicht mehr eingeloggt!";
}
if($_GET['l'] == 1) {
     $variable = "Sie müssen sich erst einloggen!";
}
$passwort = $_POST['pw'];
$name = $_POST['name'];
if(isset($_POST['log'])) {
       if(empty($name)) $fehler .= "<li>Kein Name eingegtragen</li>";
       if(empty($_POST['pw'])) $fehler .= "<li>Kein Passwort eingetragen</li>";
       if(empty($fehler)) {
            $verbindung = mysql_fetch_object(mysql_query("SELECT * FROM reg WHERE name = '$name'"));
            $pw = $verbindung->pwd;
            $usr = $verbindung->name;
            $id = $verbindung->id;
            if($pw == $passwort) {
 
                  $_SESSION["user_id"] = $id;  
                   $_SESSION["user_nickname"] = $usr;  
                  setcookie("logged", "1", time()+2592000);
                  $variable = "Login abgeschlossen!<script type=\"text/javascript\">location.href=\"http://www.malegi.de/seite.php\";document.write(\"Weiterleitung\")</script>";
                  header ("Location: seite.php");
            } else $variable = "Login fehlgeschlagen!";
       } elseif(isset($fehler)) $variable = "ERROR: <ul>".$fehler."</ul>";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo "".$variable."<br>";
?>
<h1>Login</h1>
<form method="post">
<fieldset><legend>Logindaten:</legend>
Name:<br>
<input type="text" name="name"><br><br>
Passwort:<br>
<input type="password" name="pw"><br><br>
</fieldset>
<fieldset><legend>Login:</legend>
<input type="submit" name="log" value="Login">
</fieldset>
</form>
</body>
</html>

Der Code zum checken ob man eingeloggt ist(muss auf jede seite die passwortgeschützt sein soll!)

PHP:
<?php  
session_start();
if (empty($_SESSION["user_id"]))  
{  
  header ("Location: login.php");
  echo "<script type=\"text/javascript\">location.href=\"http://www.malegi.de/login.php?l=1\";document.write(\"Weiterleitung\")</script>";  
} 
?>


für die datei logout.php(funzt noch nicht):

PHP:
<?php  
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.  
ob_start ();  
session_start ();  
session_unset ();  
session_destroy ();  
header ("Location: login.php?o=1");  
ob_end_flush ();  
?>
 
Werbung:
bin mir nicht ganz sicher aber vielleicht musst du das cookie manuell löschen, etwa so :
PHP:
setcookie("PHPSESSID", "", time()-1000);
 
Werbung:
das macht session_start() normal selber.
schau mal nach.

im firefox :
Extras - Einstellungen - Datenschutz - Cookies anzeigen

wirst viele drinnen haben, aber such oben nach localhost ( wenns bei dir am localhost testest ), dann zeigts dir die von dir an.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben