funkcia A alebo B

Programovacie jazyky, rady, poradňa...
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

funkcia A alebo B

Príspevok od používateľa saskoo49 »

Nazdar. Vedel by mi niekto poradiť? Neviem ako rozbehať jednu funkciu. V podstate ide o zadanie hesla na prístup - ale potrebuje aby fungovalo viacero hesiel. Kód vyzerá takto:

Kód: Vybrať všetko

<?
$heslo = $_POST['heslo'];
if ($heslo!="HESLO1") 
{
header('Location: login.php');
}
else 
{
setcookie('user', 'gsdgz3FGO', time()+180*60);
header('Location: index.php');
}
?>
Ako by sa dalo spravit aby fungovalo napr. "HESLO1" a "HESLO2" na zapísanie tej cookie?
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa doddo999 »

saskoo49 napísal:Nazdar. Vedel by mi niekto poradiť? Neviem ako rozbehať jednu funkciu. V podstate ide o zadanie hesla na prístup - ale potrebuje aby fungovalo viacero hesiel. Kód vyzerá takto:

Kód: Vybrať všetko

<?
$heslo = $_POST['heslo'];
if ($heslo!="HESLO1") 
{
header('Location: login.php');
}
else 
{
setcookie('user', 'gsdgz3FGO', time()+180*60);
header('Location: index.php');
}
?>
Ako by sa dalo spravit aby fungovalo napr. "HESLO1" a "HESLO2" na zapísanie tej cookie?
napriklad takto:

Kód: Vybrať všetko

if (($heslo!="HESLO1")||($heslo!="HESLO2")) 
pri viacerych heslach pouzit array() alebo switch :)
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: funkcia A alebo B

Príspevok od používateľa saskoo49 »

ked použijem ten kod tak nefunguje žiadne heslo :)

Kód: Vybrať všetko

<?
$heslo = $_POST['heslo'];
$pass=array 
( 
'heslo1', 
'heslo2', 
); 

if ($heslo!= $pass) 
{
header('Location: login.php');
}
else 
{
setcookie('user', 'gsdgz3FGO', time()+180*60);
header('Location: index.php');
}
?>
ked to pužijem takto, tak tiez nefunguje žiadne heslo. ako by sa to ešte dalo?
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa jorg22 »

Nemozes takto porovnavat premennu s polom

Kód: Vybrať všetko

if(!in_array($heslo, $pass))
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: funkcia A alebo B

Príspevok od používateľa saskoo49 »

a ako to treba zapisat aby to fungovalo?
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa doddo999 »

napriklad takto:

Kód: Vybrať všetko

<?php

$hesla=array("asd", "bla", "vre");
$nacitane_heslo="asd";
$is=false;

foreach($hesla as $h){
    if($nacitane_heslo===$h){
        $is=true;
    }
}

if($is){
    setcookie('user', 'gsdgz3FGO', time()+180*60);
    header('Location: index.php');
}
else{
    header('Location: login.php');
}

?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa audiotrack »

omg! Ten cyklus je snáď iba vtip

if(in_array($nacitane_heslo,$hesla)){ ... }
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa doddo999 »

audiotrack napísal:omg! Ten cyklus je snáď iba vtip

if(in_array($nacitane_heslo,$hesla)){ ... }
sice k tomuto prikladu sa to moc nevstahuje ale ako by si si predsatavoval pretypovanie v in_array ? :D

Kód: Vybrať všetko

<?php

$hesla=array(9, "bla", "vre");
$nacitane_heslo='9';

if(in_array($nacitane_heslo,$hesla)){
    echo "ok, zhoduje sa z niektorym";
}
else{
    echo "nezhoduje sa zo ziadnym...";
}
?>
ti vrati "ok, zhoduje sa z niektorym" aj ked ma vratit "nezhoduje sa zo ziadnym..."
aj ked moderator ma vzdy pravdu tak mi to nedalo

sorry... opravuje to treti parameter funkcie in_array($nacitane_heslo,$hesla, true)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa audiotrack »

php nie je typovaný jazyk :) Tento tvoj dotaz je zcestný, a typová ekvivalencia ( === ) existuje len pre funkcie ako strpos() kde je rozdiel medzi false a nulou. (nula znamená že sa našlo hneď na začiatku /na nultej pozícii/ a false že nenašlo)
Ale ak chceš teda normálnu odpoveď: nevyrieši to funkcia in_array. Ale to nie je dôvod škrabať sa pravou rukou na lavom uchu len preto, že teoreticky (v praxi nie) môže nastať taký prípad
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa doddo999 »

funkcia in_array() to riesi :) som pozrel manual ale az po odoslani prispvku :(

riesi to pridanim dalsieho parametra in_array($tu_hladaj, $toto_hladaj, true)...
saskoo49
Expert
Expert
Príspevky: 152
Registrovaný: 02 apr 2008, 18:39

Re: funkcia A alebo B

Príspevok od používateľa saskoo49 »

takze ako ma vyzerať kod v ktorom to funguje? :)
doddo999
Light Expert
Light Expert
Príspevky: 72
Registrovaný: 23 júl 2009, 13:14
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: funkcia A alebo B

Príspevok od používateľa doddo999 »

saskoo49 napísal:takze ako ma vyzerať kod v ktorom to funguje? :)

Kód: Vybrať všetko

<?php

$hesla=array("heslo1", "heslo2", "heslo12165468486 :)");
$nacitane_heslo=$_POST["heslo"];

if(in_array($nacitane_heslo, $hesla, true)){
    setcookie('user', 'gsdgz3FGO', time()+180*60);
    header('Location: index.php');
}
else{
    header('Location: login.php');
}

?>
Napísať odpoveď