PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mir SESSION :-(


S3Ri0US
24.11.2005, 22:05:42
HiHi !

Ich habe seit 3 Std ein Problem mit meinem Session Code.... ich habe den selben Code im Adminbereic.. dort geht er weunder bar.. nun möchte ich ihn auch für einen User Login hernehmen.. also habe ich alles Kopiert und in meinem User Bereich eingefügt.. nur irgend wie geht er dort nicht... ich kann mich ohne Probleme Einlogen.. soblad ich aber dann auf eine Andere Seite gehe.. sagt er mir dass ich nicht eigelogt bin ?!?! Kapier das nich... Warum klapt das nicht mehr ?

Hier mal zu meinem Code...

Meine Login Prüfung :


if($isAllowed == "1") {
$ip = getenv("REMOTE_ADDR");
$abfrage = "UPDATE Users SET ip='$ip' WHERE name = '$loginname'";
$erg = mysql_db_query("******",$abfrage,$verbindung);
if($erg) {

session_start();
$SESSION_Passwort="UseRisLogIn";
session_register("SESSION_Passwort");
echo "Login Erfolgreich !<a href=\"add_artikel.php\">Weiter</a><br><br>";
}
else {
echo "Es ist ein Interner Fehler aufgetreten !<br><br>";
}



So... also das geht... ich bekomme das Echo.. Login Erfolgreich... nun Clicke ich auf weiter.. und komme so zu meiner add_artikel.php

Diese ist wie flgt aufgebaut:


Ganz oben :


<?php
include("db_conn.php");
session_start();
?>


So.. nach dem ganzen HTML Zeuchs kommt dann der Geschütze Bereich... :


<?php
$Zugangspasswort = "UseRisLogIn";

if($SESSION_Passwort==$Zugangspasswort) {

echo "Ich bin drin";

}
else {
echo"Sie sind nicht berechtigt die Seite anzuzeigen!<br>
Bitte loggen Sie sich vorher <a href=\"login.php\">hier</a> ein.<br><br>";
}
?>


So.. nun bekomme ich immer den text das ich nicht eingelogt bin.. und die varibale $SESSION_Passwort is Leer ?!?!

Hoffe jemand kann mir Helfen.. Warum klapt das alles im Adminbereich ? und jetzt nicht mehr ? Danke schon mal

feuervogel
24.11.2005, 22:20:39
willkommen im forum!

bitte benutze einerseits die [ php ]-tags, so dass ein code eingefärbt wird, andererseits das array $_SESSION und nicht session_register();

S3Ri0US
24.11.2005, 22:22:26
Ok Sorry... Habs auc schon mit $_SESSION versucht.. geht auch nicht :-(

S3Ri0US
24.11.2005, 22:38:20
Der Code wurde nun wie folgt geändert.. geht aber auch nicht...

Login :


session_start();
$_SESSION["SESSIONPW"] = "UseRisLogIn";
echo "Login Erfolgreich !<a href=\"add_artikel.php\">Weiter</a><br><br>";


Bis dato alles Ok

Aber nun.. add_artikel.php :


$Zugangspasswort = "UseRisLogIn";
$globalPW = $_SESSION["SESSIONPW"];

if($globalPW==$Zugangspasswort) {

......

}


Die Variable $gloablPW = Leer....

feuervogel
25.11.2005, 00:07:46
in der datei addArticle.php hast du schon am anfang session_start(); stehen?

S3Ri0US
25.11.2005, 00:11:40
Jo habe.. ganz oben wo auch mein Include drin is

feuervogel
25.11.2005, 00:51:51
dann weiß ich nicht was du falsch machst.

erstelle dir mal bitte 2 dateien:

datei1.php

<?php
session_start();

$_SESSION[ 'bla' ] = "blubb";
echo '<a href="./datei2.php">link</a>';
?>

datei2.php
<?php
session_start();
echo $_SESSION[ 'bla' ];
?>


und guck was passiert wenn du auf den link von datei1.php klickst.

meikel (†)
25.11.2005, 04:19:57
und guck was passiert wenn du auf den link von datei1.php klickst.
Das hängt in erster Linie davon ab, ob der Client den Sessioncookie annimmt oder nicht - korrekte PHP Config mal stillschweigend vorausgesetzt.

feuervogel
25.11.2005, 12:55:48
Das hängt in erster Linie davon ab, ob der Client den Sessioncookie annimmt oder nicht - korrekte PHP Config mal stillschweigend vorausgesetzt.
das sowieso, aber mit solch wichtigen infos ist man heutzutage ja recht sparsam.

meikel (†)
25.11.2005, 15:24:48
das sowieso, aber mit solch wichtigen infos ist man heutzutage ja recht sparsam.
Machs wie ich und beantworte nur solche Fragen, die die nötigen Infos beinhalten. <g>

S3Ri0US
25.11.2005, 16:43:38
@FeuerVogel

Das mit den Dateien geht auch nicht

@meikel..

Wenn meine Einstellungen in der INI Falsch wären, würde es auch nicht im Adminbereich mit session_register funktionieren !?!

meikel (†)
25.11.2005, 17:07:25
Wenn meine Einstellungen in der INI Falsch wären,
Du verwechselst da was: Ich bin es nicht, der Probleme hat.

Liefere einen Link auf Dein phpinfo oder frage einen Hellseher.

feuervogel
25.11.2005, 17:22:42
@FeuerVogel

Das mit den Dateien geht auch nicht

unter der annahme, dass du alles richtig abgetippt hast und alles beachtet hast, folgere ich daraus, dass bei dir was nicht stimmt. und so lange du nicht mehr infos lieferst, wirds echt schwer, dir zu helfen.

S3Ri0US
25.11.2005, 18:26:03
Was für Infos braucht ihr denn ?

S3Ri0US
25.11.2005, 18:46:23
@Feuervogel...

Man mann... :D habe datei1.php und datei2.php jetzt mal im ROOT getestet... da gehts....


Habe jetzt genau das von Datei1 und Datei2 in mein Project Kopiert.. geht wieder nich :-(

Jetzt mal meine Ganzen Files : loginchk.php ( Login wird geprüft)


<?php
include("db_conn.php");
?>

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>TEST</title>
</head>

<body bgcolor="#37414B" background="../../images/back.png" style="background-attachment: fixed" topmargin="0">

<link rel="stylesheet" type="text/css" href="style.css">

<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="20">&nbsp;</td>
<td background="../../images/td_left.png">&nbsp;</td>
<td width="600" background="../../images/td_top_back2.png" height="24">
<p align="center"><font color="#FFFFFF">TEST</font></td>
<td width="20" background="../../images/td_right.png">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="20" background="../../images/td_left.png">&nbsp;</td>
<td bgcolor="#FFFFFF" width="600">
&nbsp;<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td background="../../images/line_top.png" colspan="2">
<p align="center">&nbsp;</td>
</tr>
<tr>
<td width="100" valign="top" bgcolor="#EEEEEE" align="center">
&nbsp;
</td>
<td valign="top" bgcolor="#EEEEEE" align="center" background="../../images/td_center.png">
<p align="left"><br>

<?PHP

$abfrage = "SELECT name,pw,isAllowed FROM Users WHERE name = '$loginname'";
$erg = mysql_db_query("db13720****",$abfrage,$verbindung);
list($name,$pw,$isAllowed) = mysql_fetch_row($erg);

if($pw == $loginpw) {
if($isAllowed == "1") {
$ip = getenv("REMOTE_ADDR");
$abfrage = "UPDATE Users SET ip='$ip' WHERE name = '$loginname'";
$erg = mysql_db_query("db137203911",$abfrage,$verbindung);
if($erg) {

session_start();
$_SESSION[ 'isLogin' ] = "TEST";

echo "Login Erfolgreich !<a href=\"add_artikel.php\">Weiter</a><br><br>";
}
else {
echo "Es ist ein Interner Fehler aufgetreten !<br><br>";
}
}
else {
echo "Ihr Zugang wurde von einem Administrator gesperrt !<br><br>";
}
}
else {
echo "Benutzer/Passwort Falsch ! <a href=\"login.php\">Zurück</a><br><br>";
}
?>

</td>
</tr>
<tr>
<td background="../../images/line_down.png" colspan="2">&nbsp;</td>
</tr>
</table>
<p><br>
</p>
</td>
<td background="../../images/td_right.png">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

</body>

</html>


So.. jetzt ist die Globale Varibale ( Session gesetzt.. also klich ich auf Login Erfolgreich... WEITER

dann gehts zur add_artikel.php


<?php
session_start();
include("db_conn.php");
?>

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>TEST</title>
</head>

<body bgcolor="#37414B" background="../../images/back.png" style="background-attachment: fixed" topmargin="0">

<link rel="stylesheet" type="text/css" href="style.css">

<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="20">&nbsp;</td>
<td background="../../images/td_left.png">&nbsp;</td>
<td width="600" background="../../images/td_top_back2.png" height="24">
<p align="center"><font color="#FFFFFF">TEST</font></td>
<td width="20" background="../../images/td_right.png">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="20" background="../../images/td_left.png">&nbsp;</td>
<td bgcolor="#FFFFFF" width="600">
&nbsp;<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td background="../../images/line_top.png" colspan="2">
<p align="center">&nbsp;</td>
</tr>
<tr>
<td width="100" valign="top" bgcolor="#EEEEEE" align="center">
&nbsp;
</td>
<td valign="top" bgcolor="#EEEEEE" align="center" background="../../images/td_center.png">
<p align="left"><br>

<?php
$isLogin = $_SESSION[ 'isLogin' ];
echo "SESSION = $isLogin";

if(empty($action)) {
echo "<form enctype=\"multipart/form-data\" action=\"?action=add\" method=\"post\">
Artikelbezeichnung:<br>
<input type=\"text\" name=\"artikelbezeichnung\" size=\"70\" class=\"feld1\"><br><br>

Zustand:<br>
<select name=\"zustand\" size=\"\" class=\"feld1\">
<option value=\"NEU+OVP\">NEU+OVP</option>
<option value=\"Neuwertig\">Neuwertig</option>
<option value=\"Gebraucht\">Gebraucht</option>
<option value=\"Defekt\">Defekt</option>
</select><br><br>

Preisvorstellung:<br>
<input type=\"text\" name=\"preis\" size=\"20\" class=\"feld1\"> € &nbsp; (oder VHB )<br><br>

Artikelbeschreibung:<br>
<textarea name=\"komentar\" cols=\"50\" rows=\"7\" id=\"content\" class=\"feld1\"></textarea><br><br>

Bild: &nbsp; ( *.jpg - Maximal 300kb ! )<br>
<input type=\"file\" name=\"picture\" size=\"45\" class=\"feld1\"><br><br>

<input type=\"submit\" value=\"Verkaufen\" class=\"loginb\">
</form><br>";
}
?>

</td>
</tr>
<tr>
<td background="../../images/line_down.png" colspan="2">&nbsp;</td>
</tr>
</table>
<p><br>
</p>
</td>
<td background="../../images/td_right.png">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

</body>

</html>


so...

feuervogel
25.11.2005, 20:12:19
wer nicht lesen kann, ist selbst schuld.

im handbuch steht über session_start() (http://www.php.net/manual/de/function.session-start.php) folgendes:

Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.

so wie ich das sehe kommt in loginchk.php aber ne menge html bevor du session_start() aufrufst.

feuervogel
25.11.2005, 20:13:35
Liefere einen Link auf Dein phpinfo oder frage einen Hellseher.

Was für Infos braucht ihr denn ?

war die frage ernst gemeint?

S3Ri0US
25.11.2005, 20:50:51
Hier mal meine PHPInfo

http://www.s3ri-netw0rx.de/phpinfo.php

Version 4.4.1

Register_globals : ON

S3Ri0US
25.11.2005, 20:58:41
wer nicht lesen kann, ist selbst schuld.

im handbuch steht über session_start() (http://www.php.net/manual/de/function.session-start.php) folgendes:



so wie ich das sehe kommt in loginchk.php aber ne menge html bevor du session_start() aufrufst.

Ich kanns auch ganz oben reinmachen... geht auch nich.. und im Adminbereich habs ich in der Loginchk.php an der selben stelle ohne Probleme

feuervogel
25.11.2005, 21:16:06
Ich kanns auch ganz oben reinmachen... geht auch nich.. und im Adminbereich habs ich in der Loginchk.php an der selben stelle ohne Probleme

und auch kein leerzeichen vor dem ersten <?php ? schreib zudem mal in die erste zeile des scripts

error_reporting( E_ALL );

S3Ri0US
25.11.2005, 21:31:48
Ohh mann ne oder ??? :D :D Das kanns doch nich sein... habe vor <?PHP ein Lehrzeichen gehabt... Jetzt GEHTS !!! DANKE !!!

meikel (†)
26.11.2005, 08:56:46
Das kanns doch nich sein... habe vor <?PHP ein Lehrzeichen gehabt...
Lehrzeichen oder Leerzeichen - das ist hier die Frage.

Das kann auch nicht sein. Deinem phpinfo nach hätte es eine Fehlermeldung geben müssen, die Du uns verschwiegen hast.

Eine Fehlermeldung wäre allerdings und tatsächlich ein Lehrzeichen... <g>