if verschachteln?
olli
- php
hallo, ich habe ein login tutorial benutzt und es an meine zwecke angepasst. ( bin leider nicht der guru ;) )
so sieht ein teil davon aus:
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"];
header ("Location: intern.php");
}
else
{
header ("Location: form_login.php?fehler=1");
}
mir geht es um den letzten teil, wenn der benutzer sich erfolgreich eingeloggt hat, soll er in dem fall auf die intern.php, soweit klar, wenn aber eine bestimmte variable mit JA gefüllt ist ( steht in der DB ) soll er vorher noch auf eine andere seite, auf welcher erklärungen stehen, und dort erst nach bestätigung auf die intern.php
nun habe ich mir einiges über if und else und elseif durchgelesen, und bin völlig verwirrt. könnte mir evtl. einer von euch nen tipp geben?
danke olli
Hallo olli,
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"];
// Wenn 'mein_ja_nein_feld' 'JA' enthaelt
if ($data['mein_ja_nein_feld'] == 'JA') {
// Zur Zwischenschaltseite
// Du solltest den absoluten URI verwenden, siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
header('Location: ' . $_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
} else {
header ("Location: intern.php");
}
}
else
{
header ("Location: form_login.php?fehler=1");
}
Beste Gruesse
Jan
Hallo nochmal,
sorry, da fehlt das Protokoll:
header('Location: ' . $_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
Beste Gruesse
Jan
Hallo olli,
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"];// Wenn 'mein_ja_nein_feld' 'JA' enthaelt
if ($data['mein_ja_nein_feld'] == 'JA') {// Zur Zwischenschaltseite
// Du solltest den absoluten URI verwenden, siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
header('Location: ' . $_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');} else {
header ("Location: intern.php");
}
}
else
{
header ("Location: form_login.php?fehler=1");
}Beste Gruesse
Jan
hallo vielen dank für deine antwort.
ich habe es jetzt mal in kurzform reingebracht. so wie ich es gemacht habe funktioniert es leider nicht
if ($data['user'] == 'ja') {
// Zur Zwischenschaltseite
header("Location: erklärung.php");
} else {
header ("Location: intern.php");
}
}
else
{
header ("Location: form_login.php?fehler=1");
}
habe deinen hinweis auf
$_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
nicht verstanden. wo nehme ich denn $_server etc her?
auf jedenfall lande ich immer noch auf der intern.php
trotzdem danke, bisher
Hallo olli,
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"];// Wenn 'mein_ja_nein_feld' 'JA' enthaelt
if ($data['mein_ja_nein_feld'] == 'JA') {// Zur Zwischenschaltseite
// Du solltest den absoluten URI verwenden, siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
header('Location: ' . $_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');} else {
header ("Location: intern.php");
}
}
else
{
header ("Location: form_login.php?fehler=1");
}Beste Gruesse
Jan
hallo vielen dank für deine antwort.
ich habe es jetzt mal in kurzform reingebracht. so wie ich es gemacht habe funktioniert es leider nicht
if ($data['user'] == 'ja') {
// Zur Zwischenschaltseite
header("Location: erklärung.php");} else {
header ("Location: intern.php");
}}
else
{
header ("Location: form_login.php?fehler=1");
}habe deinen hinweis auf
$_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
nicht verstanden. wo nehme ich denn $_server etc her?auf jedenfall lande ich immer noch auf der intern.php
trotzdem danke, bisher
ach ich dussel ;) habs
hier lag der fehler
if ($data['user'] == 'ja')
das feld heißt neu und nicht user ;)
danke
hi,
ach ich dussel ;)
über dieser aussage ein fullquote zu bringen, bestätigt diese zwar sehr schön ;-), ist aber trotzdem nicht erwünscht.
sieh dir diesbezüglich bitte mal </faq/#Q-09a> an.
gruss,
wahsaga
Hallo olli,
ich habe es jetzt mal in kurzform reingebracht. so wie ich es gemacht habe funktioniert es leider nicht
Du musst zwischen Gross- und Kleinschreibung unterscheiden.
Was in der Datenbank grossgeschrieben ist (JA) muss auch mit einer grossgeschriebenen Zeichenkette verglichen werden. Besser noch: Du wandelst das Datenbankergebnis erst in Kleinschreibung um (http://www.php.net/strtolower).
if ($data['user'] == 'ja') {
if (strtolower($data['user']) == 'ja') {
Und bitte vermeide Umlaute in URLs (http://www.faqs.org/rfcs/rfc1738.html
header("Location: erklärung.php");
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/erkl%E4rung.php'); // besser: Datei umbenennen
habe deinen hinweis auf
$_SERVER['HTTP_HOST'] . '/zwischenschalteseite.php');
nicht verstanden. wo nehme ich denn $_server etc her?
$_SERVER ist ein superglobaler Array (http://www.php.net/variables.predefined) und seit PHP 4.1.0 automatisch verfuegbar.
Beste Gruesse
Jan