| Autor | Zpráva | ||
|---|---|---|---|
| Jakub Šebík Profil |
#1 · Zasláno: 24. 5. 2011, 18:21:04 · Upravil/a: Jakub Šebík
Dobrý den,
Mám otázku: Jde udělat třeba z tohohle inputu <form action="porovnat.php" method="post"> <input type="text" name="jmeno"> <input type="password" name="heslo"> <input type="submit" name="odeslat"> </form> to, že by nějak porovnal v textovém dokumentu třeba jmeno:heslo? Pokud by se to schodovalo, napsalo by se správné údaje. Pokud ano, mohl by jste mi někdo tento script poskytnout? Děkuji |
||
| Ernie Profil |
#2 · Zasláno: 24. 5. 2011, 18:28:28 · Upravil/a: Ernie
<?php
$jmeno = $_POST["jmeno"];
$heslo = $_POST["heslo"];
$soubor = file("soubor.txt", FILE_IGNORE_NEW_LINES);
for($i=0;$i<count($soubor);$i++)
{
$e = Explode(":", $soubor[$i]);
if($e[0]==$jmeno && $e[1]==$heslo)
{
echo "<i>správné údaje</i>";
break;
}
}
?>Za předpokladu, že máte ve stejné složce soubor.txt, který vypadá nějak takto: jmeno1:heslo1 jmeno2:heslo2 jmeno3:heslo3 |
||
| Jakub Šebík Profil |
#3 · Zasláno: 24. 5. 2011, 18:32:59
Ernie:
Ano, to je přesně ono! Děkuji mnohokrát, moc jste mi pomohl. |
||
| Jakub Šebík Profil |
#4 · Zasláno: 24. 5. 2011, 18:43:04 · Upravil/a: Jakub Šebík
Dobrý den,
omlouvám se že "obnovuji" staré vlákno, ale mám problém.
<?php
$jmeno = $_POST["jmeno"];
$heslo = $_POST["heslo"];
$soubor = file("ulozeno.txt", FILE_IGNORE_NEW_LINES);
for($i=0;$i<count($soubor);$i++)
{
$e = Explode(":", $soubor[$i]);
if($e[0]==$jmeno && $e[1]==$heslo)
{
echo "<i>Správné údaje</i>";
}
else
{
echo "<i>Chybné údaje!</i>";
}
}
?>
Když uživatel zadá špatné údaje, echo ohlásí Chybné údaje!. Ale echo mi to hlásí i když zadám správné údaje. Prosím, opravíte mě kde mám chybu? Děkuji. |
||
| Jakub Šebík Profil |
#5 · Zasláno: 24. 5. 2011, 18:45:48
Již je to vyřešeno, omylem jsem si vymazal break;
|
||
| Ernie Profil |
#6 · Zasláno: 24. 5. 2011, 19:10:24 · Upravil/a: Ernie
Jakub Šebík:
„Již je to vyřešeno, omylem jsem si vymazal break;“ Ovšem jestli je těch jmen a hesel více než jeden pár (což asi je), tak je potřeba mírná úprava: <?php
$jmeno = $_POST["jmeno"];
$heslo = $_POST["heslo"];
$soubor = file("ulozeno.txt", FILE_IGNORE_NEW_LINES);
for($i=0;$i<count($soubor);$i++)
{
$e = Explode(":", $soubor[$i]);
if($e[0]==$jmeno && $e[1]==$heslo)
{
echo "<i>Správné údaje</i>";
break;
}
}
if($i==count($soubor)) echo "<i>Chybné údaje!</i>";
?>(protože aby byly údaje vyhodnoceny jako správné, tak stačí jedna shoda, ale nesprávné údaje znamenají neshodu se všemi položkami v souboru) |
||
| Jakub Šebík Profil |
#7 · Zasláno: 24. 5. 2011, 19:31:27
Ernie:
Poupravený script, vyhodnocuje jako špatně dobře zadané údaje? Co s tím? |
||
| Ernie Profil |
#8 · Zasláno: 24. 5. 2011, 19:39:53
Jakub Šebík:
Chybička se vloudila. Patří tam if($i==count($soubor)) echo "<i>Chybné údaje!</i>"; |
||
|
Časová prodleva: 14 let
|
|||
0