php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.04.2006, 13:10  
Erfahrener Benutzer
 
Registriert seit: 12.07.2005
Beiträge: 279
max-dhom
max-dhom eine Nachricht über MSN schicken
Standard Ewiges Problem mit den Sessions / Warenkorb

Hallo zusammen,

mal wieder ein Problem mit den Sessions! Ich möchte mir einen Webshop bauen, und irgenwie klappt das nicht so ganz!

Code:
if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
        session_start();
	$_SESSION["warenkorb"] = array("000000");
Damit eröffne ich eine Session, und eben diese Warenkorb-Session, in die ich zum Test jetzt mal die Artikelnummer "000000" einfüge.

Dann habe ich eben eine Produktseite, in der ganz unten ein Link steht, der dann auf die "bestellen.php" verweist. Flgende sieht so aus:



Code:
<?php

	$_SESSION["warenkorb"][] = $art;

?>
"$art" ist die Artikelnummer die über die URL mitgeliefert wurde!
Wenn ich jetzt aber danach den Warenkorb nochmal auslese, steht leider nur "000000" drin, nichts von den 5ern!

Was mache ich falsch? Könnt ihr das aus meinen Auszügen nachvollziehen?

Grüße,
Max
max-dhom ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.04.2006, 13:16  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

session_start() immer und un-bedingt oben rein. Und, wie kommt $art zustande?

Basti
Basti ist offline  
Alt 13.04.2006, 13:36  
Erfahrener Benutzer
 
Registriert seit: 12.07.2005
Beiträge: 279
max-dhom
max-dhom eine Nachricht über MSN schicken
Standard

Durch den Link

Code:
<a href=\"index.php?section=admin&site=best&anr=$anr\">
(Hab vorher $art versehentlich geschrieben, ist aber $anr )

Aber im Grunde spielt das ja im moment keine Rolle, weil er ja nicht mal 5555 einträgt, obwohl das nicht mal durch eine Variable überleifert wird!
max-dhom ist offline  
Alt 13.04.2006, 14:30  
Gast
 
Beiträge: n/a
Standard

Keine AHnung, was Du da falsch machst.
Dass es im Prinzip funktioniert, kannst Du mit
PHP-Code:
<?php
session_start
();
if (!isset(
$_SESSION['warenkorb'])) {
    
$_SESSION['warenkorb'] = array();
    
// Testeintrag
    
$_SESSION['warenkorb'][] = '0000';
}

if (isset(
$_GET['anr']) && strlen($_GET['anr'])) {
    
$_SESSION['warenkorb'][] = $_GET['anr'];
}
?>
<html>
    <head>
        <title>session</title>
    </head>
    <body>
        <form method="GET" action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <div>
                anr <input type="text" name="anr" />
                

                <input type="submit" />
            </div>
        </form>
        <div style="background-color:gray;">
            Warenkorb
            

            <?php
            
foreach($_SESSION['warenkorb'] as $eintrag) {
                echo 
$eintrag"
\n"
;
            }
            
?>
        </div>
    </body>
</html>
ausprobieren.
 
Alt 13.04.2006, 14:32  
Erfahrener Benutzer
 
Registriert seit: 12.07.2005
Beiträge: 279
max-dhom
max-dhom eine Nachricht über MSN schicken
Standard

Code:
if (isset($_GET['anr']) && strlen($_GET['anr'])) {
    $_SESSION['warenkorb'][] = $_GET['anr'];
}
kannst du mir den Teil nochmal erklären?

Danke,
Max
max-dhom ist offline  
Alt 13.04.2006, 14:39  
Gast
 
Beiträge: n/a
Standard

"Wenn es $_GET['anr'] gibt (also ein Wert für anr per GET übertragen wurde) und dieser Wert länger als 0 Zeichen ist, dann ..."
 
Alt 13.04.2006, 14:40  
Erfahrener Benutzer
 
Registriert seit: 12.07.2005
Beiträge: 279
max-dhom
max-dhom eine Nachricht über MSN schicken
Standard

hm ja

aber wie komme ich jetzt in meinem Fall weiter

Danke schonmal
Max
max-dhom ist offline  
Alt 13.04.2006, 15:25  
Gast
 
Beiträge: n/a
Standard

Am besten eine IDE samt Debugger installieren und das Skript durchgehen.
bspw www.phpeclipse.de
oder http://www.enginsite.com/php-editor.htm
oder eine der viele anderen verfügbaren
 
Alt 13.04.2006, 15:26  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Anstatt diesem isset() und strlen() kannst du auch !empty() hernehmen.

