Autor | Zpráva | ||
---|---|---|---|
BlackMartin Profil |
#1 · Zasláno: 12. 1. 2008, 16:14:56
Mám tento kód, ale pokaždé když do formuláře vložím nějaké údaje ( i správné ) tak mě to pokaždé přesměruje na http://$homepage/ nikoliv na post_news.php po vložení správných údajů.
Jo a mimochodem po přesměrování na http://$homepage/ se mi ani nezobrazí alert. Nevíte kde dělám chybu ? Děkuju za pomoc. <?php session_start(); ob_start(); require ("header.php"); if(isset($_POST["login"])){ $name = $_POST["login"]; $password = $_POST["password"]; $pass = md5($password); $query = MySQL_Query("SELECT * FROM `users` WHERE `username` = '$name' and `password` = '$pass' and `rank` = '10'") or die (mysql_error()); $vysledek = Mysql_Fetch_Array($query); if($vysledek==TRUE){ session_register("sign"); session_register("login"); session_register("id"); $_SESSION["sign"] = 1; $_SESSION["login"] = $vysledek["username"]; $_SESSION["id"] = $vysledek["id"]; $location1="./post_news.php"; header("location: http://$location1/"); } else{ echo "<script language=\"javascript\" type=\"text/javascript\">alert('Zadal jsi špatné údaje'); </script>"; header("location: http://$homepage/"); } mysql_free_result($query); }else{ echo "<br> Musíte zadat všechny údaje!"; } ob_end_flush(); ?> |
||
BetaCam Profil |
#2 · Zasláno: 12. 1. 2008, 17:06:07 · Upravil/a: BetaCam
Dej si tam
header('location: hxxp://'.$homepage.'/'); |
||
BetaCam Profil |
#3 · Zasláno: 12. 1. 2008, 17:09:26
Místo HXXP si dej HTTP
|
||
BetaCam Profil |
#4 · Zasláno: 12. 1. 2008, 17:10:50
Jo a za přesměrování si dej
exit; |
||
BlackMartin Profil |
#5 · Zasláno: 12. 1. 2008, 17:16:41 · Upravil/a: BlackMartin
Stejně to nepomohlo.
Tedka mě to přesměruje na http://\'.martindeveloper.ic.cz.\'/ čili "Server nelze nalézt" ;-) |
||
BetaCam Profil |
#6 · Zasláno: 12. 1. 2008, 18:04:25
Tak tam dej jenom
header('location: '.$homepage); |
||
BlackMartin Profil |
#7 · Zasláno: 13. 1. 2008, 14:33:41
Ale tady se nejedná o přesměrování, ale o to se že nesplní podmínka if($vysledek==TRUE) ale provede se
else{ echo "<script language=\"javascript\" type=\"text/javascript\">alert('Zadal jsi špatné údaje'); </script>"; header("location: http://$homepage/"); } |
||
BetaCam Profil |
#8 · Zasláno: 13. 1. 2008, 16:21:02
Ale tady se nejedná o přesměrování, ale o to se že nesplní podmínka if($vysledek==TRUE) ale provede se
No a čim to asi bude??? Že by tim, že Mysql_Fetch_Array() nikdy nevrací TRUE??? Mysql_Fetch_Array() vrací pole př úspěchu a FALSE při selhání. Takže si tu podmínku napiš jinak. Možností je nespočet od if($vysledek != FALSE) až po if(is_array($vysledek)). Než napíšeš nějakou podmínku zkontroluj si jestli opravdu tato podmínka může někdy nastat. |
||
BlackMartin Profil |
#9 · Zasláno: 13. 1. 2008, 17:04:33
OK díky, už mi to funguje jenže mám zase problém stím že když zadám správné jméno a nesprávné heslo tak mě to přesto přihlásí ...
|
||
avaranger Profil |
#10 · Zasláno: 13. 1. 2008, 20:32:08
Zeptej se tam na
mysql_numrows() |
||
BlackMartin Profil |
#11 · Zasláno: 13. 1. 2008, 21:42:09 · Upravil/a: BlackMartin
Hmm tak nic, ikdyž tedka zadám správné údaje tak mě to nepřihlásí.
Tu podmínku jsem napsal if(mysql_num_rows($vysledek)!=0) |
||
BetaCam Profil |
#12 · Zasláno: 13. 1. 2008, 22:07:01
BlackMartin
No tak ti ten dotaz nic nevrátí. Takže bud máš špatný heslo, jméno a nebo rank. Ověř si jestli opravdu existuje takoví uživatel, který splní podmínku tvého query. |
||
BlackMartin Profil |
#13 · Zasláno: 15. 1. 2008, 11:15:19 · Upravil/a: BlackMartin
Na 100% je dobré jak jméno tak i heslo a rank též.
Takže nevím kde je chyba. |
||
BetaCam Profil |
#14 · Zasláno: 15. 1. 2008, 19:17:52
BlackMartin
Měl by sis trochu přečíst manuál. Kdyby si to udělal věděl by si kde máš chybu. $query = MySQL_Query("SELECT * FROM `users` WHERE `username` = '$name' and `password` = '$pass' and `rank` = '10'") or die (mysql_error()); $vysledek = Mysql_Fetch_Array($query); if(mysql_num_rows($vysledek)!=0) tohle je totiž blbost. Cpeš funkci mysql_num_rows() něco co neočekává. mysql_num_rows() stejně jako mysql_fetch_array() očekává Resource, ale ty jí cpeš pole. Tvá podmínka by tedy měla vypadat například takhle : $query = MySQL_Query("SELECT * FROM `users` WHERE `username` = '$name' and `password` = '$pass' and `rank` = '10'") or die (mysql_error()); if(mysql_num_rows($query)!=0) Doporučuju ti, když chceš začít používat nějakou funkci přečti si v manuálu jak se používá, co vrací a co očekává. |
||
BlackMartin Profil |
#15 · Zasláno: 15. 1. 2008, 21:19:05
Ano, příště se podívám do manuálu.
Děkuji moc za rady už to funguje. Děkuji moc všem. |
||
Časová prodleva: 16 let
|
0