Syntax ERROR

Sublig

Mitglied
Hey,
ich habe ein kleines Problem und ich weiß nicht was ich genau ändern muss um den Fehler zu beheben. Ich hab schon verschiedene "Lösungen" ausprobiert aber nichts hat funktioniert..

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

require_once('db_config.php');
// Die Datenbankverbindungsdaten einbinden, damit die Funktion "mysql_connect" funktioniert

mysql_connect($host, $user, $pass);
// Öffnet eine Verbindung zu dem MySql-Server

mysql_select_db($dbase);
// Wählt die Datenbank $dbase aus



$sql = "SELECT * FROM `BenutzerDaten` WHERE `Benutzername` = $_REQUEST["username"] &&  `Passwort` = $_REQUEST["password"]";

$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["Benutzername"]; 


  echo "eingeloggt";
} 
else 
{ 
 echo mysql_errno() . ": " . mysql_error() . "\n";
} 
?>

Fehlermeldung:
Code:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /users/sublig/www/Neues Verzeichnis/Login.php on line 16

Mfg
 
Der Fehler ist doch eindeutig. Da sind mitten im String unerwartete Anführungsstriche, die da nicht hin gehören. Du musst den String aus mehreren Strings konkatenieren. Aber davon abgesehen, solltest du niemals die Werte direkt in die Abfrage übernehmen.

PHP:
<?php

$uname = mysql_real_escape_string($_REQUEST['username']);
$upwd = mysql_real_escape_string($_REQUEST['password']);

$sql = "SELECT * FROM `BenutzerDaten` WHERE `Benutzername` = $uname && `Passwort` = $upwd"; 

?>
 
Jetzt kommt folgende Fehlermeldung:
Code:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/sublig/www/Neues Verzeichnis/Login.php on line 23
1054: Unknown column 'test12345' in 'where clause'

test12345 ist in dem Fall einfach der Benutzername.

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

require_once('db_config.php');
// Die Datenbankverbindungsdaten einbinden, damit die Funktion "mysql_connect" funktioniert

mysql_connect($host, $user, $pass);
// Öffnet eine Verbindung zu dem MySql-Server

mysql_select_db($dbase);
// Wählt die Datenbank $dbase aus



$uname = mysql_real_escape_string($_REQUEST['username']);
$upwd = mysql_real_escape_string($_REQUEST['password']);

$sql = "SELECT * FROM `BenutzerDaten` WHERE `Benutzername` = $uname && `Passwort` = $upwd";

$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["Benutzername"]; 


  echo "eingelogt";
} 
else 
{ 
 echo mysql_errno() . ": " . mysql_error() . "\n";
} 
?>

Ich hab es auch schon mit
PHP:
$sql = "SELECT * FROM `BenutzerDaten` WHERE `Benutzername` == $uname && `Passwort` == $upwd";
probiert, weil man ja mit == vergleicht.

Aber dann kommt immer diese Fehlermeldung:
Code:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/sublig/www/Neues Verzeichnis/Login.php on line 23
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== test12345 && `Passwort` == 12345678' at line 1
 
Ich habe die einfachen Anführungsstriche vergessen.

PHP:
<?php
$sql = "SELECT * FROM `BenutzerDaten` WHERE `Benutzername` = '$uname' && `Passwort` = '$upwd'";
?>

Und in SQL ist "=" zum Vergleichen und ":=" zum Zuweisen.
 
Es fehlt der Verbindungs-Handler ...
Außerdem fehlt das close am Ende.

PHP:
$handle=mysql_connect(host, user, pass);
mysql_close($handle);
 
Zurück