Autor | Zpráva | ||
---|---|---|---|
Alphard Profil |
#1 · Zasláno: 3. 8. 2010, 22:33:11
petrr:
Vy chcete pomoci, ale rady ignorujete, nebo vážně nestudujete základy, nebo nevím. Já jsem chtěl vypsat hodnoty, které jsou v podmínce, ne tu podmínku přepsat. Tím vypsat jsem myslel echo mysql_result($vysledek, 0); a echo $_REQUEST['txtheslo'];
|
||
petrr Profil * |
#2 · Zasláno: 4. 8. 2010, 11:00:26
Ahojky pořád se stím peru a nemůžu přijít na to jak to udělat dobře - nedaří se mi nějak rozumě napsat tuto podmínku: if (mysql_result($vysledek, 0, ) != $_REQUEST['txtheslo']) - buď mi to vypisuje chyby a nebo pořád hlášku " nesprávné heslo" neví někdo z Vás jak to napsat správně? Děkuji
<?php setcookie('txtjmeno', '', time() + 3600); setcookie('txtheslo', '', time() + 3600); $spojeni = mysql_connect("localhost", "root", ""); mysql_select_db("test"); //10 $sql ="SELECT uziv_heslo FROM klienti WHERE uziv_jmeno='".$_REQUEST['txtjmeno']."'"; $vysledek = mysql_query($sql); if (!$vysledek): echo "Oveření nelze použít."; exit; endif; //20 if (!mysql_num_rows($vysledek)): echo "uživatel nenalezen"; exit; else: //if (!mysql_result($vysledek, 0)): if (mysql_result($vysledek, 0, ) != $_REQUEST['txtheslo']): echo $_REQUEST['txtheslo']; echo mysql_result($vysledek, 0); echo "nesprávné heslo"; exit; else: setcookie ('txtjmeno', $_REQUEST['txtjmeno'], time()+900); setcookie ('txtheslo', $_REQUEST['txtheslo'], time()+900); endif; endif; ?> <html> <head> <title>Stránka login</title> </head> </body> <p>Úspěšně jste se přihlásil</p> </body> </html> |
||
Alphard Profil |
#3 · Zasláno: 4. 8. 2010, 11:07:20
Konečně se někam dostáváme, co vám řádky 31 a 32 vypisují?
|
||
petrr Profil * |
#4 · Zasláno: 4. 8. 2010, 11:11:43
vypisují udaje: 1) heslo ktere jsem vepsal do inputu, 2) heslo ktere je uloženo v databázi.
Ale ikdyž zadám správnou kombinaci pořád to vypisuje "nesprávné heslo" Jak dál? Děkuji |
||
Alphard Profil |
#5 · Zasláno: 4. 8. 2010, 11:17:44
petrr:
„1) heslo ktere jsem vepsal do inputu, 2) heslo ktere je uloženo v databázi.“ Jsou naprosto stejná? Tím myslím i případnou mezeru na začátku nebo na konci. A na 29. řádku buď doplňte jako třetí parametr 0, nebo smažte tu čárku (,) za druhým parametrem. |
||
petrr Profil * |
#6 · Zasláno: 4. 8. 2010, 11:30:52
Takto mi to vypíše když zadám správnou kombinaci hesla a jména:
abcabcnesprávné heslo na 29 řádku jsem připsal nulu jakpak dále? Děkuji |
||
petrr Profil * |
#7 · Zasláno: 4. 8. 2010, 11:35:52
když tam dám tuto podmínku:
if (mysql_result($vysledek, 0,0 ) != $_REQUEST['txtheslo']) vypíše mi to: "úspěšně jste se přihlásil" - i přes špatné heslo a když tam dám tuto podmínku: if (mysql_result($vysledek, 0)) pak mi to napíše: "nesprávné heslo" ? |
||
Alphard Profil |
#8 · Zasláno: 4. 8. 2010, 11:49:28
petrr:
Pořád to zamotáváte, na if (mysql_result($vysledek, 0)) zapomeňte, to je k ničemu, když chcete porovnávat heslo na straně PHP.
„abcabcnesprávné heslo“ Hmm, vypadá to, že je tam správně heslo abc. Ještě zkuste if (trim(mysql_result($vysledek, 0, 0)) != trim($_REQUEST['txtheslo'])): echo "Vzor: ".trim(mysql_result($vysledek, 0, 0))."<br>"; echo "Zadané: ".trim($_REQUEST['txtheslo'])."<br>"; echo "nesprávné heslo"; exit; |
||
petrr Profil * |
#9 · Zasláno: 4. 8. 2010, 12:02:29
kdyz to tam zapisu takto vypisuje to: Úspěšně jste se přihlásil i přes špatné kombinace, pro jistotu přeposilam zdroják:
<?php setcookie('txtjmeno', '', time() + 3600); setcookie('txtheslo', '', time() + 3600); $spojeni = mysql_connect("localhost", "root", ""); mysql_select_db("test"); //10 $sql ="SELECT uziv_heslo FROM klienti WHERE uziv_jmeno='".$_REQUEST['txtjmeno']."' "; $vysledek = mysql_query($sql); if (!$vysledek): echo "Oveření nelze použít."; exit; endif; //20 if (!mysql_num_rows($vysledek)): echo "uživatel nenalezen"; exit; else: if (trim(mysql_result($vysledek, 0, 0)) != trim($_REQUEST['txtheslo'])): echo "Vzor: ".trim(mysql_result($vysledek, 0, 0))."<br>"; echo "Zadané: ".trim($_REQUEST['txtheslo'])."<br>"; echo "nesprávné heslo"; echo $_REQUEST['txtheslo']; echo mysql_result($vysledek, 0); echo $_REQUEST['txtjmeno']; exit; else: setcookie ('txtjmeno', $_REQUEST['txtjmeno'], time()+900); setcookie ('txtheslo', $_REQUEST['txtheslo'], time()+900); endif; endif; ?> <html> <head> <title>Stránka login</title> </head> </body> <p>Úspěšně jste se přihlásil</p> </body> </html> včem může být chyba? |
||
tiso Profil |
#10 · Zasláno: 4. 8. 2010, 12:20:41
petrr: nauč sa debugovať skript, zbytočne sem x-krát píšeš celý skript.
|
||
nightfish Profil |
#11 · Zasláno: 4. 8. 2010, 12:33:17
petrr:
Chyba pravděpodobně spočívá i v tom, co jsme ti psali včera - používáš $_REQUEST['txtheslo'], zatímco název pole ve formuláři je "password". |
||
petrr Profil * |
#12 · Zasláno: 4. 8. 2010, 14:52:43
V soucasne době mám ve formuláři jsem pole přejmenoval včera na txtheslo a pořád to dělá stejnou neplechu. Co by mohlo ještě zpusobovat chyby? Děkuji
|
||
nightfish Profil |
#13 · Zasláno: 4. 8. 2010, 14:53:30
petrr:
A "username" je přejmenováno na "txtjmeno"? |
||
petrr Profil * |
#14 · Zasláno: 4. 8. 2010, 14:57:29
ano mám to zapsané takto:
<html> <body> <font size="5" face="sans-serif">Login </font> <form action="overeni.php" method="POST" name="form1"> <table cellpadding="3" cellspacing="4" border="0"> <tr> <td>Username:</td> <td><input type="text" name="txtjmeno"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="txtheslo"></td> </tr> <tr> <td><input type="submit" name="submit" value="Log in"/></td> </tr> </table> </form> </body> </html> Procházím to pořád dokola a pořád nemůžu přijít na to co je tam špatně? |
||
nightfish Profil |
#15 · Zasláno: 4. 8. 2010, 15:01:30
|
||
petrr Profil * |
#16 · Zasláno: 4. 8. 2010, 15:09:05
ja jsem pozměnil podmínku na:
if (mysql_result($vysledek,0) != ($_REQUEST['txtheslo'])): a už mi to taky vypisuje správně, takže děkuji všem co mi pomohly!!!! |
||
nightfish Profil |
#17 · Zasláno: 4. 8. 2010, 15:33:21
petrr:
„ja jsem pozměnil podmínku na:“ Podmínka v [#9] na ř. 28 je ekvivalentní, takže tím to nebude. Ale jestli ti to funguje, tak jsme stejně hotovi. |
||
Časová prodleva: 14 let
|
0