[PHP & MySQL] Weiterleiten auf verschiedene Seiten

Jamaika
Hallöchen,

Ich würde gerne jeden Nutzer auf eine individuelle Seite weiterleiten, nachdem er sich eingeloggt hat.
Also Nutzer A wird auf die Seite A weitergeleitet.
Nutzer B auf Seite B, usw.
Ist das möglich?? Und wenn ja, wie??

Trotzdem sollen aber alle Nutzer (A, B, C,...) die Seiten X, Y, Z sehen dürfen.

Ich hab schon überall geschaut, aber noch nichts brauchbares gefunden.
Den Login habe ich nach diesem Tut erstellt (minimal verändert) und der funktioniert auch ganz prima. Klick

Ich hoffe, mein Problem ist klar geworden und ihr könnt mir irgendwie helfen.
callous.
Das lässt sich genauso wie z. B. die Steckbriefe (Tut) lösen Augenzwinkern
Jamaika
@ Black Tear

Hab mir das jetzt so gedacht, dass man sich einloggt und dann da nicht nur steht "Hallo Du" sondern auch ein Link, wo jeder dann sein individuelles Profil hat. (später vllt. auch noch seine Pferde sieht & direkt pflegen kann)

@ fabbily

Hab damit jetzt schonmal etwas rumprobiert.. Aber irgendwie klappt es noch nicht so ganz...
Hier mal der Code von der Seite auf die man weitergeleitet wird wenn man sich erfolgreich eingeloggt hat (intern.php)...:

Fehler in Zeile 25 sagt er mir immer...

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:
<?php 
include ("checkuser.php"); 
?> 

<html> 

<head> 
  <title>[Braeside Stables]</title> 
<link rel="stylesheet" type="text/css" href="look.css">
</head> 

<body> 

<span class="text">

Herzlich Willkommen <b><?php echo $_SESSION["user_nickname"]; ?></b>!<br><br>

  <a href="logout.php"><img src="../Grafiken/logout.bmp" border="0"></a> 

<?php
// Hiermit wird der Wert geholt, der über die URL übergeben wurde. Dieser wird nun für die Abfrage genutzt.
// Somit werden nur genau die Daten abgefragt, die diese ID haben
$id = "$_GET[id]";

$Ergebnis = mysql_query( "SELECT * FROM benutzerdaten where ID='$id'" );
if (@mysql_num_rows($Ergebnis) == 0) {
echo "Dieses Pferd existiert nicht!";
}

else {
$Data = mysql_fetch_array( $Ergebnis );

//Anzeige der Links (Wenn du den Chara auf mehrere Seiten verteilst
//Hier die Angabe der Daten vom Pferd. Es kann wieder HTML verwendet werden ganz normal eben (; Nur an der Stelle wo die Daten sein sollen schreibt ihr $Data[Spaltenname] hin
echo "<a href="Pferd.php?id=$id">Dein Profil</a>
";
}
?>

</body> 

</html>
Jamaika
Mhmm... Funktioniert irgendwie nicht...

Hier mal die Fehlermeldungen

Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /users/braeside-stables/www/filemanager/Gestuet/intern.php on line 25

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /users/braeside-stables/www/filemanager/Gestuet/intern.php on line 25
Dieses Pferd existiert nicht!

Und wenn ich da jetzt aber in der Datei als ID = 1 mache, dann ist es ja immer 1 und nicht beim Nutzer 2 die 2.. . oder ?
callous.
Das "Datenbankzeugs" fehlt.
Also das, wo dann Name der Datenbank, Passwort usw. drin stehen großes Grinsen

Ich weiß, mein Erklärungskünste sind die besten. Der Begriff fällt mir leider nicht mehr ein unglücklich
callous.
Das "Datenbankzeugs" fehlt.
Also das, wo dann Name der Datenbank, Passwort usw. drin stehen großes Grinsen

Ich weiß, mein Erklärungskünste sind die besten. Der Begriff fällt mir leider nicht mehr ein unglücklich
callous.
Zitat:
Original von BlackTear
Zitat:
Original von fabbily
Das "Datenbankzeugs" fehlt.
Also das, wo dann Name der Datenbank, Passwort usw. drin stehen großes Grinsen

Ich weiß, mein Erklärungskünste sind die besten. Der Begriff fällt mir leider nicht mehr ein unglücklich


Die Datenbankverbindung fehlt Augenzwinkern


Jetzt sollte ich mich aber wirklich schämen großes Grinsen
(oder mir in den Ferien mal Schlaf gönnen^^)
Jamaika
Ahh! Gut!! Dachte der greift immernoch auf die db zu, weil er das ja im login.php schon tut. Aber jetzt gehts.

Also wenn ich jetzt id=1 mache, dann gibt er auch den Link aus.
Nur was macht der User mit der id 2 jetzt...? weil das stimmt ja dann nicht mehr...

Ach und bei dem Link muss ich jetzt bestimmt auch die id = 1 machen oder..?
Da stellt sich gleich noch ne Frage; das ist ja bei dem Steckbrief eine php-Datei wo einfach die Daten immer ausgelesen werden.. Ich hätte es aber lieber in einer einfachen .htm-Datei oder geht das nicht?
Jamaika
Mhmm... Es will einfach nicht...

Also ich bin nicht so der MySQL-Profi, aber wäre es möglich, in der Datenbank ein drittes Feld anzulegen (z.B. Profil) und dann jedem Nutzer einen Pfad zu seinem Profil darin speichert. Weiß halt nicht ob man die ganz normal (bsp. "../Nutzer/index.html" o.ä.) dort angeben kann und dann nachher auch wieder ausgeben kann, wie mit dem Namen?

code:
1:
Herzlich Willkommen <b><?php echo $_SESSION["user_nickname"]; ?></b>!
callous.
Ich würds etwa so machen:

php:
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:
<?php 
include ("checkuser.php"); 
?> 

<html> 

<head> 
  <title>[Braeside Stables]</title> 
<link rel="stylesheet" type="text/css" href="look.css">
</head> 

<body> 

<span class="text">

<?php
include("db.php"); // wie du es eben genannt hast

$Ergebnis mysql_query"SELECT * FROM benutzerdaten where user_nickname='$user_nickname'" );
if (@mysql_num_rows($Ergebnis) == 0) {
echo "Fehler!";
}

else {
$Data mysql_fetch_array$Ergebnis );

echo 'Herzlich Willkommen, ' $user_nickname '!<br><br>

<a href="logout.php"><img src="../Grafiken/logout.bmp" border="0"></a>';
}
?>

</body> 

</html>
Remember
Habe in etwa das gleiche Problem. Ich möchte jedem Mitglied seine Turnierpferde anzeigen lassen. Aber irgendwie ... versteh ich leider nicht, was ihr gerade gesagt habt (bin leider noch nicht so gut in PHP und dem Zeug Augen rollen )


Zitat:
Die ID muss natürlich variabel übergeben werden.
Daher schreib wieder "WHERE ID = '$id'" hin, füll die Variable "$id" aber.
Also lass dir die Daten des Users beim Login ausgeben "SELECT * FROM mitglieder WHERE name = '$name' AND passwort = '$passwort'"; und speicher die ID des Mitglieds in der Sessionvariable.
Dann brauchst du später, da wo jetzt "WHERE ID = '$id'" steht, nur noch schrieben "WHERE ID = '$deineSessionVariable'.

Edit: Die Datei muss natürlich eine PHP Datei bleiben, weil der Code nicht geparst wird, wenn es eine .htm oder .html Endung hat.


Wie kann ich etwas in der Sessionvariablen speichern? (wahrscheinlich sau dumme Frage, ich weiß großes Grinsen )
callous.
Zitat:
Original von Cousquer
Wie kann ich etwas in der Sessionvariablen speichern? (wahrscheinlich sau dumme Frage, ich weiß großes Grinsen )


php:
1:
2:
3:
<?php
$_SESSION['name'] = "text";
?>


Wobei ich persönlich diese Variante für umständlich halte...
Das reimt sich sogar!
Remember
Ohgott. Das geht mir grad alles viel zu hoch. xD
Hilfe Hilfe ich bin ein Fisch. (Frag mich nich, wie ich da grad draufkomm großes Grinsen großes Grinsen )


Ich habe:
code:
1:
$Ergebnis = mysql_query("SELECT * FROM pferd WHERE Tunierreiter = !''");

und möchte anstatt der Ausgabe von allen Pferden, die einen Turnierreiter haben, eine Ausgabe von den Turnierpferden des angemeldeten Users. Wenn ich das jetzt richtig verstanden habe, müsste ich dann sagen:

code:
1:
2:
3:
4:
5:
<?php
$_SESSION['name'] = "$username";
blaaaa ...

$Ergebnis = mysql_query("SELECT * FROM pferd WHERE Tunierreiter = '$username'");?>


?


e./
Okay, nein. Anscheinend nicht. traurig
Ich bin überfordert. Hilfe. unglücklich
callous.
In dem Fall kannst du die Session-Variable weglassen. Hast du ja schließlich schon oben stehn, wenns im Internbereich ist Augenzwinkern
Remember
Es will absolut nicht funktionieren -.- Schrecklcihes Teil. Wie ich PHP hasse, weil ichs nich richtig kann großes Grinsen

