tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von hasta_jesaja
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
452
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    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...
    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> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp;';
    echo 
    '<a href="register.php">Registrieren</a>';
    }
    ?>
    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.
    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)
     

  2. #2
    hasta_jesaja hasta_jesaja ist offline Mitglied Gold
    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:

    PHP-Code:
    $_SESSION['id'] = $_GET['id']; 
    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.

    Also an dem Schnippsel den du geposted hast liegt es auf jedenfall nicht.
     
    Der Mensch ist ein Tier das zuviel denkt!

  3. #3
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von hasta_jesaja Beitrag anzeigen
    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:

    PHP-Code:
    $_SESSION['id'] = $_GET['id']; 
    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.

    Also an dem Schnippsel den du geposted hast liegt es auf jedenfall nicht.
    Hi,
    so ein Codeteil finde ich nicht. Hab ich vorher auch schon überlegt... Aber dies kann auch nicht sein, da es egal ist, welche Seite ich als nächstes besuche. Es kann auch eine Seite sein, wo ich garnicht mit sessions arbeite....
     

  4. #4
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    In irgendeinem Codeteil musst du doch $_SESSION['id'] einen Wert zuweisen.
    Diesen Teil würden wir gerne sehen.

    Das muss dann schon so aussehen:

    PHP-Code:
    $_SESSION['id'] = 'irgendwas'// ein Wert muss ja zugewiesen werden... 
    Wenn du sowas nicht findest poste mal das ganze Script.
     

  5. #5
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von Loomes Beitrag anzeigen
    In irgendeinem Codeteil musst du doch $_SESSION['id'] einen Wert zuweisen.
    Diesen Teil würden wir gerne sehen.

    Das muss dann schon so aussehen:

    PHP-Code:
    $_SESSION['id'] = 'irgendwas'// ein Wert muss ja zugewiesen werden... 
    Wenn du sowas nicht findest poste mal das ganze Script.
    Hiho,
    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']; 
    Das ist die Login.php und das ist der einzige Punkt, wo $_SESSION['id'] etwas zugewiesen wird.
     

  6. #6
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Du schreibst
    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.
    Jetzt wären die Codeteile die etwas mit dem $_GET zu tun haben interessant.
    Die bisher geposteten Codeteile helfen da nicht den Fehler zu finden, finde ich
     

  7. #7
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von Loomes Beitrag anzeigen
    Du schreibst


    Jetzt wären die Codeteile die etwas mit dem $_GET zu tun haben interessant.
    Die bisher geposteten Codeteile helfen da nicht den Fehler zu finden, finde ich
    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.';
                         }




                    } 
    Die formatierung ist leider etwas anders, als bei mir im Editor... Sorry.
    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)
     

  8. #8
    hasta_jesaja hasta_jesaja ist offline Mitglied Gold
    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!

  9. #9
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von hasta_jesaja Beitrag anzeigen
    Uhmm... darin seh ich leider den Fehler nicht den du beschrieben hast. Gibts sonst noch was? Ansonsten häng mal das ganze Script an.
    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):

    PHP-Code:
                                      <?php
                                     session_name
    ($_COOKIE['sname']);
                                     
    session_start();
                                     echo 
    $_SESSION['id'];
                                     echo 
    '<a href="neuste.php">Neuste Radios</a> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp;';
                                     echo 
    '<a href="favoriten.php">Meine Favoriten</a> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp;';
                    if(isset (
    $_SESSION['id']) && $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) {
                                 echo 
    '<a href="favoriten.php">Meine Favoriten</a> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp;';
                                     echo 
    '<a href="login.php?action=logout">Ausloggen</a>';
                                     }else{
                                     echo 
    '<a href="login.php">Login</a> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp;';
                                     echo 
    '<a href="register.php">Registrieren</a>';
                                     }
                                     
    ?>
    2. Teil, wenn $_GET['id'] vorhanden ist.
    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(localhostvistakompehh4wu1d) 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>';
                                                             }
                                 }
                             } 
    Danke für die hilfe
     

  10. #10
    hasta_jesaja hasta_jesaja ist offline Mitglied Gold
    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...
    Baldus bedankt sich. 
    Der Mensch ist ein Tier das zuviel denkt!

  11. #11
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von hasta_jesaja Beitrag anzeigen
    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...
    Ich glaube, du hast mir ein wochenende mit ständigem überlegen verschönert (auch wenns nurnoch ne stunde 50 minuten sind).
    Ich verstehe nicht, wo der fehler liegt, aber nun geht es.

    Vielen, vielen, vielen dank!
     

  12. #12
    hasta_jesaja hasta_jesaja ist offline Mitglied Gold
    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!

  13. #13
    Baldus Baldus ist offline Mitglied
    Registriert seit
    Jan 2008
    Beiträge
    16
    Zitat Zitat von hasta_jesaja Beitrag anzeigen
    Gerne doch Wäre natürlich schön gewesen den Fehler irgenwie ausfindig zu machen...
    evt isses so gewesen, das er die id aus $_GET automatisch in $_SESSION eingefügt hat, da es der gleiche name war. Nachdem ich den Namen geändert habe, ging es ja.
    Wäre für mich eine Lösung..
     

  14. #14
    hasta_jesaja hasta_jesaja ist offline Mitglied Gold
    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

  1. [C] Merkwürdiges CGI Problem
    Von soUrcerer im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 26.05.08, 18:32
  2. Merkwürdiges Material Problem
    Von Simon la Croix im Forum Cinema 4D
    Antworten: 12
    Letzter Beitrag: 22.01.08, 10:51
  3. Merkwürdiges Problem mit file()
    Von Moritz123 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 20.05.05, 21:09
  4. Merkwürdiges Problem mit Bildeinbindung
    Von Moritz123 im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 06.04.05, 15:07
  5. merkwürdiges problem
    Von Montz im Forum Flash Plattform
    Antworten: 13
    Letzter Beitrag: 15.06.01, 22:46