| Autor | Zpráva | ||
|---|---|---|---|
| david22 Profil * |
#1 · Zasláno: 30. 5. 2014, 00:50:16
Ahoj, potřeboval bych vysvětlit co je zde špatně už fakt nevím..V jakém pořadí to běží..
if(strtolower($_POST['jmeno']) == "mojejmeno")
{
echo '<script>
var pristup = "ne";
var pass = prompt("heslo:","");
var heslo = "mojeheslo";
if(pass == heslo)
{
pristup = "ok";
}
</script>';
}
else {
$uzivatel = true;
}
if("<script>document.write(pristup);</script>" == "ok")
{
echo "provede skript dale.."; echo "<script>document.write(pristup);</script>";
} else {
echo "neprovede"; echo "<script>document.write(pristup);</script>";
}výstup: "ok", ale dojde to do else bloku! zkoušel jsem to i házet do php proměnné a přetypovávat, ale nic.. nejhorší je natom, že když je hodnota "ok" tak i se to dostane do bloku else a vypíše to tam tam i hodnotu "ok", ale jak je to možné když ta hodnota odpovídá proč to skočí do else bloku? Hraje tam roli, že se vykoná něco dříve nebo nák tak..? |
||
| Alphard Profil |
#2 · Zasláno: 30. 5. 2014, 01:02:26
Už jste zřejmě zpozoroval, že to nefunguje tak, jak by se „dalo“ očekávat. PHP script se vždy provede jako první na serveru. První PHP podmínka se vyhodnotí v závislosti na formulářové hodnotě. Druhá PHP podmínka vždy skočí do else větve, protože ty 2 řatězce se nebudu nikdy rovnat.
Výstup kódu si můžet prohlédnout, když si v prohlížeči zobrazíte zdrojový html kód. V něm už je jen javascript a ten se provede až v prohlížeči uživatele. |
||
| david22 Profil * |
#3 · Zasláno: 30. 5. 2014, 01:10:36
Děkuji za odpověd. Takže když je to tak - takže využít Ajax? Nebo je tu ještě nějaké další řešení? Cíl skriptu je po zadání určitého jména vyzvat uživatele k zadání hesla pomocí JS (prompt) a podle vyhodnocení vykonat zápis do DB.
|
||
| Alphard Profil |
#4 · Zasláno: 30. 5. 2014, 01:21:26
Není to zbytečné? Tohle navíc vypadá jako akce, která by mělá být funkční i bez js.
Nestačilo by třeba skrýt pole pro heslo, při vyplnění (čehokoliv) jako jména zobrazit druhé pole a na serveru si to potom ověřit? |
||
|
Časová prodleva: 12 let
|
|||
0