Login-System mit PHP und MYSQL

@alexbot

soll das eine Art Templatsystem sein?

Wenn ja, empfehle ich dir, mal das SMARTY-Template-System zu gemühte zu ziehen, dass ist recht nah an das PHP angelehnt und funktioniert bei mir recht gut.

http://smarty.php.net/manual/de

Gruß Matze202.

PS.: kommt überhaupt noch eine Fehlermeldung?
 
@ matze das ist ja alles schon ganz fertig, ich hab das bloß übernommen und führe das weiter und versuch es zu erweitern, jetzt funktioniert ja auch alles , zumindestens im moment schau es dir an http://www.ot-batenbrock.de .
weißt du zufällig ob man Location auch ein Attribut ähnlich wie _target hinzufügen kann?
gruß alex
 
Hi!

...Du inkludest immer komplette Html-Seiten inklusive '<html><body>' etc. :eek:
...das solltest Du unbedingt noch ändern ;)

Liebe Grüße,
Mark.
 
Diese Seite wird mir zwar mit dem Text Mitarbeiterlogin rechts angezeigt, aber ich finde keinen Login, kann es sein dass du die online-Seite noch nicht aktualisiert hast?

Zu deiner Frage, kann ich dir leider nicht weiter sagen, als mal bissel googlen, denn ich habe mich damit noch nicht so sehr befasst.

Gruß Matze202.
 
@ Matze nein ich hab da noch nichts hochgelade, denn soweit bin ich ja noch nicht ich wollte dir bloß zeigen wo das alles hinkommt bisher keinen weiteren Probleme wenn ich noch was habe melde ich mich bis dann
Danke nochmal und lieber Gruß Alex
 
Hallo Ihr lieben da draußen,
hab da noch ein Problem hab für mein Login system jetzt auch die Regestrier Seite fertig,
das Problem ist, es gibt keins, ich wenn ich mich einloggen will tut er nichts der mysql_error zeigt nichts an und auch sonst kommt keinen fehler meldung, hier ist der script vielleicht fällt jemandem noch was ein.
erstmal das Formular, vobei ich denke das es korrekt ist.
HTML:
<table cellpadding="0" cellspacing="0" border="0">
      <form action="inc/regist.inc.php" method="post">
      <tr><td>Benutzername:</td></tr>
	  <tr><td><input type="text" name="coname" size="30" maxlength="30"></td></tr>
      <tr><td>Vorname:</td></tr>
      <tr><td><input type="text" name="vorname" size="30" maxlength="30"></td></tr>
      <tr><td>Nachname:</td></tr>
      <tr><td><input type="text" name="nachname" size="30" maxlength="30"></td></tr>
      <tr><td>Passwort:</td></tr>
      <tr><td><input type="password" name="pass" size="30" maxlength="15"></td></tr>
      <tr><td>Passwort wiederholen:</td></tr>
      <tr><td><input type="password" name="pass1" size="30" maxlength="15"></td></tr>
      <tr><td>E-Mail Adresse:</td></tr>
      <tr><td><input type="text" name="email" size="30" maxlength="50"></td></tr>
      <tr><td><input type="submit" value="Senden" name="senden" size="30" maxlength="50"></td></tr>
      </form>
      </table>
