PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktualisierungsrate & session id übergabe


Sandra
23.04.2007, 12:33:56
Hallo,

das Problem: Mein Warenkorb zeigt nicht sofort das bestellte Produkte nach dem Bestellen an.

Deshalb hab ich eine meta aktualisierung eingebaut. Die Funktioniert, aber die session id wird nicht mit übergeben.

Alle Versuche die session mit zu übergeben scheiterten. Hier der code:
<?php
$Aktualisierungsrate = 10; //in Sekunden

?>

<meta http-equiv="refresh" content="<?php echo$Aktualisierungsrate; ?>; URL=<?php echo$_SERVER['PHP_SELF']; ?>">

hier der link für die session id übergabe, der nicht funktioniert<?php echo session_name()."=".session_id()?>

weiß jemand die Antwort? DANKE
Sandra

Sandra
23.04.2007, 17:55:55
Hallo,

Fehler gefunden- absoluter Pfad muß angegeben werden.

<meta http-equiv="refresh" content="<?php echo $Aktualisierungsrate; ?>; URL=http://www.hierwarderfehler.php?<?php echo session_name()."=".session_id()?>">

Sandra
23.04.2007, 18:46:17
Hallo,

die Idee mit dieser Art von Refresh iat garnicht toll, sehr nervig alle 10 sekunden...

Wie kann ich jetzt nur einen Refresh machen, wenn mein Warenkorb einen neuen Eintrag hatte?

Hier die Scripts:
Refresh:
<?php
$Aktualisierungsrate = 10; //in Sekunden

?>

<meta http-equiv="refresh" content="<?php echo $Aktualisierungsrate; ?>; URL=http://www.....php?<?php echo session_name()."=".session_id()?>">


warenkorb include
<?php
$anz_daten = mysql_num_rows ($rs_korb);
if ($anz_daten > 0)
{
include ("wk.php");
}
?>

Eintrag in den Warenkorb:

<?php
$_POST['id_wkorb']=".session_id().";
$id_wkorb=$_POST['id_wkorb'];
$anzahl=$_POST['anzahl'];
$id_art=$_POST['id_art'];
$size2=$_POST['size2'];

mysql_select_db($db);

