Warum klappt dieser Code nit

chelzyfire

Mitglied
Also..Ich habe folgenden Code:

PHP:
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["Nickname"];
  $_SESSION["user_nachname"] = $data["Nachname"];
  $_SESSION["user_vorname"] = $data["Vorname"];
  $_SESSION["user_Anzahl_Logins"] = $data["Anzahl_Logins"];

  $user = $_SESSION["user_id"];
  $update = "UPDATE ".
    "benutzerdaten ".
  "SET ".
    "Anzahl_Logins = Anzahl_Logins +1 ".
  "WHERE ".
    "'".$user."'";

  mysql_query ($update);
  
}
elseif ($data["Id"] == 1)
{
  echo 'Hallo Admin'
  header ("Location: intern_admin.php");

}
elseif ($data["Id"] > 1)
{
   echo 'Hallo user'
   header ("Location: intern.php");


}else{

  header ("Location: index.php?fehler=1");

}
?>

Er ist teil eines Logins (also der Teil, der überprüft, ob die angaben korrekt sind). Generell funktioniert es, denn wenn ich falsch daten eingebe, dann komme ich auf die Fehler seite. Jedoch wenn ich richtige Angaben eingebe, dann sollte ja eigentlich überprüft werden, ob die Id = 1 ist. Wenn dies der Fall ist, soll er mich zu intern_admin weiterleiten (erstes elseif). Falls die Id > 1 ist, dann soll er zu intern.php weiterleiten (zweites elseif). Jedoch funktioniert das nicht. Immer wenn ich die richtigen Daten eingebe bekomme ich eine Weiße seite geboten (welche in der url diese .php Datei ist). D.h. für mich, dass ich irgendwas mit den elseif falsch gemacht habe...Aber was

Plz help

MfG
chelzyfire
 
Das elseif ist ganz klar falsch angewendet worden. elseif ist nichts anderes als else mit einer erneuten Abfrage.
Dein Code sollte eigentlich so aussehen:
PHP:
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["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 
  $_SESSION["user_Anzahl_Logins"] = $data["Anzahl_Logins"]; 

  $user = $_SESSION["user_id"]; 
  $update = "UPDATE ". 
    "benutzerdaten ". 
  "SET ". 
    "Anzahl_Logins = Anzahl_Logins +1 ". 
  "WHERE ". 
    "'".$user."'"; 

  mysql_query ($update); 
  if ($data["Id"] == 1) 
  { 
     echo 'Hallo Admin' 
     header ("Location: intern_admin.php"); 
  }
  elseif ($data["Id"] > 1) 
  { 
     echo 'Hallo user' 
     header ("Location: intern.php"); 
  }
}
else{ 

  header ("Location: index.php?fehler=1"); 

} 
?>
 
hmm....Dann bekomme ich nur leider den Fehler:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in ... on line 52


Line 52 ist folgendes:

PHP:
if ($data["Id"] == 1)
{
  echo 'Hallo Admin'
  header ("Location: intern_admin.php"); //line 52
} elseif ($data["Id"] > 1)
{
   echo 'Hallo user'
   header ("Location: intern.php");
}
}
else{

  header ("Location: index.php?fehler=1");

}
?>
 
Hi

bin zwar noch nicht lange bei php dabei, aber musst du nicht hinter

echo = 'hallo Admin'

ein Semikolon setzen (bin mir nicht ganz sicher vielleicht gibt es ja auch noch andere Schreibweisen)

LG
Trinyty
 
mich würde es nun wunder wenn laut quellcode die weiterleitung per header funktionieren würde... weil dann ja schon ein header gesendet wurde -.-
 
Nabend ich mag mich täuschen, aber fehlt hier nicht was?
PHP:
$update = "UPDATE ".
    "benutzerdaten ".
  "SET ".
    "Anzahl_Logins = Anzahl_Logins +1 ".
  "WHERE ".
    "'".$user."'";
Müsste bei dem WHERE nicht stehen welche Zeile geändert werden soll? Also
PHP:
..WHERE  "'".$user."'" = .....";

btw.: folgendes ist übersichtlicher
PHP:
$update = "UPDATE";
$update.= "benutzerdaten";
$update.= "SET";
$update.= "Anzahl_Logins = Anzahl_Logins +1 ";
$update.=  "WHERE ";
$update.= "'".$user."'";

Mathias
 
Zuletzt bearbeitet:
Zurück