und hier der PHP der datei regist.inc.php
PHP:
<?php

  if ($_SERVER["HTTP_HOST"] == "127.0.0.1")
  {
    $server = "localhost";
    $datenbank = "ot-batenbrock-de";
    $benutzer = "root";
    $passwort = "";
  }
  else 
  {
    $server = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $datenbank = "XXXXXXXXXXXXXXXXXXXX";
    $benutzer = "XXXXXXXXXXXXXXXXXX";
    $passwort = "XXXXXXXXXXXXXXXXXXX";
  }
  
  $verbindung = mysql_connect($server, $benutzer, $passwort) or die("Keine Verbindung zur Datenbank!");
  if(!mysql_select_db($datenbank, $verbindung)) {die("Datenbank konnte nicht ausgewählt werden!");}
 
  $test = mysql_query("SELECT ID, Benutzer FROM otb_infologin WHERE Benutzer='" . mysql_real_escape_string($_POST['coname']) . "'");
  if($data["ID"] != NULL)
  {    
  $sql = "INSERT INTO otb_infologin (ID, Benutzer, Vorname, Nachname, Kennwort, Email) VALUES ('".mysql_real_escape_string ($_POST[coname])."', '".
        																			   mysql_real_escape_string ($_POST[vorname])."', '".
																					   mysql_real_escape_string ($_POST[nachname])."', '".
																					   mysql_real_escape_string (md5 ($_POST[pass]))."', '".
																					   mysql_real_escape_string ($_POST[email])."', ')";
  
  mysql_query($sql) or die(mysql_error());
  if (mysql_affected_rows ($verbindung) > NULL) {echo "Vielen Dank, Sie wurden erfolgreich unter dem Namen ". mysql_real_escape_string ($_POST[coname])." regestriert";}
  else{echo "Die Dateneingabe war nicht erfolgreich.";}
  }
?>
Wenn ich im Formular auf abschicken geh tut er nichts ruft diesen skript auf und zeigt ne leere Seite an, und n die tabelle wird auch nichts eingetragen
schonmal vielen dank für eure Mühe
Gruß aleX;-)
 
PHP:
<?php

  if ($_SERVER["HTTP_HOST"] == "127.0.0.1")
  {
    $server = "localhost";
    $datenbank = "ot-batenbrock-de";
    $benutzer = "root";
    $passwort = "";
  }
  else 
  {
    $server = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $datenbank = "XXXXXXXXXXXXXXXXXXXX";
    $benutzer = "XXXXXXXXXXXXXXXXXX";
    $passwort = "XXXXXXXXXXXXXXXXXXX";
  }
  
  $verbindung = mysql_connect($server, $benutzer, $passwort) or die("Keine Verbindung zur Datenbank!");
  if(!mysql_select_db($datenbank, $verbindung)) {die("Datenbank konnte nicht ausgewählt werden!");}
 
  $test = mysql_query("SELECT ID, Benutzer FROM otb_infologin WHERE Benutzer='" . mysql_real_escape_string($_POST['coname']) . "'");
  if($data["ID"] != NULL)
  {    
  $sql = "INSERT INTO otb_infologin (ID, Benutzer, Vorname, Nachname, Kennwort, Email) VALUES ('".mysql_real_escape_string ($_POST[coname])."', '".
        																			   mysql_real_escape_string ($_POST[vorname])."', '".
																					   mysql_real_escape_string ($_POST[nachname])."', '".
																					   mysql_real_escape_string (md5 ($_POST[pass]))."', '".
																					   mysql_real_escape_string ($_POST[email])."', ')";
  
  mysql_query($sql) or die(mysql_error());
  if (mysql_affected_rows ($verbindung) > NULL) {echo "Vielen Dank, Sie wurden erfolgreich unter dem Namen ". mysql_real_escape_string ($_POST[coname])." regestriert";}
  else{echo "Die Dateneingabe war nicht erfolgreich.";}
  }
?>

PHP:
<?php

  if ($_SERVER["HTTP_HOST"] == "127.0.0.1")
  {
    $server = "localhost";
    $datenbank = "ot-batenbrock-de";
    $benutzer = "root";
    $passwort = "";
  }
  else 
  {
    $server = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $datenbank = "XXXXXXXXXXXXXXXXXXXX";
    $benutzer = "XXXXXXXXXXXXXXXXXX";
    $passwort = "XXXXXXXXXXXXXXXXXXX";
  }
  
  $verbindung = mysql_connect($server, $benutzer, $passwort) or die("Keine Verbindung zur Datenbank!");
  if(!mysql_select_db($datenbank, $verbindung)) {die("Datenbank konnte nicht ausgewählt werden!");}
 
  $data_query = mysql_query("SELECT ID, Benutzer FROM `otb_infologin` WHERE `Benutzer`='" . mysql_real_escape_string($_POST['coname']) . "'");
  $data = mysql_fetch_array($data_query);
  if($data["ID"] != NULL)
  {    
    echo "Der Benutzer ".$_POST['coname']." ist bereits vorhanden. Bitte wähle einen anderen Benutzernamen.";
  }else{
    $sql = "INSERT INTO `otb_infologin` (`Benutzer`, 
                                         `Vorname`, 
                                         `Nachname`, 
                                         `Kennwort`, 
                                         `Email`
                                          ) VALUES (
                                         '".mysql_real_escape_string($_POST['coname'])."',
                                         '".mysql_real_escape_string($_POST['vorname'])."',
                                         '".mysql_real_escape_string($_POST['nachname'])."',
                                         '".mysql_real_escape_string(md5 ($_POST['pass']))."',
                                         '".mysql_real_escape_string($_POST['email'])."')";
  
  mysql_query($sql) or die(mysql_error());
  echo "Vielen Dank, Sie wurden erfolgreich unter dem Namen ".$_POST['coname']." regestriert.";
  }
