Login aus Tutorials

Hallo,

ich habe leider nur meine 1und1 Datenbank, also ich kann nicht direkt drauf zugreifen.

MySQL.5.0 Das Kennwort steht in der DB als md5.

Kann das mit meinen Variablen, die ich beim login benutze zusammenhängen.
Habe alle gleich benannt
 
Oder liegt das an den SESSION Variablen

PHP:
<?php  
// Session starten 
session_start (); 

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("*", "*", "*");  
if (!mysql_select_db ("*", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

$sql = "SELECT ".  
    "Id, nickname, nachname, vorname ".  
  "FROM ".  
    "benutzerdaten ".  
  "WHERE ".  
    "(nickname like '".$_REQUEST["nickname"]."') AND ".  
    "(kennwort = '".md5 ($_REQUEST["kennwort"])."')";  
$result = mysql_query ($sql);  

if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_Id"] = $data["Id"];  
  $_SESSION["user_nickname"] = $data["nickname"];  
  $_SESSION["user_nachname"] = $data["nachname"];  
  $_SESSION["user_vorname"] = $data["vorname"];  

  header ("Location: intern.php");  
}  
else  
{  
 header ("Location: formular.php?fehler=1");  
}  
?>

Ich nutze ja hier nur 4 von 12 Feldern der DB
 
Hallo,

ich habe leider nur meine 1und1 Datenbank, also ich kann nicht direkt drauf zugreifen.

MySQL.5.0 Das Kennwort steht in der DB als md5.

Kann das mit meinen Variablen, die ich beim login benutze zusammenhängen.
Habe alle gleich benannt

Okay - (md5 in DB) woher weist du das, wenn du nicht drauf zugreifen kannst? - poste mal den fertigen SQL-String!

Dirk
 
OK also ich kann mit phpmyadmin zugreifen.

Und da steht folgendes:

im kennwortfeld: 098f6bcd4621d373cade4e832627b4f6

Viele Grüsse
 
Na - das ist doch ein Anfang, dann fang den sql-string mit
echo $sql;

vor dem

$result = mysql_query ($sql);

ab. Da kommen dann zwar weiter Fehlermeldungen aber das ist erst mal egal - dann teste den sql String direkt mittels phpmyadmin - und dann kannste analysieren, warum der dir keine Ergebniszeile ausgibt ..

Okay

Dirk
 
Oh Mann ich werd verrückt. Es klappt. Hatte einen Schreibfehler in Sessions gehabt. Jetzt klappt es.

Jetzt habe ich noch eine Frage. Es soll ja den Nicknamen nicht 2 mal geben. Muss ich die Struktur der Datenbank da anpassen. Und wie bekomme ich das im meinem Register Formular eingebunden. Das der User eine Onfo erhält, dass der Name bereeits vergeben ist.


1000 Dank im Vorraus
 
Zuletzt bearbeitet:
DU mußt vorab abfragen ob der Benutzername bereits in der DB ist. Dann mußt du deine DB-Struktur nicht anpassen. Frag einfach vorher mit einen einfachen SELECT ob der Name schon existiert je nachdem was zurüchgegeben wird mußt due dann weitermachen.
 
Super,

habs gelöst:

PHP:
$checkname = ("SELECT nickname from benutzerdaten WHERE name='$nickname'");  
$query = mysql_query($checkname); 
if ($checkname) { echo '<b>Registrierung fehlgeschlagen. Name bereits vorhanden.</b><br><a href=javascript:history.back()>zurück</a><br><br>'; } 
else {

Vielen dank an alle!!
 
Hallo nochmal,

also so ganz fertig bin ich noch nicht.
Jetzt meckert er alles an.
Also bei jedem Eintrag wird die Fehlermeldung ausgegeben!

Was ist noch an den Zeilen falsch?

vielen Dank nochmal
 
Hallo nochmal,

also so ganz fertig bin ich noch nicht.
Jetzt meckert er alles an.
Also bei jedem Eintrag wird die Fehlermeldung ausgegeben!

Was ist noch an den Zeilen falsch?

vielen Dank nochmal
Hallo,
probier's mal so:
PHP:
$checkname = 'SELECT `nickname` FROM `benutzerdaten` WHERE `name` = "'.mysql_real_escape_string($nickname).'"';
$query = mysql_query($checkname) or die(mysql_error()); 
if (mysql_num_rows($query) > 0) {
    echo '<b>Registrierung fehlgeschlagen. Name bereits vorhanden.</b><br><a href=javascript:history.back()>zurück</a><br><br>';
} else {
    // mach was
}

mfg
forsterm
 
Zurück