ERLEDIGT
NEIN
NEIN
ANTWORTEN
25
25
ZUGRIFFE
749
749
EMPFEHLEN
-
Hallo zusammen, ich bin ganz neu hier und war noch nie in irgendeinem Forum angemeldet geschweige denn, dass ich Beiträge verfasst hätte. Also bitte nicht gleich schlagen wenn ich hier irgenwelche Anfängerfehler mache !
Zu meinem Problem:
Ich hab mir dieses echt tolle Tutorial von Karl Förster vorgenommen (http://www.tutorials.de/forum/php-tu...-sessions.html) um ein Login System für eine Webseite zu basteln.
Ohne das ich irgendwelche Vorkentnisse von SQL und PHP habe, hab ich's hingekriegt. Echt klasse ! Aber...
Das Tutorial beschränkt sich auf ein Login-System, dass alle erfolgreichen Logins auf eine gemeinsame intern.php weiterleitet. Ich möchte gerne, das jeder User seine "eigene" Seite bekommt.
Folgendes hab ich getan (Bitte das genannte Forum als Referenz nutzen!!):
Erstmal den SQL Befehl erweitert um den Befehl: Ziel VarChar(50) NOT NULL default '',
... anschließend auf dem Server augeführt. Hat funktioniert ! Ich hab also die Tabelle um die Spalte "Ziel" erweitert.
Ich hab's auch geschafft den PHP Code zum erstellen der Benutzer so umzufrickeln, dass das Skript mir die Benutzer angelegt hat mit dem jeweiligen Ziel in der neuen Spalte.
$benutzer[0]["Ziel"] = "seite.php";
Jetzt muss aber noch die login.php umgebaut werden und da hört's bei mir auf !
Ich denke mal ich bin auf einem guten Weg, aber da ich keine Ahnung von der PHP Syntax habe komme ich hier ohne eure Hilfe nicht weiter.
Meine neue login.php sieht bisher folgendermaßen aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "user", "passwort");
if (!mysql_select_db ("database", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, Ziel ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$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["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: index.php?fehler=1");
}
?>
</body>
</html>
Also eigentlich alles beim Alten, bis auf den neuen Eintag , Ziel unter SELECT.
Wie muß ich jetzt weiter vorgehen um die Zielseite aus der Spalte "Ziel" abzurufen ?
Der Schlüssel ist sicher die Zeile
header ("Location: intern.php");
...aber wie muss der Eintrag aussehen ?
Ich habs probiert mit sowas wie
header ("Location: $data["Ziel"]);
...aber das t net ! Ich bedanke mich im Voraus schon einmal bei euch und bin gespannt auf eure Antworten !
-
09.01.10 11:55 #2Cordula Tutorials.de Gastzugang
Ich würde einfach eine Datenbank Abfrage machen, und das Ergebnis dann in die Header funktion schreiben.
Also folgendermaßen:
<?php
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
header ("Location: $data2["Ziel"]);
?>
-
Ey Cordula, hast du nicht gelesen ? Ich hab keinen Plan ! Also bitte nochmal langsam !
Sieht gut aus, aber ich verstehs nicht. An welcher Stelle muss ich das einfügen ?
So in etwa ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "user", "passwort");
if (!mysql_select_db ("database", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, Ziel ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: $data2["Ziel"]);
}
else
{
header ("Location: index.php?fehler=1");
}
?>
</body>
</html>
Ich bin ein wenig verwirrt wegen dem $data2 !
Heisst das ich brauche ne zweite Datenbank ? Nee oder ?
Bitte erklär's nochmal für doofe !
Danke vielmals !
-
09.01.10 12:09 #4Cordula Tutorials.de Gastzugang
Okay kein Problem !
Du benötigst keine 2. Datenbank. Ich habe diese Abfrage $data2 genannt, da in deinem Code ja bereits eine Abfrage mit $data besteht. Da wir jetzt aber eine andere Abfrage als bei $data brauchen, habe ich eine neue Abfrage erstellt, und diese $data2 genannt.
Setz die Abfrage am besten unter den Block "Sessionvariablen registrieren..." also in etwa so:
hier steht noch der restliche Code davor! [...]
...
...
...
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: $data2["Ziel"]);
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
header ("Location: $data2["Ziel"]);
...
...
...
hier jetzt der restliche Code!
[...]
und dann müsste es gehen!
-
09.01.10 12:11 #5Cordula Tutorials.de Gastzugang
Sorry hab nen Fehler gemacht !
hier steht noch der restliche Code davor! [...]
...
...
...
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
header ("Location: $data2["Ziel"]);
}
else
{
header ("Location: index.php?fehler=1");
}
?>
So müsste es jetzt gehen!
-
Hier also nochmal der komplette Code damit es verständlicher ist:
PHP-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "user", "passwort");
if (!mysql_select_db ("database", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, Ziel ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$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["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
header ("Location: $data2['Ziel']");
}
else
{
header ("Location: index.php?fehler=1");
}
?>
</body>
</html>
-
Vielen Dank soweit !
Mein Skrip sieht jetzt so aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "user", "passwort");
if (!mysql_select_db ("database", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, Ziel ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$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["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: $data2["Ziel"]);
$data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' "));
header ("Location: $data2["Ziel"]);
}
else
{
header ("Location: index.php?fehler=1");
}
?>
</body>
</html>
Ich bekomme jetzt folgende Fehlermeldung:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web319/html/bob/login.php on line 41
Irgendwo ist also noch der Wurm drin !
Cordula ! Könntest du noch mal eben ?
Zeile 41 ist übrigens folgende:
header ("Location: $data2["Ziel"]);
Ist die evtl. einfach zuviel ? Da sie ja unten nochmal auftaucht ?
-
Nee, das ist es auch nicht ! Wenn ich Zeile 41 lösche, krieg ich den selben ERROR in Zeile 44, also beim zweiten header ("Location: $data2["Ziel"]);
-
Nee ! Ich hab deinen Code 1:1 übernommen und meine Benutzerdaten eingetragen. Immer noch ERROR !
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web319/html/bob/login.php on line 45
Zeile 45:
header ("Location: $data2['Ziel']");
Ist doch sicher nur noch ne klitzekleine Kleinigkeit. Aber was ?
-
09.01.10 12:45 #10
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Warum verwendet hier eigentlich keiner Code-Tags? Kann doch nicht so schwer sein, auf "PHP" zu klicken und den Code da rein zu pasten...

Außerdem den Frage: Steht in $data2 überhaupt was drinne? Warum wird nirgends mysql_error() verwendet, um evtl. Fehler finden zu können?Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Probier die Zeile mal so aus:
//edit:PHP-Code:header ("Location: ".$data2['Ziel']."");
Du musst die header Funktion in Zeile 41 löschen!Geändert von marvinlol (09.01.10 um 12:57 Uhr)
-
09.01.10 12:56 #12
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Was das gleiche wäre wie
Mal davon abgesehen wäre es echt sinnvoll erstmal zu schauen, ob $data2 und dann ob $data2['Ziel'] überhaupt gesetzt sind:PHP-Code:header( "Location: " . $data2['Ziel'] );
PHP-Code:if (!isset($data2) || !isset($data2['Ziel') )
{
echo "Irgendwas ist schief gelaufen, ich weiß nicht wohin ich soll...";
}
else
{
header( .... );
}
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
-
09.01.10 13:06 #14
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Klar: An die Stelle, wo momentan header ("Location: $data2['Ziel']"); steht. Also diese Zeile weg löschen und anstatt dessen mal das einfügen:
Es geht nichts über eine anständige Fehler-BehandlungPHP-Code:if (!isset($data2) || !isset($data2['Ziel') )
{
echo "Irgendwas ist schief gelaufen, ich weiß nicht wohin ich soll...";
}
else
{
header( "Location: " . $data2['Ziel'] );
}
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Nee Leute, das läuft noch nicht !
Ich bekomm wieder ne Fehlermeldung...
Parse error: syntax error, unexpected ')', expecting ']' in /var/www/web319/html/bob/login.php on line 45
Hab's gemacht wie ihrs mir empfohlen habt:
Code :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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Unbenanntes Dokument</title> </head> <body> <?php // Session starten session_start (); // Datenbankverbindung aufbauen $connectionid = mysql_connect ("localhost", "Benutzer", "passwort"); if (!mysql_select_db ("database", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Nachname, Vorname, Ziel ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname like '".$_REQUEST["name"]."') AND ". "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; $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["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; $data2 = mysql_fetch_array(mysql_query("SELECT * FROM `benutzerdaten` WHERE `Id` = ' ".$_SESSION["user_id"]." ' ")); if (!isset($data2) || !isset($data2['Ziel') ) { echo "Irgendwas ist schief gelaufen, ich weiß nicht wohin ich soll..."; } else { header( "Location: " . $data2['Ziel'] ); } } else { header ("Location: index.php?fehler=1"); } ?> </body> </html>
Zeile 45 ist folgende:
if (!isset($data2) || !isset($data2['Ziel') )
Habt ihr noch ne Idee ?
Ähnliche Themen
-
Login-Skript erweitern
Von Kaeschdin im Forum PHPAntworten: 9Letzter Beitrag: 01.09.08, 09:32 -
[Suche] Login-Skript
Von Miraculixx im Forum PHPAntworten: 3Letzter Beitrag: 11.08.06, 12:57 -
Login-Skript für Flash
Von corona im Forum Flash PlattformAntworten: 3Letzter Beitrag: 29.10.05, 23:55 -
[Login-Skript] Groß-/Kleinschreibung
Von Majuz im Forum PHPAntworten: 5Letzter Beitrag: 25.01.05, 20:08 -
login skript in html
Von zubidiru im Forum HTML & XHTMLAntworten: 6Letzter Beitrag: 22.06.04, 18:13





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren