1Danke
ERLEDIGT
JA
JA
ANTWORTEN
13
13
ZUGRIFFE
452
452
EMPFEHLEN
-
Hallo,
ich habe ein Loginscript geschrieben. Nun will ich, wenn man eingeloggt, ist angezeigt wird "Ausloggen", sonst "Einloggen".
Vorweg:
$_SESSION['id'] ist nicht die SessionID, sondern die ID des Users...
Auf dieser Seite wird mittels $_GET eine ID übergeben. Die "Seiteid" könnte man es nennen.PHP-Code:<?php
session_start();
echo $_SESSION['id'];
if(isset ($_SESSION['id']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) {
echo '<a href="login.php?action=logout">Ausloggen</a>';
}else{
echo '<a href="login.php">Login</a> - ';
echo '<a href="register.php">Registrieren</a>';
}
?>
Aber komischweiße wird, wenn ich die Seite verlasse und auf irgendeine andere Seite die "ID" aus $_GET als $_SESSION['id'] gespeichert.
Ich habe shcon herausgefunden, dass es an dieser Stelle liegt(um genau zu sein an dem session_start() ), weil wenn ich diese als kommentar setzte, passiert dies nicht!
Weiter unten im Quelltext wird nochmal was angezeigt, wenn die Session vorhanden ist, dies klappt aber auch und daran liegt es nicht.
Beispiel:
Ich habe die $_SESSION['id'] 15
als url steht da www.bla.de/irgendwas.php?id=11
Wenn ich nun auf eine andere Seite gehe, ändert sich die $_SESSION['id'] auf 11 um.
Ich verstehe nicht, wieso er die $_SESSION['id'] ändert, obwohl ich das nicht gecodet habe.
Vielen Dank im Vorraus!Geändert von Baldus (09.02.08 um 21:07 Uhr)
-
10.02.08 02:20 #2
- Registriert seit
- Feb 2005
- Ort
- Berlin
- Beiträge
- 130
Mhhh... das $_SESSION['id'] zur Seiten Id in $_GET['id'] wird MUSS irgendwo stehen, d.h. irgendo muss es einen part geben der so oder so ähnlich aussieht:
Und das $_SESSION['id'] != $_GET['id'] ist wenn du die Session nicht per session_start() startest ist klar, da ja $_SESSION['id'] dann gar nicht existiert.PHP-Code:$_SESSION['id'] = $_GET['id'];
Also an dem Schnippsel den du geposted hast liegt es auf jedenfall nicht.Der Mensch ist ein Tier das zuviel denkt!
-
-
In irgendeinem Codeteil musst du doch $_SESSION['id'] einen Wert zuweisen.
Diesen Teil würden wir gerne sehen.
Das muss dann schon so aussehen:
Wenn du sowas nicht findest poste mal das ganze Script.PHP-Code:$_SESSION['id'] = 'irgendwas'; // ein Wert muss ja zugewiesen werden...
-
Hiho,
Das ist die Login.php und das ist der einzige Punkt, wo $_SESSION['id'] etwas zugewiesen wird.PHP-Code:$check = "SELECT * FROM user WHERE username LIKE '$username'";
$check2 = mysql_query($check);
$row = mysql_fetch_object($check2);
session_start();
$_SESSION['id'] = $row->id;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
-
Du schreibst
Jetzt wären die Codeteile die etwas mit dem $_GET zu tun haben interessant.Auf dieser Seite wird mittels $_GET eine ID übergeben. Die "Seiteid" könnte man es nennen.
Aber komischweiße wird, wenn ich die Seite verlasse und auf irgendeine andere Seite die "ID" aus $_GET als $_SESSION['id'] gespeichert.
Die bisher geposteten Codeteile helfen da nicht den Fehler zu finden, finde ich
-
Die formatierung ist leider etwas anders, als bei mir im Editor... Sorry.PHP-Code:
if (isset ($_GET['id'])) {
$id = $_GET['id'];
mysql_connect(***) or die ('Keine Verbindung möglich');
mysql_select_db(****) or die ("Kann Verbindung zur Datenbank nicht herstellen");
$idlook = "SELECT * FROM radio WHERE id LIKE '$id'";
$ergebnis = mysql_query($idlook);
while($row = mysql_fetch_object($ergebnis)) {
echo ' <table border="0" width="460">';
echo ' <tr>';
echo ' <td colspan="3" style="text-align:center"><a href="' .$row->link .'">' . $row->name . '</a></td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td>Bitrate: ' . $row->bitrate . ' Kbs</td>';
echo ' <td>Sprache: ' . $row->sprache . '</td>';
echo ' <td>Richtung: ' . $row->richtung . '</td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td colspan="3">' . nl2br ("$row->beschreibung") . '</td>';
echo ' </tr>';
echo ' </table>';
if(isset ($_SESSION['id']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) {
mysql_connect(***) or die ('Keine Verbindung möglich');
mysql_select_db(***) or die ("Kann Verbindung zur Datenbank nicht herstellen");
$favoriten = "SELECT * FROM favoriten WHERE radioid LIKE '$id2'";
$favoriten2 = mysql_query($favoriten);
$anzahl = "0";
while($row11 = mysql_fetch_object($favoriten2)) {
$anzahl = $anzahl + "1";
}
if($anzahl >= "1") {
}else{
echo ' <form method="post" action="favoriten.php">';
echo ' <input name="fav" type="hidden" value="' .$id. '">';
echo ' <input type="submit" value="Zu den Favoriten hinzufügen">';
echo ' </form>';
}
}
}
echo ' <br><br>Kommentare: <a href="kommentar.php?id=' . $id . '">(Hier können sie ein Kommentar hinzufügen!)</a><br><br>';
$comments = "SELECT * FROM kommentare WHERE RadioID LIKE '$id'";
$commentsconnect = mysql_query($comments);
if (mysql_num_rows($commentsconnect)) {
while($row = mysql_fetch_object($commentsconnect)) {
echo ' <table border="1" width="460">';
echo ' <tr>';
echo ' <td>Name: ' . $row->Name . '</td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td> '. nl2br ("$row->kommentar") . '</td>';
echo ' </tr>';
echo ' </table><br>';
}
}else{
echo '<br><br>Keine Einträge vorhaden.';
}
}
Dies war die einzige Stelle, wo wirklich was mit $_GET['id'] zu tun hat.Geändert von Baldus (10.02.08 um 12:13 Uhr)
-
10.02.08 21:21 #8
- Registriert seit
- Feb 2005
- Ort
- Berlin
- Beiträge
- 130
Uhmm... darin seh ich leider den Fehler nicht den du beschrieben hast. Gibts sonst noch was? Ansonsten häng mal das ganze Script an.
Der Mensch ist ein Tier das zuviel denkt!
-
Ich glaube, dass das ganze Script etwas viel wäre, da nicht nur dies mit "id=12" ist, sondern die index.php, mit mehreren Seiten in einer. Schwer zu beschreiben

Außerdem möchte ich dies nicht so einfach "preisgeben"
Es können ja nur 2 Teile in frage kommen, da ich nur in 2 Teilen eine Session benutze bzw $_SESSION['id'] benutze.
1. Oberer Teil (Eine Art header):
2. Teil, wenn $_GET['id'] vorhanden ist.PHP-Code:<?php
session_name($_COOKIE['sname']);
session_start();
echo $_SESSION['id'];
echo '<a href="neuste.php">Neuste Radios</a> - ';
echo '<a href="favoriten.php">Meine Favoriten</a> - ';
if(isset ($_SESSION['id']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) {
echo '<a href="favoriten.php">Meine Favoriten</a> - ';
echo '<a href="login.php?action=logout">Ausloggen</a>';
}else{
echo '<a href="login.php">Login</a> - ';
echo '<a href="register.php">Registrieren</a>';
}
?>
Danke für die hilfePHP-Code:if (isset ($_GET['id'])) {
$id = $_GET['id'];
mysql_connect(***) or die ('Keine Verbindung möglich');
mysql_select_db(***) or die ("Kann Verbindung zur Datenbank nicht herstellen");
$idlook = "SELECT * FROM radio WHERE id LIKE '$id'";
$ergebnis = mysql_query($idlook);
while($row = mysql_fetch_object($ergebnis)) {
echo ' <table border="0" width="460">';
echo ' <tr>';
echo ' <td colspan="3" style="text-align:center"><a href="' .$row->link .'">' . $row->name . '</a></td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td>Bitrate: ' . $row->bitrate . ' Kbs</td>';
echo ' <td>Sprache: ' . $row->sprache . '</td>';
echo ' <td>Richtung: ' . $row->richtung . '</td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td colspan="3">' . nl2br ("$row->beschreibung") . '</td>';
echo ' </tr>';
echo ' </table>';
if(isset ($_SESSION['id']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) {
mysql_connect(localhost, vistakomp, ehh4wu1d) or die ('Keine Verbindung möglich');
mysql_select_db(vistakomp) or die ("Kann Verbindung zur Datenbank nicht herstellen");
$favoriten = "SELECT * FROM favoriten WHERE radioid LIKE '$id2'";
$favoriten2 = mysql_query($favoriten);
$anzahl = "0";
while($row11 = mysql_fetch_object($favoriten2)) {
$anzahl = $anzahl + "1";
}
if($anzahl >= "1") {
}else{
echo ' <form method="post" action="favoriten.php">';
echo ' <input name="fav" type="hidden" value="' .$id. '">';
echo ' <input type="submit" value="Zu den Favoriten hinzufügen">';
echo ' </form>';
}
}
}
-
10.02.08 22:05 #10
- Registriert seit
- Feb 2005
- Ort
- Berlin
- Beiträge
- 130
Also das sind ja jetzt die Teile die wir schon kennen. Benenn mal $_SESSION['id'] um in $_SESSION['userid'], dann ist es eindeutiger. Dann ruf mal ne Seite auf und gib per print_r() die _GET und _SESSION arrays aus und poste das mal. Ich kann mir da grad nicht helfen...
Der Mensch ist ein Tier das zuviel denkt!
-
-
10.02.08 22:17 #12
- Registriert seit
- Feb 2005
- Ort
- Berlin
- Beiträge
- 130
Gerne doch
Wäre natürlich schön gewesen den Fehler irgenwie ausfindig zu machen...
Der Mensch ist ein Tier das zuviel denkt!
-
-
10.02.08 22:52 #14
- Registriert seit
- Feb 2005
- Ort
- Berlin
- Beiträge
- 130
Alles klar, dann hammers ja
Als erledigt markieren nicht vergessen.
Der Mensch ist ein Tier das zuviel denkt!
Ähnliche Themen
-
[C] Merkwürdiges CGI Problem
Von soUrcerer im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 26.05.08, 18:32 -
Merkwürdiges Material Problem
Von Simon la Croix im Forum Cinema 4DAntworten: 12Letzter Beitrag: 22.01.08, 10:51 -
Merkwürdiges Problem mit file()
Von Moritz123 im Forum PHPAntworten: 5Letzter Beitrag: 20.05.05, 21:09 -
Merkwürdiges Problem mit Bildeinbindung
Von Moritz123 im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 06.04.05, 15:07 -
merkwürdiges problem
Von Montz im Forum Flash PlattformAntworten: 13Letzter Beitrag: 15.06.01, 22:46





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren