PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Session variable verschwindet (https://www.php-resource.de/forum/php-developer-forum/42948-session-variable-verschwindet.html)

sven_voecking 10-08-2004 11:22

Session variable verschwindet
 
Hallo,

ich habe folgendes Problem.

Auf Seite 1 kann man einen Kragen auswählen z.b. Berlin, der Wert wird per Form (POST) an die Seite (Grafik.php übergeben, diese blendet nun einen Layer mit dem Kragen ein.

Auf Seite 2. Kann man eine Knopfleiste wählen, das gleiche Schema wie Seite 1. der Name wird an die Grafik.php übergeben. Nun verschwindet aber der zuvor ausgewählte Kragen. Die Variable für den Kragen ist plötzlich leer, obwohl wir uns noch in der selben Session befinden.

Kann mir da vielleicht jemand helfen?

Hier der Quelltext der Grafik.php

<?
include "config.inc.php";
//include "wcreate.php";
$sql = "select * from artikel";
$res = mysql_query($sql,$link) or die(mysql_error());
mysql_error();
while ($ligne = mysql_fetch_object($res))
{
if ($ligne->name == $_SESSION['kragen']) { $kragenm = $ligne->mlink; $kragenn = $ligne->name;}
if ($ligne->name == $_SESSION['knopfleiste']) { $knopfm = $ligne->mlink; $knopfn = $ligne->name;}
if ($ligne->name == $_SESSION['brusttaschenform']) { $brustm = $ligne->mlink; $brustn = $ligne->name;}
if ($ligne->name == $_SESSION['manschette']) { $manschm = $ligne->mlink; $manschm2 = $ligne->mlink2; $manschn = $ligne->name; }
if ($ligne->name == $_SESSION['rueckenteil']) { $rueckenm = $ligne->mlink; $rueckenn = $ligne->name; }

}


?>

<!--knopfleisten mini-->
<div id="<? { echo $knopfn; } ?>"><img src="<? echo $knopfm; ?>" border="0"></div>


<!--Kragen mini-->
<div id="<? { echo $kragenn; } ?>"><img src="<? echo $kragenm; ?>" alt="" border="0"></div>
<div id="trenn"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></div>

Gruß

Sven

mrhappiness 10-08-2004 11:23

ich sehe kein session_start()

das muss auf _jede_ seite

wahsaga 10-08-2004 11:24

Re: Session variable verschwindet
 
Zitat:

Original geschrieben von sven_voecking
obwohl wir uns noch in der selben Session befinden.
auf welchem wege hast du dies verifiziert?


und wo wird deine session eigentlich gestartet, geschieht dies bereits in der config.inc.php?

sven_voecking 10-08-2004 11:31

Session gestartet und verifiziert
 
Hallo,

sorry ich habe natürlich noch die wcreate.php included diese ist dann nicht auskommentiert. Dort wird dann die Sesseion gestartet. Hier der Code

<?
if ($PHPSESSID == NULL) {
session_start();
session_id();
$sid = session_id();
$_SESSION['wid'] = $sid;
echo $_SESSION['wid'];
//echo "drin2<br>phpsid: $PHPSESSID";
//echo "<br>muh: $sid";
include('config.inc.php');
$date = date('Y-m-d-H:i:s');
$sql="INSERT INTO w_korb (wid,ip,timestamp) VALUES ('".$sid."','".$REMOTE_ADDR."','".$date."')";
mysql_query($sql,$link);
} else {
//echo "bla: $PHPSESSID";
};
?>


Verifiziert habe ich es indem ich die Session ID habe ausgeben lassen mir echo.

Gruß

Sven

mrhappiness 10-08-2004 11:33

PHPSESSID ist der name deiner session?

du denkst also, wenn du die session einmal gestartet hast, in $PHPSESSID also etwas drinsteht, dann musst du die sesion nie wieder starten?

schreibe als allerersten befehl mal session_start();
_ohne_ es abhängig von irgendwas zu machen

sven_voecking 10-08-2004 12:12

ich habe die wcreate so umgeschrieben (auskommentiert).

nun setzt er auch die variable für den Kragen nicht mehr.

Inhalt wcreate.php

<?
//if ($PHPSESSID == NULL) {
session_start();
session_id();
$sid = session_id();
$_SESSION['wid'] = $sid;
echo $_SESSION['wid'];
//echo "drin2<br>phpsid: $PHPSESSID";
//echo "<br>muh: $sid";
include('config.inc.php');
$date = date('Y-m-d-H:i:s');
$sql="INSERT INTO w_korb (wid,ip,timestamp) VALUES ('".$sid."','".$REMOTE_ADDR."','".$date."')";
mysql_query($sql,$link);
//} else {
//echo "bla: $PHPSESSID";
//};
?>


Inhalt 1.php (startseite)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?
include "config.inc.php";
include "wcreate.php";
$sql = "select * from artikel where kategorie = 'kragen'";
$res = mysql_query($sql,$link) or die(mysql_error());
mysql_error();
$i = "0";
while ($ligne = mysql_fetch_object($res))
{
$i++;
$kragenlink[$i] = $ligne->link;
$kragenname[$i] = $ligne->name;
}
?>
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="cssjss/akte13.css">
<title>Kragen</title>
</head>

<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
<!--Rahmen-->
<div id="rahmenhemd"><img src="images/rahmen.gif" alt="" width="201" height="382" border="0"></div>
<!--Hemdform-->
<div id="hemdform"><img src="images/Frontansicht.gif" width="170" height="229" alt="" border="0"></div>
<!--Kragen mini-->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><img src="images/blank.gif" width="1" height="20" alt="" border="0"></td>
</tr>
<tr>
<td><img src="images/blank.gif" width="260" height="1" alt="" border="0"></td>
<td><!-- Beginn Tabelle Kragen-->
<table border="0" cellspacing="0" cellpadding="0" width="520">
<!--Anfang Kategorie-->
<tr>
<td colspan="3" class="kategorie">&nbsp;Kragen</td>
</tr>
<!--Ende Kategorie-->
<!--Beginn Datensatz Kragen-->
<tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>
<tr>
<td colspan="3" class="text"><br>&nbsp;Wir beginnen nun mit der Auswahl des Kragens. Je nachdem für welchen &nbsp;Zweck Sie Ihr Hemd konfigurieren wählen sie bitte den Kragen aus.<br><br></td>
</tr>
<tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>
<tr>

<?
$i2 = "0";
$i3 = "0";
while ($i2 < $i) {
$i3++;
$i2++;
?>

<td align="center" ><form action="shop.php?id=22" method="post">
<INPUT TYPE="IMAGE" NAME="Vorderteil" SRC="<? echo $kragenlink[$i2]; ?>" BORDER="0" /><input type="hidden" value="<? echo $kragenname[$i2]; ?>" name="uebergabe"/></form></td>
<td class="vabstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
<?
if (!$kragenlink[$i2+1] && $i3!=2) {
?>
</tr>
<tr>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2]; ?></td>
<?
}
if ($i3 == "2")
{
while ($i3 > "0")
{

?>
</tr>
<tr>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2-"1"]; ?></td>
<td class="vabstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2]; ?></td>
</tr><tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>

<?
$i3 = "0";
}
}


}
?>
<!--Ende Datensatz Kragen-->
</table>
<!--Ende Tabelle Kragen-->
</td>
</tr>
</table>
<!-- Ende Aussentabelle !-->