$query_upload = sprintf("INSERT INTO shop_wkorb(id_wkorb,id_art,anzahl,size2)
VALUES ('".session_id()."', $id_art, $anzahl, $size2)");

$upl_insert = mysql_query($query_upload, $db) or die(mysql_error());

?>

Hat jemand eine Idee dazu?
Danke
Sandra

meikel (†)
23.04.2007, 22:13:08
das Problem: Mein Warenkorb zeigt nicht sofort das bestellte Produkte nach dem Bestellen an.
Und warum tut er das nicht?

Wie sieht das Script zum Eintragen aus, wie sieht das Script zum Lesen des Warenkorbes aus und wie sieht Dein Session Mechanismus aus.

Du speicherst doch hoffentlich den Warenkorb erst mal in einer Session und müllst mit den Warenkörben "Wühlkundschaft, die nix kauft" nicht auch noch die Datenbank voll...

Deshalb hab ich eine meta aktualisierung eingebaut.
Blödsinn. Mit solchen Krücken beseitigst Du das Problem nicht.
Selbst wenn Du Morphium gegen Zahnschmerzen nimmst, bleibt das Loch Richtung Nerv des Kuchenzahns immer noch aktiv...

Sandra
23.04.2007, 22:43:52
Hallo,

ja so sehe ich das auch- dieser Refresh bringt mich nicht weiter.
1. Ja es ist ein virtueller Warenkorb mit gespeicherter session id

2. das Formular zum Eintragen in den Warenkorb:
<form id="form1" name="form1" method="post" action="shop1.php?id=<?php echo $row_rs_details['id_ar']; ?>">
<label>
<input name="anzahl" type="text" id="anzahl" size="4" />
</label>
<input type="hidden" name="<?php echo session_name()?>" value="<?php echo session_id()?>" />
<input name="image" type="image" src="bb/wkorkein.gif" alt="Artikel in den Warenkorb legen" />
<p>
<label>
<input name="id_korb" type="hidden" id="id_korb" />
<input name="size2" type="hidden" id="size2" value="<?php echo $row_rs_details['id_size']; ?>" />
<input name="id_wkorb" type="hidden" id="id_wkorb" value="<?php echo $row_rs_korb['id_wkorb']; ?>" />
<input name="id_art" type="hidden" id="id_art" value="<?php echo $row_rs_details['id_ar']; ?>" />
</label>
</p>
</form>

danach der Eintrag in die db, wobei die session id in die db geschrieben wird:

<?php
$_POST['id_wkorb']=".session_id().";
$id_wkorb=$_POST['id_wkorb'];
$anzahl=$_POST['anzahl'];
$id_art=$_POST['id_art'];
$size2=$_POST['size2'];

mysql_select_db($database_itc, $itc);

$query_upload = sprintf("INSERT INTO shop_wkorb(id_wkorb,id_art,anzahl,size2)
VALUES ('".session_id()."', $id_art, $anzahl, $size2)");

$upl_insert = mysql_query($query_upload, $itc) or die(mysql_error());



?>

3. der Warenkorb wird über include eingebunden, falls sich etwas darin befindet zu dieser session:

<?php
$anz_daten = mysql_num_rows ($rs_korb);
if ($anz_daten > 0)
{
include ("wk.php");
}
?>

4. der warenkorb selbst:

<?php do { ?>
<tr>
<td width="423" height="97"><div align="left">
<?php echo $row_rs_korb['anzahl']; ?> x <?php echo $row_rs_korb['titel']; ?>&nbsp;<?php
$size_anzeige = $row_rs_korb['size2'];
$size_anzeige2 = $row_rs_korb['size3'];
if ($size_anzeige != 6)
{
echo" Größe $size_anzeige2 ";
}
?>
</div>
<p>Einzelpreis: <?php echo ($row_rs_korb['netto']+($row_rs_korb['netto']*$row_rs_korb['mwst']/100));?> Euro= Summe <?php echo (($row_rs_korb['netto']+($row_rs_korb['netto']*$row_rs_korb['mwst']/100))*$row_rs_korb['anzahl']);?> Euro</p> </td>
<td width="155"><form id="form3" name="form3" method="post" action="shop1.php?<?php echo session_name()."=".session_id()?>&id=<?php echo $row_rs_details['id_ar']; ?>">
<div align="right"></div>
<label>
<div align="right">
<input name="lo" type="hidden" id="lo" value="<?php echo $row_rs_korb['id_art']; ?>" />
<input name="image" type="image" src="bb/artikello.gif" alt="Artikel aus dem Warenkorb entfernen" />
</div>
</label>
</form>
<div align="right"><a href="shop4.php?<?php echo session_name()."=".session_id()?>&amp;id=<?php echo $row_rs_korb['id_korb']; ?>" target="_self"><img src="bb/anzahl.gif" alt="Artikelanzahl verändern" border="0" /></a></div></td>
</tr>

<tr>
<td>&nbsp;</td>
<?php } while ($row_rs_korb = mysql_fetch_assoc($rs_korb)); ?>
<td><div align="left"> </div></td>
</tr>
<tr>
<td><div align="left">
<?php
$query = "SELECT SUM((netto+(netto*mwst/100))*anzahl)AS Summe FROM shop_wkorb,shop_preise,shop_artikel WHERE id_wkorb = '".session_id()."'AND shop_wkorb.id_art = shop_preise.id_ar AND shop_wkorb.id_art = shop_artikel.id_artikel AND shop_wkorb.`size2` = shop_preise.`size`";
$result = mysql_query($query);

while ($zeile = mysql_fetch_object($result)) {
$Summe = $zeile->Summe;
echo "Gesamtpreis: $Summe Euro ( incl.MWST, zuzügl. Versandkosten)";
}

?>


Habe mich mit header refresh probiert am ende des Eintrages in den Warenkorb- hat bisher nicht funktioniert

Jetzt vielleicht eine Idee?

Danke

Sandra

Heinrich
24.04.2007, 08:30:45
Mein Warenkorb steckt im Array $_SESSION['warenkorb']. Hier meine warenkorb.php:
if (!isset($_SESSION['warenkorb']))
{
$_SESSION['warenkorb'] = array();
}

// Artikel in Warenkorb legen (wenn nicht schon drin)

$id = $_GET['id'];
if(isset($id)) {
if (in_array($id, $_SESSION['warenkorb'])) {
echo "<p><b>Der Artikel ist bereits im Warenkorb!</b></p><hr>";
}
else {
$_SESSION['warenkorb'][] = $id;
}
}

// Artikel aus Warenkorb entfernen

if(isset($_GET['idw'])) {
$idw = $_GET['idw'];
$x = array_search($idw, $_SESSION['warenkorb']);
if($x !== false) {
unset($_SESSION['warenkorb'][$x]);
}
}

// Warenkorb anzeigen

$warenkorb = $_SESSION['warenkorb'];

if(empty($warenkorb)) {
echo "Keine Artikel im Warenkorb";
}
else {

echo "<table width='100%'>";

foreach ($warenkorb as $waren) {
echo "<tr>";

$korb = mysql_query ("SELECT id, linie, farbe, preis FROM sm_schmuck WHERE id = '$waren' ORDER BY linie ASC;");
while ($zeile = mysql_fetch_object($korb)) {
$id = $zeile->id;
$lin = $zeile->linie;
$far = $zeile->farbe;
$pre = $zeile->preis;
echo "<td width='70%'>".$lin.", ".$far." (".$pre.")</td>";
echo "<td width='30%'><a class='cont' href='".$_SERVER['PHP_SELF']."?idw=".$id."&bild=".$bild."'>Entfernen</a></td>";
}
echo "</tr>";
} // Ende foreach
echo "</table>";
}