?>

Ich hoff, ich hab nichts übersehen, aber versuchs einfach mal damit.

Im Formular fragst du zwar die Passwortbestädigung ab, aber diese überprüfst du doch garnicht.

Gruß Matze202.
 
Zuletzt bearbeitet:
@Matze, Danke nochmal jetzt gehts, weißt du woran es gelegen hat?
Bei dia war auch noch ein kleiner Fehler, hab ich aber selber hinbekommen. (Nur nochmal für andere User) hier gibt er mir den Fehler aus das ich mehr spalten als einzu targende werte hab, wenn ich ID entferne klappt das einwandfrei.
PHP:
$sql = "INSERT INTO `otb_infologin` (`ID`,
                                         `Benutzer`, 
                                         `Vorname`, 
                                         `Nachname`, 
                                         `Kennwort`, 
                                         `Email`
                                          ) VALUES (
                                         '".mysql_real_escape_string($_POST['coname'])."',
                                         '".mysql_real_escape_string($_POST['vorname'])."',
                                         '".mysql_real_escape_string($_POST['nachname'])."',
                                         '".mysql_real_escape_string(md5 ($_POST['pass']))."',
                                         '".mysql_real_escape_string($_POST['email'])."')";
Gruß aleX
 
moin moin @alexbot ;)

Habe den Fehler noch meinem letzten Post entfernt. ;)

Also nochmal zusammengefasst, was ich an deinem Script geändert habe.

1. $test in $data_query geändert.
2. Die Zeile $data = mysql_fetch_array($data_query); eingefügt, damit das Script aus dem Query ein Array macht.
3. Alle fehlenden ' (Shift + Rautetaste) bei den Arrays eingefügt. Du solltest immer darauf achten, dass dieses Zeichen bei dir Verwendung findet, wenn du in der eckigen Klammer nicht gerade eine Variable (die den Variablennamen, des Arrays bestimmt) oder eine Zahl gestehen hast (welche das Feld des Arrays bestimmt).
PHP:
// Array-Variable deines Scripts
echo $data['id'];

// Beispiel mit der Variable, welches du bei deinem Script noch nicht gebrauchen kannst.
$var_name = 'id';
echo $data[$var_name];

// Beispiel mit der Zahl, aber hier bin ich mir mom nicht ganz sicher, da ich dies nicht so verwende.
echo $data[1];                        /* Müsste das selbe wie $data['id'] sein. Solle die 1, nicht die ID sein, so versuch es mit der 0. */
4. Die Spalten- und Tabellennamenbereiche mit ` (Shift + Apostrophentaste und danach Leerzeichen) eingeklammert, damit die Fehlerquelle, welche bei mir oft entstand, wenn dies nicht so ausführlich geschrieben war, gleich mit beseitigt ist. Weswegen mal der Fehler kommt und mal nicht, kann ich dir leider nicht verraten, da ich es selbst noch nicht raus gefunden habe.
5. Deine 1. IF-Schleife umgestellt, denn diese würde nur neue User eintragen, wenn es deren Usernamen bereits gibt.
6. Die 2. IF-Schleife war danach überflüssig, da dies von der ersten bereits abgedeckt wurde.
 
Zurück