ptasior
(Marcin E Pc)
24 Październik 2008 13:37
#1
Witam!
Mam taki kod:
<?php
$ciag = $_POST['ciag'];
$ciag2 = $_POST['ciag2'];
if ( ($ciag!== 'xxxxx')&&($ciag2!=='yyyyyy') )
{
echo "zzzzz!";
exit;
}
?>
I jest problem, gdy $ciag jest równa xxxxx, a $ciag2 nie jest równa yyyyyy to skrypt i tak wyświetli zzzzz. Czym jest to spowodowane? Czyli wystarczy że jeden warunek jest spełniony, i instrukcja nie zostanie wykonana
Trance
(Trance)
24 Październik 2008 13:57
#2
<?php
$ciag = $_POST['ciag'];
$ciag2 = $_POST['ciag2'];
if ( ($ciag != 'xxxxx')&&($ciag2 != 'yyyyyy') )
{
echo "zzzzz!";
exit;
}
?>
a teraz ??
ptasior
(Marcin E Pc)
24 Październik 2008 15:54
#3
dalej nie działa. Zmienne są stringiem
Trance
(Trance)
24 Październik 2008 16:55
#4
sprawdź czy tekst który wysyłasz w formularzu jest tym czego oczekujesz, u mnie działa
ptasior
(Marcin E Pc)
24 Październik 2008 17:18
#5
Nawet jak zrobiłem tak, już dla pewności:
<?php
$ciag = 'xxxxxh';
$ciag2 = 'yyyyyyb';
if ( ($ciag != 'xxxxx')&&($ciag2 != 'yyyyyy') )
{
echo "zzzzz!";
exit;
}
?>
Działa pokazuję zzzzz!. Ale jak już zrobię tak:
<?php
$ciag = 'xxxxxh';
$ciag2 = 'yyyyyy';
if ( ($ciag != 'xxxxx')&&($ciag2 != 'yyyyyy') )
{
echo "zzzzz!";
exit;
}
?>
To już nie wyświetli zzzzz!, a zmieniłem tylko wartość zmiennej $ciag2, na poprawny, i teraz
($ciag2 != 'yyyyyy')
Przyjmuje wartość false, i tylko jeden warunek jest spełniony, a instrukcja się nie wykonuje. Co jest nie tak?
Trance
(Trance)
24 Październik 2008 19:22
#6
i wszystko działa w porządku:
skoro
$ciag = ‘xxxxxh’;
a w warunku porównujesz z ‘xxxxx’, w sumie z warunku ($ciag != ‘xxxxx’) otrzymujesz 1 (PRAWDA)
zaś
$ciag2 = ‘yyyyyy’; a w warunku porównujesz to z yyyyyy i sprawdzasz czy są różne, nie są więc tutaj otrzymujesz 0 (FaŁSZ)
podsumowując 1 && 0= 0 więc napis nie wyswietli się
czyli wszystko działa ok, moze pomyliłeś && z ||
ptasior
(Marcin E Pc)
24 Październik 2008 21:04
#7
Tak, rzeczywiście w tym tkwił błąd, nie do końca to przemyślałem, i zamiast alternatywy wkradła się koniunkcja. Dzięki za pomoc, temat do zamknięcia