Vielleicht siehst du ja auf den ersten Blick gleich irgendwas. *hoffnungsvoll schau* großes Grinsen Und weil ich keine Ahnung habe, post ich einfach mal das ganze Teil :S ^^ Hoffe, dass das nicht irgendwas noch mit einer andren Datei zu tun hat (?).

meinepferde.php
php:
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:
<?php
include("checkuser.php");
?>

<html>
<head>
<title>SHAKESPEAR</title>
<link rel=stylesheet href=styli.css type=text/css>
</head>
<body><h2>Deine Tunierpferde</h2>

<?php

// Verbindung zur Datenbank
include("datenbank.php");

// Hier die Abfrage übersetzt: RUFE * (alle Spalten) VON der Tabelle Pferd auf WO in der Spalte Besitzer nichts steht.
$Ergebnis mysql_query("SELECT * FROM pferd WHERE Tunierreiter = '$name'");

// Wenn das Ergebnis 0 ist gib aus
     if (@mysql_num_rows($Ergebnis) == 0) {
    echo "Für dich sind keine Tunierpferde eingetragen.";
    }

    else {
// Sonst zeige an .. 
        while($Data mysql_fetch_array($Ergebnis)) {
        // Der Name wird ausgegeben .. die HTML Elemente sind frei anpassbar- Vor " muss aber immer ein \. 
        // Der Steckbriefname lautet Pferd. Diesem wird jetzt die ID des Pferdes angehängt, damit die Datei nachher weiß, welche Daten sie abfragen muss.
        // Ihr könnt die ganzen anderen Infos auch angeben .. sprich $Data[Jahrgang] oder $Data[Geschlecht]
         echo "<h3><a href="pferd.php?id=$Data[ID]">$Data[Name]</a></h3>
              <a href="pferd.php?id=$Data[ID]"> <img src='pferdebilder/$Data[ID]/vorschaubild.jpg' style="height:150pxfloat:right;" class="border;"></a>
<table>
<tr><td class="hengst"><b>von</b></td> <td>$Data[Vater]</td></tr>
<tr><td class="hengst"><b>a. d.</b></td> <td>$Data[Mutter]</td></tr></table><br>           
<table>
<tr><td class="hengst"><b>Rasse</b></td> <td>$Data[Rasse]</td> <td class="hengst"><b>Alter</b></td> <td>$Data[Alter] Jahre</td></tr>
<tr><td class="hengst"><b>Fellfarbe</b></td> <td>$Data[Fellfarbe]</td> <td class="hengst"><b>Stockmaß</b></td> <td>$Data[Stockmaß]</td></tr>
<tr><td class="hengst"><b>Reitart</b></td> <td>$Data[Reitart]</td> <td class="hengst"><b>Schwerpunkt</b></td> <td>$Data[Schwerpunkt]</td></tr>
<tr><td class="hengst"><b>LGS</b></td> <td>$Data[Lebendgewinnsumme]</td></tr>
</table><br><br>
</div>";
    }
}
?>

</body>
</html>
Oli
Hi,

wo kommt denn $name überhaupt her? Ist das irgendwo definiert? Wenn nicht beinhaltet es natürlich auch nicht den Namen...

LG
Remember
Ich dachte, dass das in der checkuser.php da drin ist.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php
session_start();  

if(!isset($_SESSION["name"]))    
{     
echo "Diese Seite ist nur für Mitglieder verfügbar.<br>Bitte <a href="login.php">einloggen</a>!.";
exit;
}  
?>



Weil da steht doch dieses Session[name].
Und das dachte ich ... Ach, es macht mich verrückt.
Ich blick da irgedndwie gar nicht mehr durch unglücklich
callous.
Heißt die Spalte fürn Mitgliedernamen wirklich "name"? Wenn nicht, musst du es dementsprechend anpassen. Wenn du die Spalte z. B. "username" genannt hast, gehört das da auch hin Augenzwinkern
Remember
nää, die heißt definitiv "name". großes Grinsen
angehängt mal alles, was im entferntesten (meiner meinung nach) damit zu tun haben könnte x(
Oli
Zitat:
Original von Cousquer
Ich dachte, dass das in der checkuser.php da drin ist.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php
session_start();  

if(!isset($_SESSION["name"]))    
{     
echo "Diese Seite ist nur für Mitglieder verfügbar.<br>Bitte <a href="login.php">einloggen</a>!.";
exit;
}  
?>

Ja, da steht $_SESSION["name"] - aber nicht $name Augenzwinkern

LG