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

Name und USerID vergleichen

djfabi

Mitglied
Hallo,

ich muss nochmal fragen:

Ich hab in eine Session den USERID wert reingeschrieben, der in der DB automatisch auto_increment hat.

Also hat die Session zum Beispiel den Wert: 13590 oder so :D

Also jz will ich es so, das Der COde eine Verbindung zur DB aufbaut, und dann den WErt aus der Session liest, ihn vergleicht mit der DB und dann den Vornamen und den Nachnamen ausgibt... Ich hab mich da schonmal versucht, bekomme es abre nicht hin:

PHP:
<?phpsession_start();?>

<?php
/* Kontrolle, ob innerhalb der Session */   if (!isset($_SESSION["userid"]))   {      echo "<p>Da ist wohl etwas schief gelaufen. Versuche es nocheinmal !</p>";      echo "<p><a href='index.php'>Zum Login</a></p>";      echo "</body></html>";      exit;   }  else {    $verbindung = mysql_connect("localhost", "root" , "") or die("Verbindung zur Datenbank konnte nicht hergestellt werden");    mysql_select_db("test1") or die ("Datenbank konnte nicht ausgewählt werden");    $useridre = $_SESSION['userid'];    $abfrage = "SELECT vorname, nachname FROM user WHERE userid LIKE '$useridre' LIMIT 1";   $ergebnis = mysql_query($abfrage);    $row = mysql_fetch_object($ergebnis);    $string = str_replace($row)    echo "Eingeloggt als: ". $string;    echo "<br /> <a href=\"index.php\">Logout</a>";  }

?>


Bitte helft mir

Danke im Vorraus :)
 
Ich kann auf anhieb folgende Fehler in deinem Code entdecken.

PHP:
$abfrage = "SELECT vorname, nachname FROM user WHERE userid LIKE '$useridre' LIMIT 1";

3 Probleme hier:
a) Du machst einen Integer-Vergleich, also brauchst Du nicht das für diesen Fall unperformante LIKE als Vergleich sondern ein =
b) Du sicherst $useridre gar nicht ab. Dazu solltest Du mysql_escape_string() mit verwenden.
c) Die Limitierung ist hier unnötig, wenn Du ein eineindeutige ID suchst.
Also:
PHP:
$abfrage = "SELECT vorname, nachname FROM user WHERE userid = '".mysql_escape_string($useridre)."'";

PHP:
$row = mysql_fetch_object($ergebnis);

Hier liest Du das Ergebnis des Statements als Objekt aus. Und gleich danach

PHP:
$string = str_replace($row)

ignorierst Du, dass es sich um ein Objekt handelt, wendest str_replace() zudem falsch an und hast auch noch ein ; vergessen.

Richtig sähe dieser Abschnitt so aus:

PHP:
$string = htmlspecialchars($row->vorname." ".$row->nachname);
 
DANKE threadi

Es funktioniert, an das htmlspecialchars hatte ich garnicht gedacht *grübel*grübel*

Und das ";" hab ich auch vergessen, das passiert mir in letzter Zeit leider öfter ... :/

Naja trotzdem Danke
 
Zurück
Oben