</body>
</html>

mrhappiness 10-08-2004 12:14

Zitat:

Original geschrieben von sven_voecking
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?
include "config.inc.php";
include "wcreate.php";

Zitat:

Original geschrieben von http://www.php.net/session-start
If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

Abraxax 10-08-2004 12:15

OffTopic:
@sven_voecking
das forum hat so schicke php-tags, die man auch nutzen sollte/muss! :teach:

und achte auch auf die zeilenumbrüche!

sven_voecking 10-08-2004 12:36

Sorry,

ich bin noch recht neu hier und werde dann zukünftig die Funktionen nutzen.

By the way, das Problem ist nicht das ich keine Session ID bekomme, die ist vorhanden und bleibt auch die ganze Session über die selbe.

Das Problem ist das wenn ich eine Session Variable übergeben habe und dann eine zusätzliche setze, die erste plotzlich verschwunden oder leer ist.

Gruß

Sven

Abraxax 10-08-2004 12:41

Zitat:

Original geschrieben von sven_voecking
ich bin noch recht neu hier und werde dann zukünftig die Funktionen nutzen.
fein. dann kannst du direkt anfangen die edit-funktion zu testen, um deinen code entsprechend zu formatieren.

sven_voecking 10-08-2004 13:05

Anbei die Inhalte der Dateien, ich hoffe das ist so O.K.

