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

PHP Syntax Check: Parse error: syntax error, unexpected T_STRING

elfabz

Neues Mitglied
Guten Abend,
Ich habe folgendes Problem und zwar hab ich ein Code geschrieben um meine Datenbank einträge anzeigen zulassen.
Mir wird gesagt wenn ich den Code überprüfen lasse: PHP Syntax Check: Parse error: syntax error, unexpected T_STRING in your code on line 16
Ich weiß nicht was ich damit anfangen soll....

PHP:
<?phpsession_start();include_once('val_login.php');$_SESSION['u_name'];?>
<?php$sql = "SELECT                id,                frage,                date,				status		u_name            FROM                grafixx_poll	    WHERE status = "aktiv" AND u_name = "$u_name"            ORDER BY                date DESC                Limit 10";?>$result = mysql_query($sql) or die("Fehler");
<table cellpadding="1" cellspacing="1" border="1"><tr><td>id</td><td>Frage</td><td>Datum</td><td>Status</td><td>User</td></tr>
<?PHPwhile ($row = mysql_fetch_array($result)) {	?>
<tr><td style="font-weight: bold; text-align: center"><?=$row['id']?></td><td><?=$row['frage']?></td><td><?=$row['date']?></td><td><?=$row['status']?></td><td><?=$row['User']?></td></tr>
	<?PHP}?>

</table>
 
Werbung:
1. Die Fehlermeldung sagt doch schon alles aus. Dein Fehler liegt im fehlenden Escaping!


Falsch:
PHP:
$sql = "SELECT id, frage, date, status u_name         FROM grafixx_poll         WHERE status = "aktiv" AND u_name = "$u_name"         ORDER BY date DESC Limit 10";


Richtig:
PHP:
$sql = "SELECT id, frage, date, status, u_name
         FROM grafixx_poll
         WHERE status = 'aktiv' AND u_name = '".$u_name."'
         ORDER BY date DESC Limit 10";

2. Desweiteren solltest du deinen Code auch mal mit Einrückungen versehen, damit er sauberer zu lesen ist!
3. Gefahr von SQL-Injections!

Statt:
PHP:
$sql = "SELECT id, frage, date, status, u_name
        FROM grafixx_poll
        WHERE status = 'aktiv' AND u_name = '".$u_name."'
        ORDER BY date DESC Limit 10";

Lieber:
PHP:
$sql = "SELECT id, frage, date, status, u_name
        FROM grafixx_poll
        WHERE status = 'aktiv' AND u_name = '".mysql_real_escape_string($u_name)."'
        ORDER BY date DESC Limit 10";
 
Danke das hat schonmal geklappt :)
Jetzt sagt er aber
$result = mysql_query($sql) or die("Fehler");
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /users/itg-gbe/www/3/xDD.php on line 27

Tut mir leid, aber ich bin ein blutiger anfänger :s
 
Werbung:
Wenn er das sagt konnte er für deine Abfrage kein Ergebnis finden. Auf gut deutsch: Schau mal ob du die Namen von den Tabellen bzw. Feldern richtig geschrieben hast und gib dir vielleicht den SQL-String aus um zu sehen, was eigentlich an die DB übertragen wird, bzw. poste ihn hier dann kann man dir vlt besser helfen :)
 
Werbung:
Werbung:
Ich wieder hole mich ja gerne :(

PHP:
$result = mysql_query($sql) 
   or die("MySQL-Fehler: " . mysql_error());

 
und das gibt er mir aus :(
$result = mysql_query($sql) or die("MySQL-Fehler: " . mysql_error());

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /users/itg-gbe/www/3/xDD.php on line 28
 
Hiernochmal der Code
PHP:
<?phpsession_start();include_once('val_login.php');include_once('config.inc.php');include_once('connect.inc.php');$_SESSION['u_name'];?>
<?php$sql = "SELECT id, frage, date, status, u_name        FROM grafixx_poll        WHERE status = 'aktiv' AND u_name = '".mysql_real_escape_string($u_name)."'        ORDER BY date DESC Limit 10";?>$result = mysql_query($sql)   or die("MySQL-Fehler: " . mysql_error());
<table cellpadding="1" cellspacing="1" border="1"><tr><td>id</td><td>Frage</td><td>Datum</td><td>Status</td><td>User</td></tr>
<?PHPwhile ($row = mysql_fetch_array($result)) {		?>
<tr><td style="font-weight: bold; text-align: center"><?=$row['id']?></td><td><?=$row['frage']?></td><td><?=$row['date']?></td><td><?=$row['status']?></td><td><?=$row['User']?></td></tr>
	<?PHP}?>
</table>

und in dem teil soll etwas falsch sein
while ($row = mysql_fetch_array($result))
 
Werbung:
Ich weiß ja nicht, was du da machst, aber diese Buchstabenwüste zerpflücke ich nicht. Wechsel mal deinen Editor.
 
Werbung:
Mir egal, aber wenn die Zeilenumbrüche hier zerdroschen werden, kann man das nicht mehr lesen. Ich selber nutze den Notepad++
 
Wenn man den Müll mal richtig formatiert, kann einem sogar etwas auffallen:
 
Werbung:
Mal genau hinsehen:
PHP:
<?php
  session_start();
  include_once('val_login.php');
  include_once('config.inc.php');
  include_once('connect.inc.php');
  $_SESSION['u_name'];  // Was soll das hier werden????
?>
<?php
   // Wo kommt hier $uname her???
   $sql = "SELECT 
              id, 
              frage, 
              date, 
              status, 
              u_name        
            FROM 
              grafixx_poll        
            WHERE 
              status = 'aktiv' 
             AND 
              u_name = '" . mysql_real_escape_string($u_name) . "'
            ORDER BY 
              date DESC Limit 10";
              
   // Ich glaube kaum, dass hier der PHP-Teil beendet werden soll
?>
$result = mysql_query($sql)   
  or die("MySQL-Fehler: " . mysql_error());
<table cellpadding="1" cellspacing="1" border="1">
  <tr>
   <td>id</td>
   <td>Frage</td>
   <td>Datum</td>
   <td>Status</td>
   <td>User</td>
 </tr>
<?PHP
  while ($row = mysql_fetch_array($result)) 
  { 
?>
  <tr>
    <td style="font-weight: bold; text-align: center">
      <?php echo $row['id']; ?>
    </td>
    <td>
      <?php echo $row['frage']; ?>
    </td>
    <td>
      <?php echo $row['date']; ?>
    </td>
    <td>
      <?php echo $row['status']; ?>
    </td>
    <td>
      <?php echo $row['User']; ?>
    </td>
  </tr>
<?PHP
  }
?>
</table>
 
Wenn man sich einloggt wird der username in einer Session gespeichert das passiert in der val_login.php
kann ich den dann nicht einfach hie aufrufen?
 
Zurück
Oben