PHP - Session Problem

letum

Neuling
Thread Starter
Mitglied seit
31.05.2006
Beiträge
19
Ort
Rülzheim
Hallo, ich wollt ein Loginsystem für meine Webseite haben.
Da ich keine Ahnung von PHP habe, habe ich mir das Tutorial von Quakenet durchgelesen und derren Loginsystem kopiert.

Leider funktioniert das bei mi nicht so wie ich mir das vorgestellt habe.
Zuerst konnte ich mich nicht anmelden, was mit der MD5 verschlüsslung zu tun hatte. Nach dem ich dies herausgenommen habe konnte ich mich nun anmleden. Allerdings habe ich das Gefühl, dass meine Session entweder nicht richtig erstelle, übergeben oder gespeichert wir.
Um zu überprüfen ob es die Session gibt habe ich die log.php geschrieben.

log.php include über "index.php?nav=100&ID=103"
Code:
<?php
if(isset($_SESSION['ID']))
{
 echo "Die Session ist OK";
}
else
{
 echo "Die Session ist ungültig";
}
?>

hier mal der Code der Login Seite (include "index.php?nav=100&ID=102"):
Code:
<?php
    mysql_select_db(db0_xxxx_xxx) OR die(mysql_error());

    if(isset($_GET['action']) AND ("logout" == $_GET['action'])) 
    {
        session_destroy();
        echo "<p>\n";
        echo "    Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
        echo "    zu kommen müssen sie sich wieder Einloggen\n";
        echo "</p>\n";
    } 

    else 
    {
        if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) 
        {
            echo "<p>\n";
            echo "    Bitte wählen sie einen Benutzernamen aus.\n";
            echo "</p>\n";
        }
        
        else 
        {
            if(isset($_POST['UserID'], $_POST['Password']) AND login_right(addslashes($_POST['UserID']), addslashes($_POST['Password']))) 
            {
                $_SESSION['ID'] = $_POST['UserID'];
                echo "Session erfolgreich erstellt";
            }
                 
            if(!isset($_SESSION['ID'])) 
            {
                $_SESSION['ID'] = $_POST['UserID'];
            }
               
            if(isset($_SESSION['ID']))
            {
                echo "<p>\n";
                echo "Willkommen im Adminbereich <br />\n";
                echo "    <a href=\"index.php?nav=100&ID=102&section=admin".SID."\">Repeat</a>\n";
                echo "    <a href=\"index.php?nav=100&ID=102&action=logout".SID."\">Ausloggen</a>\n";
                echo "    <a href=\"index.php?nav=100&ID=103".SID."\">Session Test</a>\n";
                echo "</p>\n";
            } 
            
            else 
            {
                if(isset($_POST['submit'])) 
                {
                     echo "<p>\n";
                     echo "    Ungültiges Password.\n";
                     echo "</p>\n";
                }
                  
                echo "<form action=\"index.php?nav=100&ID=102\" method=\"post\" class=\"formular\">\n";
                echo "    <p>\n";
                echo "        Adminbereich\n";
                echo "    </p>\n";
                echo "    <ol>\n";
                echo "        <li>\n";
                echo "            <label for=\"name\">Name</label>\n";
                $sql = "SELECT
                            ID,
                            Name
                        FROM
                            users
                        ORDER BY
                            Name ASC;";
                $result = mysql_query($sql) OR die(mysql_error());
                echo "                <select size=\"1\" name=\"UserID\" id=\"name\">\n";
                echo "                    <option value=\"0\" selected=\"selected\">Bitte wählen</option>\n";
                while($row = mysql_fetch_assoc($result)) 
                {
                    echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
                }
                echo "                </select>\n";
                echo "        </li>\n";
                echo "        <li>\n";
                echo "            <label for=\"password\">Password</label>\n";
                echo "            <input type=\"password\" name=\"Password\" id=\"password\" />\n";
                echo "        </li>\n";
                echo "        <li>\n";
                echo "            <input type=\"submit\" name=\"submit\" value=\"Login\" />\n";
                echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                echo "        </li>\n";
                echo "    </ol>\n";
                echo "</form>\n";
            }
        }
    }
?>

Zuletzt die index.php
Code:
<?php
    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
    echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";

    include "inc/config.php"; 

    mysql_select_db(db0_xxxx_xxxx) OR die(mysql_error());

    if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
        session_start();
        if(!isset($_SESSION['IP'])) {
            $_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
        }
        if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
            echo "<p class=\"error\">\n";
            echo "    Sie dürfen nicht die Session von einem\n";
            echo "    anderen user Benutzten. Bitte benutzen sie\n";
            echo "    folgenden Link um zur Homepage zu gelangen.\n";
            echo "    <a href=\"/\">Zurück zur Homepage</a>\n";
            echo "</p>\n";
            die(); 
        }
    }

    if(get_magic_quotes_gpc()) {
        array_stripslashes($_GET);
        array_stripslashes($_POST);
        array_stripslashes($_COOKIE);
    }
?>

<head>
.
.
.
</head>

<body>
<a name="top"></a>
<table cellpadding="0" id="main">
	<tr>
		<td colspan="3" id="header"> </td>
	</tr>
	<tr>
		<td colspan="3" class="border">
		...
		</td>
	</tr>
	<tr>
		<td class="side">
			<?php include "nav.php"; ?>
		</td>
		<td id="content">	
			<?php include "main.php"; ?>
		</td>

		<td class="side">
			<iframe src="sites/shoutbox.php"  width="100%" height="400" name="shoutbox" frameborder="0" scrolling=no></iframe>
		</td>
	</tr>
	<tr>
		<td colspan="3" class="border">
			<span id="border">...</span>
		</td>
	</tr>
</table>
</body>
</html>
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich vermisse bei dir den aufruf der "session_start()" funktion.
Kanns es vielleicht daran liegen?
Ne schmarrn habs gefunden, aber vielleicht fehlt ein "session_register(IP)";
 
Zuletzt bearbeitet:
Ich habe die Funktion Session_register() mal ausprobiert.
Es ändert sich nichts.

Hat sonst jemand eine Idee?
Ich denke ds es an der übergabe der Session liegt.
Aber was nun daran nicht stimt weis ich nicht.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh