isset($_SESSION['WERT']) ist false

Wolfsbein

Erfahrenes Mitglied
[DONE] isset($_SESSION['WERT']) ist false

Erledigt. Ursache: Dummheit.
PHP:
$buy = ' ';
// is bakset empty?
if (isset($_SESSION['ORDERS'])) {
    		
    $buy = 'blub';
} 
    
$old = array('{--BLA--}', '{--BUY--}');
$new = array(str_replace('{--ENTRY--}', $basketEntry, $basketTemplate), $buy);
echo str_replace($old, $new, $template);
Folgendes Problem: steht in der Sessionvariable irgendwas drin, wird der Code korrekt ausgefuehrt und in der Ausgabe habe ich blub. Ist die Variable aber gar nicht gesetzt, so ist in der Ausgabe {--BUY--} enthalten. Logisch erscheint mir das nicht. Also entweder habe ich gerade wieder ein riessen Brett vorm Kopf, oder habe was in PHP nicht verstanden :(. Danke fuer Tipps.
 
Zuletzt bearbeitet:
Hi,

woher weist du, das die Ausgabe aus der Session kommt? Wenn du Session-Vars deklarierst, muss dies ja zuvor irgendwo erfolgen. Wenn das jedoch nicht passiert, kann eine Session keine Variable mitführen.
 
Ich versteh die Frage jetzt nicht. Ich ueberpruefe ob $_SESSION['ORDERS'] ueberhaupt existiert. Tut es das, so wird {--BUY--} durch $buy ersetzt. Existiert es nicht, so wird {--BUY--} ueberhaupt nicht ersetzt, sollte aber durch $buy = ' ' ersetzt werden.
Von der Codelogik her muesste in $buy dann {--BUY--} stehen. Das tut es aber mit Sicherheit nicht.
 
Wolfsbein hat gesagt.:
Ich versteh die Frage jetzt nicht. Ich ueberpruefe ob $_SESSION['ORDERS'] ueberhaupt existiert. Tut es das, so wird {--BUY--} durch $buy ersetzt. Existiert es nicht, so wird {--BUY--} ueberhaupt nicht ersetzt, sollte aber durch $buy = ' ' ersetzt werden.
Von der Codelogik her muesste in $buy dann {--BUY--} stehen. Das tut es aber mit Sicherheit nicht.
########################################################################


Würde es mit dieser Version machen!


// is bakset empty?
if (isset($_SESSION['ORDERS'])) {

$buy = 'blub';

}
else {
$buy = ' ';

}

Hoffe ich konnte helfen.
 
saila hat gesagt.:
meinte nichts anderes. Prüfen ob Wert überhaupt vorhanden.
Wie soll das aussehen?
@RS9999: Das habe ich schon versucht. Die Logik wird dadurch auch nicht geandert. Was ich nicht verstehe ist warum PHP so vorgeht. Selbst wenn der Interpreter bei meiner if Abfrage komplett versagt und irgendwas ueberspringt oder nicht auswertet muss in $buy ein Wert stehen.
 
Hallo,

so ganz verstehen kann ich Dein Problem noch nicht.
Dafür solltest Du etwas mehr CODE posten um den Zusammenhang
zu verstehen? Oder bitte eine detailliertere Beschreibung!

$buy = 'blub'; definiert die Variable "blub".

$buy = '&nbsp'; definiert die Variable "Leerzeichen". Bei einer "echo- ausgabe" ist also nichts zu sehen und die Zeile um 1 vorgerückt!



Frage ist nun, was bewirkt Dein Leerzeichen?



Gruß


RS9999
 
Ich versteh den ganzen Code auch nicht...bzw. was die Einzelteile miteinander zu tun haben sollen:confused:

Du definierst die Variable $buy ...bloss wo verarbeitest du diese?

Und das str_replace() Strings als Parameter benötigt und keine Arrays, sollte auch klar sein.
 
Sven Mintel hat gesagt.:
Und das str_replace() Strings als Parameter benötigt und keine Arrays, sollte auch klar sein.
Seit PHP 4.0.5 kann jeder Parameter von str_replace() auch ein Array sein (http://de.php.net/str_replace).
Ich definiere eine Variable $buy, deren Wert in einem Template die Zeichenfolge {--BUY--} ersetzen soll. Im Normalfall eben 'blub'. Wenn aber die Sessionvariable ORDERS nicht existiert, so moechte ich $buy nur ein Leerzeichen zuweisen. Verwendete wird $buy in der vorletzten Zeile, weil Sven gefragt hat :D. Mein Problem ist dass mein Template bei der Ausgabe, letzte Zeile, im Ersten Fall 'blub' enthaelt. Nur im anderen Fall, der in dem die if Abfrage false (oder eben irgend einen Fehler, der trotz error_reporting(E_ALL) nicht ausgegeben wird) ist wird an der entsprechenden Stelle kein Leerzeichen ausgegeben, sondern das {--BUY--} bleibt in der Ausgabe stehen. Ich wuesste nicht, wie ich das noch anders beschreiben sollte, sorry.
 
Oh..das mit den Arrays bei str_replace() war mir neu...naja PHP 4.0.5 gibts ja auch noch nicht so lange :suspekt: :rtfm:

Das $buy in der vorletzten Zeile hat der FF verschluckt(hab die Scrollbar nicht bemerkt:-))

Ich mach wohl lieber ein Schläfchen :-(
 
Zurück