2016-04-11 16 views
0

Ich habe das Gefühl, dass ich einen Syntaxfehler meinerseits gemacht habe. Gibt es noch etwas anderes als einen Syntaxfehler oder das Vergessen, eine Variable zu definieren, die das verursachen würde?PDO/PHP Nicht definierte Variablen

Hinweis: Ich erhalte jetzt einen Fehler, der besagt, dass es ein erwartet; auf der Linie, die enthält if ($query->execute(array($user_name))) {

if (isset($_GET['username'])){ 
     $user_name = $_GET['user_name']; 
     $dbh = connectDb(); 
     $query = $dbh->prepare("SELECT * FROM users WHERE user_name = ?"); 
     if ($query->execute(array($user_name))) { 
      while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 
       $email = $row['user_email']; 
       $admin = $row['user_access_level']; 
       $dbusername = $row['user_name']; 
      } 
     } 
     if ($user_name != $dbusername) { 
      echo "There has been a fatal error. Please try again."; 
     } 
    } else echo "you need to specify a username!"; 
?> 
    <center><h2><?php echo $dbusername; ?>'s Profile</h2><br /></center> 
    <table width="350" border="3" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000"> 
     <tr><td>Username:</td><td><?php echo $user_name; ?></td></tr> 
     <tr><td>User Level:</td><td><?php echo $userlvl; ?></td></tr> 
     <tr><td>Email:</td><td><?php echo $email; ?></td></tr> 
    </table> 
+0

Nur ein kleiner Hinweis, es sei denn, Sie 'query' Methode in Ihrem Datenbank-Code bereinigt Strings vor dem Ausführen einer Abfrage, Ihre Website ist anfällig für SQL-Injektionen. –

+0

'$ dbh-> query (" SELECT * FROM Benutzer WHERE user_name = $ user_name ", PDO :: FETCH_ASSOC)' gibt Ihnen eine Instanz von PDOStatement, kein Array. Siehe http://php.net/manual/en/pdo.query.php – Tekay37

Antwort

1

Versuchen Sie dies;)

Dies ist ein kleiner Tippfehler Problem:

if (isset($_GET['username'])){ 
    $user_name = $_GET['username']; /* here you are using user_name it should be username or both should be user_name */ 
0
$query = $dbh->prepare("SELECT * FROM users WHERE user_name = ?"); 
if ($query->execute(array($user_name))) { 
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 
     $email = $row['user_email']; 
    } 
} 

Sie sind für so etwas suchen. Bitte beachten Sie, ich auf meinem iPhone habe, so dass es zu Code schwer, haha ​​

+0

@CyberizedNinja Ich kann nicht sehen, wo oder warum es ein erfordern würde; auf dieser Linie. Überprüfen Sie Ihren Code in Ihrer Datei und überprüfen Sie, ob alles gut aussieht. Möglicherweise haben Sie versehentlich einen Schlüssel gedrückt, bevor Sie den Server gespeichert oder hochgeladen haben –

Verwandte Themen