[php] strpos nie działa(?)

0

Cześć, mam taki kod:

<?
$_COOKIE["ciacho"];

?>

<html>
<?

if(strpos($ciacho, "wc")>0) $wc=true; else $wc=false;

itd...

Chodzi mi o to, że w cookies mam jakiś łańcuch tekstowy i chcę zobaczyć, czy są w nim określone podłańcuchy no i odpowiednio reagować. Jednak zmienna wc zawsze ma wartość true :|

0
<? $ciacho=$_COOKIE["ciacho"]; ?>
0
konrad.g napisał(a)
<? $ciacho=$_COOKIE["ciacho"]; ?>

Nic z tego. Może pokaże kawałek kodu:

<?
$ciacho=$_COOKIE["ciacho"];

?>

<html>
<?

if((strpos($ciacho, "wc")==0) || (strpos($ciacho, "wc")==false)) $wc=false; else $wc=true;

 
//...odczyt z pliku i takie tam

if(!wc)
{
echo("   <input type=\"radio\" value=\"1\" name=\"ocena\">1");
echo("   <input type=\"radio\" value=\"2\" name=\"ocena\">2");
echo("   <input type=\"radio\" value=\"3\" name=\"ocena\">3");
echo("   <input type=\"radio\" value=\"4\" name=\"ocena\">4");
echo("   <input type=\"radio\" value=\"5\" name=\"ocena\">5");
echo("   <input type=\"radio\" value=\"6\" name=\"ocena\">6");
} else echo("Głos oddany. Thx"); ?>

I zawsze jest napisane, że głos oddany.
Nawet próbowałem usunąć ciasteczko:

setcookie("ciacho")

ale nic to nie dało.

0

ty u mnie działa, może z tym ciągiem co przekazujesz do ciasteczka jest coś nie tak.

0
Juhas napisał(a)

if((strpos($ciacho, "wc")==0) || (strpos($ciacho, "wc")==false)) $wc=false; else $wc=true;

sprawdzasz czy pozycja wc nie jest równa 0 czyli wc nie może być na początku, true więc zgłosi się jeśli ciacho będzie brzmieć np "awc" natomiast "wca" już nie zadziała, poprawnie powinieneś sprawdzać czy strpos($ciacho,'wc')===false (trzy znaki równości oznaczają typ dokładnie taki czyli boolean - nie wiem jak to się nazywa w php)

0
Adamo napisał(a)

sprawdzasz czy pozycja wc nie jest równa 0 czyli wc nie może być na początku, true więc zgłosi się jeśli ciacho będzie brzmieć np "awc" natomiast "wca" już nie zadziała, poprawnie powinieneś sprawdzać czy strpos($ciacho,'wc')===false (trzy znaki równości oznaczają typ dokładnie taki czyli boolean - nie wiem jak to się nazywa w php)

Dostaję parse error.

0

zdaje się że php>=4.06 - co za starocia używasz ? może coś pomyliłem ale chyba bnie

// a jednak php 3, 4 - to może spróbuj coś w stylu
(($pz=strpos($ciacho,'wc'))==false) && ($pz<>0))

0
Adamo napisał(a)

zdaje się że php>=4.06 - co za starocia używasz ? może coś pomyliłem ale chyba bnie

Przejrzałem i parse error miałem gdzie indziej, ale w tej samej linijce(przy zmiennej nie napisałem $).

Ale kurde nadal nic nie działa. Nawet usunąłem cookies z systemu i nic.

Dobra, chyba coś jest nie tak w warunku, gdzie wypisuje albo radiobuttony, albo notkę, że głos już oddany.
Bo po pierwszym warunku(gdzie przypisuje wartość zmiennej $wc) napisałem: $wc=false i niby powinno działać. Ale nie.

0

a masz dalej:

if(!wc)

czy już

if(!$wc)

??

0
Adamo napisał(a)

a masz dalej:

if(!wc)

czy już

if(!$wc)

??

No właśnie też to zauważyłem :/ Jeden glupi znaczek :|
Jakoś się chyba nigdy nie przekonam do php i jego nazewnictwa zmiennych ;)

0
Juhas napisał(a)
Adamo napisał(a)

a masz dalej:

if(!wc)

czy już

if(!$wc)

??

No właśnie też to zauważyłem :/ Jeden glupi znaczek :|
Jakoś się chyba nigdy nie przekonam do php i jego nazewnictwa zmiennych ;)

to działa w dwie strony, ja w c++ sie czasem myle i pisze $zmienna :D (na szczescie kompilator C natychmiast wychwytuje takie zabiegi ;))

1 użytkowników online, w tym zalogowanych: 0, gości: 1