> aber wie komme ich jetzt in meinem Fall weiter

Ich liste mal ein paar mögliche Fehlerquellen auf:

1. Session wird nicht gestartet/unterbrochen:

Test:
In jedes Skript:
PHP-Code:
<?php
if ('' == session_id()) die('Session laeuft ned!');
?>
Abhilfe:
session_start() in jedes Skript vor der ersten Ausgabe und Weiterleitung

2. Session geht verloren, da die Session-ID nicht mitübertragen wird:

Test:
PHP-Code:
<?php
if (!isset($_SESSION['counter'])) $_SESSION['counter'] = 0;
$_SESSION['counter']++;
print 
$_SESSION['counter'];
?>
Abhilfe:
session.use_trans_sid auf on oder Session explizit an jeden Link hängen und in jedes Formular setzen (Konstante SID);
Vor Weiterleitungen session_write_close() ausführen;

3. Werte kommen im Skript nicht an:

Test:
Werte direkt ausgeben

Abhilfe:
immer via $_GET bzw. $_POST auf die Werte zugreifen:
PHP-Code:
<?php
$foo 
'default value';
if (isset(
$_GET['foo']) $foo $_GET['foo'];
?>
Basti
Basti ist offline  
Alt 13.04.2006, 15:39  
Erfahrener Benutzer
 
Registriert seit: 12.07.2005
Beiträge: 279
max-dhom
max-dhom eine Nachricht über MSN schicken
Standard

Hmm ich habe jetzt folgendes beobachtet:

Wenn ich auf die Produktseite unten folgendes einfüge:
if (isset($_GET['anr']) && strlen($_GET['anr'])) {
$_SESSION['warenkorb'][] = $_GET['anr'];
}
und dann darunter

if(isset($_SESSION["warenkorb"])) {
echo "Warenkorb gesetzt!"; }

else { echo "Kein Warenkorb gesetzt!"; }

echo "<pre>\n";
print_r($_SESSION["warenkorb"]);
echo "</pre>\n";

das hier, dann erscheint endlich das genannte Prdukt im Array!
ABER: Wenn ich jetzt auf ein anderes Produkt gehe, dann ist das erste wieder verschwunden und es steht das 2. drin!
--> Anscheinend geht also das Array beim laden einer neuen Seite wieder verloren! Oder wird es vllt. überschrieben beim laden einer neuen Seite?

Überschreibt der Befehl "$_SESSION["warenkorb"] = array("000000");" das array das vorher da war, und trägt nur noch den Wert "000000" ein?

Max
max-dhom ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Arrays und Sessions max-dhom PHP Tipps 2008 3 18.10.2007 14:05
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
Query was empty bei Warenkorb Shalina PHP Tipps 2006 12 10.06.2006 00:45
warenkorb & mysql Mach!N3 PHP Tipps 2006 16 27.03.2006 21:18
Problem mit sessions heohni PHP Tipps 2006 9 08.01.2006 21:15
Komisches Problem mit sessions FBI PHP Tipps 2007 5 22.11.2005 14:15
Problem mit Login Bereich (Sessions, MySQL) nicobischof PHP Tipps 2005-2 6 19.10.2005 09:54
Problem mit Sessions unter PHP 4.4.0 betrazivis PHP-Fortgeschrittene 1 12.10.2005 19:21
Problem mit Sessions Drago PHP Tipps 2005-2 11 04.10.2005 20:23
Problem mit Sessions bei der Verwendung von flush (Php4) PHP-Fortgeschrittene 0 07.08.2005 00:36
Sessions Problem PHP Tipps 2005 6 02.01.2005 16:03
problem mit sessions aircrash PHP Tipps 2004-2 1 17.12.2004 03:07
Problem mit "Keksen" bei Sessions? PHP-Fortgeschrittene 4 17.09.2004 00:05
PHP Serverpfad Problem mit Sessions PHP Tipps 2004 2 05.08.2004 18:56
Problem mit Sessions !! Cytrix PHP Tipps 2004 9 21.07.2004 23:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
warenkorb session, warenkorb mit session, session warenkorb, warenkorb mit sessions, sessions warenkorb, warenkorb sessions, warenkorb in session, session für warenkorb, warenkorb php session, http://www.php.de/php-tipps-2006/39069-ewiges-problem-mit-den-sessions-warenkorb.html, warenkorb mit session oder mysql, session in php warenkorb, warenkorb mit sessions realisieren, modx warenkorb mit session, php session unterbrochen, php session warenkorb, warenkorb seesion, warenkorb session update, warenkorb mysql, session php warenkorb

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.