Inhalt wcreate.php

PHP-Code:

<?
//if ($PHPSESSID == NULL) { 
session_start(); 
session_id();
$sid session_id();
$_SESSION['wid'] = $sid;
echo 
$_SESSION['wid'];
//echo "drin2<br>phpsid: $PHPSESSID";
//echo "<br>muh: $sid";
include('config.inc.php');
$date date('Y-m-d-H:i:s');
$sql="INSERT INTO w_korb (wid,ip,timestamp) VALUES ('".$sid."','".$REMOTE_ADDR."','".$date."')";
mysql_query($sql,$link);
//} else {
//echo "bla: $PHPSESSID";
//};
?>

Inhalt 1.php (Startseite)

PHP-Code:

<? 
include "config.inc.php";
include 
"wcreate.php"
$sql "select * from artikel where kategorie = 'kragen'";
$res mysql_query($sql,$link) or die(mysql_error());
mysql_error();
$i "0";
while (
$ligne mysql_fetch_object($res))
{
$i++;
$kragenlink[$i] = $ligne->link;
$kragenname[$i] = $ligne->name;
}
?>
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="cssjss/akte13.css">
<title>Kragen</title>
</head>

<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
<!--Rahmen-->
<div id="rahmenhemd"><img src="images/rahmen.gif" alt="" width="201" height="382" border="0"></div>
<!--Hemdform-->
<div id="hemdform"><img src="images/Frontansicht.gif" width="170" height="229" alt="" border="0"></div>
<!--Kragen mini-->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><img src="images/blank.gif" width="1" height="20" alt="" border="0"></td>
</tr>
<tr>
<td><img src="images/blank.gif" width="260" height="1" alt="" border="0"></td>
<td><!-- Beginn Tabelle Kragen-->
<table border="0" cellspacing="0" cellpadding="0" width="520">
<!--Anfang Kategorie-->
<tr> 
<td colspan="3" class="kategorie"> Kragen</td>
</tr>
<!--Ende Kategorie-->
<!--Beginn Datensatz Kragen-->
<tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>
<tr>
<td colspan="3" class="text"><br> Wir beginnen nun mit der Auswahl des Kragens. Je nachdem für welchen  Zweck Sie Ihr Hemd konfigurieren wählen sie bitte den Kragen aus.<br><br></td>
</tr>
<tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>
<tr>

<? 
$i2 
"0";
$i3 "0";
while (
$i2 $i) {
$i3++;
$i2++;
?>

<td align="center" ><form action="shop.php?id=22" method="post">
<INPUT TYPE="IMAGE" NAME="Vorderteil" SRC="<? echo $kragenlink[$i2]; ?>" BORDER="0" /><input type="hidden" value="<? echo $kragenname[$i2]; ?>" name="uebergabe"/></form></td>
<td class="vabstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
<? 
if (!$kragenlink[$i2+1] && $i3!=2) { 
?>
</tr>
<tr>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2]; ?></td>
<?

if (
$i3 == "2"
{
while (
$i3 "0")
{

?>
</tr>
<tr>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2-"1"]; ?></td>
<td class="vabstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
<td align="center" class="bezeichnung"><? echo $kragenname[$i2]; ?></td>
</tr><tr>
<td colspan="3" class="habstand"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></td>
</tr>

<?
$i3 
"0";
}
}


}
?> 
<!--Ende Datensatz Kragen-->
</table>
<!--Ende Tabelle Kragen-->
</td>
</tr>
</table>


Inhalt grafik.php

PHP-Code:

