Autor Zpráva
gardener
Profil
Zdravím, snažím se napsat jednoduchý skript na autorizaci a chtěl bych se zeptat jestli někdo netuší,kde mám zatím chybu,měla by být ve svýrazněném řádku, konkrétně něco s logickými operátory and, několikrát jsem to kontroloval ale nic jsme neobjevil, tak se ptám raději tu..

Tak s těmi operátory nevím,nevím debug na mě vyhodil,že volám nedefinovanou fci..
Call to undefined function admin() in C:\xampp\htdocs\otevrena_naruc\web\naruc\admin\layout.php on line 10

Děkuji za každou radu
<?php
//nejdříve si nastavíme heslo a login

$tajne_heslo='admin';
$tajne_jmeno='admin';

//nejprve zkontrolujeme jestli byl odeslán formulář
if((isset($_POST['ok']))and(empty($_POST['heslo']))and(empty($_POST[' jmeno'])))
die('Nebyla zadána vstupní data');
elseif (($_POST['heslo'](!$tajne_heslo))and($_POST['jmeno'](!$tajne_jmeno)))
echo ('Nebyl zadán správný login,ověř jestli není zapnutý CAPS LOCK');
else(($_POST['heslo']==$tajne_heslo)and($_POST['jmeno']==$tajne_jmeno ))

?>
Medvídek
Profil
 elseif (($_POST["heslo"]!=$tajne_heslo) OR ($_POST["jmeno"]!=$tajne_jmeno)) 
gardener
Profil
to je ale nějaké zvláštní ne?To and by tam mělo jít použít,aby byli splněny obě dvě podmínky naráz..takto by stačila pouze jedna z nich nebo se pletu?
Měsíček
Profil
ne, není na tom zvláštního nic ..

$_POST["heslo"] != $tajne_heslo 
můžeš přeložit jako:

Vezmi obsah s globální proměnné heslo a porovnej ho s proměnnou $tajne_heslo jestliže se neshodují (!=) tak jdi dál.

To znamená, že tam musíš dát porovnávací operátor.
nightfish
Profil
gardener
To and by tam mělo jít použít,aby byli splněny obě dvě podmínky naráz..takto by stačila pouze jedna z nich nebo se pletu?
kontroluješ jméno a heslo a ten zvýrazněný if kontroluje, zda-li je alespoň jedna z hodnot jiná, než má být (což je předpoklad pro to, aby tě nepřihlásil) - takže použití OR místo AND je na místě

Měsíček
imho gardener narážel na změnu logické spojky, ne na operátory

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0