cookie prob bei include...

Trash

Erfahrenes Mitglied
Hallo,
ich habe ine index.php in der alle Dateien includet werden, wenn ich nun in eine Datei die includet werde einen cookie setzen will, so kommt natürlich der headers sent fehler. Nun wenn man sich einloggt (ist auch eine Datei die includet wird) werden der name und die variable $rights übergeben...in der index.php steht nun:

if ($rights)
{
setcookie("jo",$name,time()+3600);
}

nur er setzt KEINEN cookie...

wenn ich es so mache in die if bedingung unter dem cookie befehl folgendes einfüge wird der name aber richtig angezeigt mit dem man sich einloggt, also funzt das eigentlich...

echo "$name";

aber wieso erstellt der keine cookie...hat da jemand eine Lösung ?

danke !
 
du testest auf bool, dh: deine var $rights muss ein int wert sein; damit der cookie gesetzt wird alles außer 0.

gib doch mal per:

Code:
echo "rights: ".$rights;
aus .. was der da sagt?!?

also mach mal if(true) setc...

dann mach der das jedes mal ..
das sollte erst mal klappen!
 
bei deinem echo befehl gibt er aus:


rights: yes

das könnte daran liegen das ich in der form url geschrieben habe:


index.php?site=bla&rights=yes

?
 
Zuletzt bearbeitet:
hmm.. transmitter, ich glaube was du sagst ist falsch.

IMHO ist es eigentlich so, dass die syntax

PHP:
if($rights)

gleich mit

PHP:
if(isset($rights))

steht, wonach es vollkommen egal ist, ob ein boolscher wert oder ein string in der variable steht.

aber vielleicht irre ich micht.
 
nein, es ist nicht falsch was ich sagte!!!

dein vorschlag ist falsch, da die syntax if ( $rights ) nicht gleich ist mit if(isset($rights))

schon die php funktion isset liefert einen boolschen wert zurück!!! also 1 oder 0

bei if ( yes ) überprüft das script ja nix sondern hat keine bedingung, die erfüllt oder nicht erfüllt sein könnte!?!

und ein boolscher wert ist immer ein int!
 
die syntax if ( $rights ) nicht gleich ist mit if(isset($rights))


hm.. folgendes script mit folgendem code kann man hier betrachten

der code:

PHP:
<?php

$variable = "autofahren";
echo $variable;
if($variable) echo  " ist toll";
else echo " verschmutzt die umwelt";

echo "<br><br>-------------<br><br>";

$variable = "mofafahren";
echo $variable;
if(isset($variable)) echo  " ist chillig";
else echo " stört die mitmenschen";

?>

es wird also auch "ist toll" angezeigt, wenn die variable ein string ist. oder irre ich mich immer noch?
 
?? bist du sicher, dass das der orginal code ist von dem script??

1. das läuft bei mir nicht wegen den $variable, weiß ich aber nicht wieso.
2. wenn ich ein script in der art ausführe if ( $var ) dann bekomm ich einen parse error!
 
ja, ich bin mir sicher :p

und auf allen 4 servern, zu denen ich zugang habe, laufen meine scripte, in denen etwas in der art oft vorkommt.
 
nu is gut, brainsorms kram funzt bei mir auch, is nur die frage ob das jetzt das problem löst..........ich nehme an du benutzt ob_start(); und ob_end_flush(); oder ?
 
Zurück