<?
include "config.inc.php";
include 
"wcreate.php";
$sql "select * from artikel";
$res mysql_query($sql,$link) or die(mysql_error());
mysql_error();
while (
$ligne mysql_fetch_object($res))
{
if (
$ligne->name == $_SESSION['kragen']) { $kragenm $ligne->mlink$kragenn $ligne->name;}
if (
$ligne->name == $_SESSION['knopfleiste']) { $knopfm $ligne->mlink$knopfn $ligne->name;}
if (
$ligne->name == $_SESSION['brusttaschenform']) { $brustm $ligne->mlink$brustn $ligne->name;}
if (
$ligne->name == $_SESSION['manschette']) { $manschm $ligne->mlink$manschm2 $ligne->mlink2$manschn $ligne->name; }
if (
$ligne->name == $_SESSION['rueckenteil']) { $rueckenm $ligne->mlink$rueckenn $ligne->name; }

}

 
?>

<!--Rahmen-->
<div id="rahmenhemd"><img src="images/rahmen.gif" alt="" width="201" height="382" border="0"></div>

<!--Hemdform-->
<div id="hemdform"><img src="images/Frontansicht.gif" width="170" height="229" alt="" border="0"></div>

<!--knopfleisten mini-->
<div id="<? { echo $knopfn; } ?>"><img src="<? echo $knopfm?>" border="0"></div>


<!--Kragen mini-->
<div id="<? { echo $kragenn; } ?>"><img src="<? echo $kragenm?>" alt="" border="0"></div>
<div id="trenn"><img src="images/blank.gif" width="1" height="1" alt="" border="0"></div>

<!--tasche mini-->
<div id="<? if (isset($brustm)) { echo $brustn; } ?>"><img src="<? echo $brustm?>" alt="" border="0"></div>


Inhalt config.inc.php

PHP-Code:

<?
$db 
"blabla";
$link = @mysql_connect("localhost""blabla""") OR die(mysql_error());
mysql_select_db($db$link);
?>


goth 10-08-2004 13:18

Mag sein es ist zu warm ... mag sein das mich Dein abstruser Programmierstil verwirrt ... aber wo wurde noch gleich der "Kragen" einer Session-Variablen zugeordnet ... ?!

mrhappiness 10-08-2004 13:21

da, wo auch all die anderen session-variablen zugeordnet wurden...

in seinem kopf und nirgendwo sonst...

goth 10-08-2004 13:23

Das ist doch mal was ... ;)

sven_voecking 10-08-2004 14:45

Wenn man auf einen Kragen klickt, dann wird via Form mit POST der Name an die shop.php übergeben.

shop.php

PHP-Code:

<?
/* Shop.php */
$id1 $GET_['id'];
if (!isset(
$id)) { $id 3; }
include 
$id .".php";
?>


Die Session Variable wir din der grafik.php gesetzt

PHP-Code:

include "config.inc.php";
include 
"wcreate.php";
$sql "select * from artikel";
$res mysql_query($sql,$link) or die(mysql_error());
mysql_error();
while (
$ligne mysql_fetch_object($res))
{
if (
$ligne->name == $_SESSION['kragen']) { $kragenm $ligne->mlink$kragenn $ligne->name;}
if (
$ligne->name == $_SESSION['knopfleiste']) { $knopfm $ligne->mlink$knopfn $ligne->name;}
if (
$ligne->name == $_SESSION['brusttaschenform']) { $brustm $ligne->mlink$brustn $ligne->name;}
if (
$ligne->name == $_SESSION['manschette']) { $manschm $ligne->mlink$manschm2 $ligne->mlink2$manschn $ligne->name; }
if (
$ligne->name == $_SESSION['rueckenteil']) { $rueckenm $ligne->mlink$rueckenn $ligne->name; }

}

 
?> 

Mit dem Programmierstil habt ihr sicherlich recht, aber ich habe auch nicht behauptet das ich das super kann. Ich bin noch in der Anfangsphase und lasse mich gerne eines besseren belehren.

Dafür schreibe ich in ein Forum.

Aber wenn Kritik kommt dann bitte nur konstruktive, denn sagen das alles "Kacke" ist, das kann jeder.

Das Kunstück ist gegenvorschläge zu machen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:26 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG