Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » login skript! Antworten
login skript!

urban-a
Feiertags-Poster


Beiträge: 28


hallo!

habe ein log in skript aber das spuckt folgende fehlermeldung aus:

Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/blabla/quiz/login.php on line 10

das ist das skript:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25:
<?PHP
session_start();
if ($_SESSION["authenticated"]==1)
{
$verbindung = mysql_connect("localhost","bn","pw"); 
mysql_select_db("name"); 
$query="Select * from quiz_user='".$_POST["mail"]."' and passwort='".$_POST["passwort"]."'; 
$result=mysql_query($query, $verbindung);
$row=mysql_fetch_array($result);
if($row["id"])
$_SESSION("authenticated")=2;
else "Username or Password incorrect";
}
if ($_SESSION["authenticated"]==0)
{
echo "Session doesn’t exist. Maybe has expired";
}
if ($_SESSION["authenticated"]==2)
{
header("Location:geheim.htm");

}
echo mysql_Error();
?>


könnt ihr mir sagen wo mein fehler ist?!

Diese Nachricht wurde geändert von: urban-a
  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


In der Zeile mit der SQL-Query fehlt ein " am Ende. Außerdem ist bei der if/else ohne {} ein ; zuviel. Der Session-Wert wird nie auf 1 gesetzt - damit auch nie das Login ausgeführt.

Da die Eingaben aus dem Formular weder geprüft escapt werden, ist das Script für SQL-Injection anfällig.

Fehlende Quotes erkennt man sehr gut, wenn man einen Editor mit Syntaxhiglighting nutzt.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

urban-a
Feiertags-Poster


Beiträge: 28


ok danke erstmals für die schnelle antwort!

das " fehlt aber nach dem ; oder?

weiters bei der if/else ohne den klammer wo ist genau ist das ; zuviel nach der session oder nach dem else?

das wollt ich eh fragen was genau ist eine sql injection?

und wo sollte ich das - mysql_escape_string() - einbauen?

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Als SQL-Injection bezeichnet man Möglichkeit Formularwerte zu senden, welche den SQL-Befehl in ungewollter Weise abändern. Bei dir könnte ich zB als mail zB admin' or quiz_user = ' schicken.

Logischerwise fehlt das " vor dem ;.

Zu if und mysql_escape_string lies bitte das Manual.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

urban-a
Feiertags-Poster


Beiträge: 28


ja aber woher weißt du meine spalten bezeichnung?

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Muss ich nicht unbedingt - es war ein Beispiel. Genausogut könnte ich admin' or '1 schicken.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

urban-a
Feiertags-Poster


Beiträge: 28


und dann passiert was?

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Nochmal deutlicher: Der Surfer kann das SQL manipulieren und sich dadurch zB ohne Passwort anmelden, Daten verändern auf die er keinen Zugriff haben sollte, ...

---
Weaverslave

Diese Nachricht wurde geändert von: subjective
  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben