Autor | Zpráva | ||
---|---|---|---|
nickfakeee Profil |
#1 · Zasláno: 29. 8. 2015, 22:57:58
Zdravím, co mám na tom špatně? Zadávám správné údaje a nejde mi to :(
INDEX.html : <html> <head> <title>Login</title> </head> <body> <form action="check.php" method="post"> <table align="center" style="cellpadding: 10px; cellspacing: 10px;"> <tr><td>Jmeno:</td><td><input type="text" name="Admin Jmeno" /></td></tr><tr><td>Heslo:</td><td><input type="password" name="Admin Heslo" /></td></tr><tr><td></td></td><td><input type="submit" value="Odeslat" /> </td></tr></table></form></body></html> Check.php <?php $name=$_POST['name']; $pass=$_POST['pass']; if ($name==("admin") & $pass==("123")) { session_register ('name'); session_register ('pass'); header("location:admin.php"); } else echo ' Spatne prihlasovaci udaje. Skus to znovu! Dekuji.'; ?> Admin.php <?php session_start() ; if(!session_is_registrated ('pass')) { header("location:index.html"); } ?> <html> <head> <title>Admin Stranka</title> </head> <body> <center> Vitej Admin!</center> </body> </html> |
||
lionel messi Profil |
nickfakeee:
„Zdravím, co mám na tom špatně?“ Viacero vecí: 1. Operátor & znamená síce and, ale tzv. bitové, ty potrebuješ logické, čiže && .
2. Funkcie session_register je od PHP 5.4.0 odstránená (prežitok z dôb štvorky a nižších verzií), session_is_registrated zase súčasťou jazyka nikdy nebola (podľa kuloárnych zdrojov uvažuje Rasmus Lerdorf o jej zavední v PHP 8). Jej pokrvnú sestru session_is_registered postretol rovnaký osud ako session_register.
|
||
nickfakeee Profil |
#3 · Zasláno: 29. 8. 2015, 23:07:13 · Upravil/a: nickfakeee
Tento kód jsem dělal podle nějaké stránky.. čiže pošlete mi upravený ten check.php? ten kód?
if ($name==("admin") && $pass==("123")) { takhle?
|
||
lionel messi Profil |
nickfakeee:
„Tento kód jsem dělal podle nějaké stránky..“ Zastaraných návodov sa, bohužiaľ, povaľuje po internete množstvo. „čiže pošlete mi upravený ten check.php? ten kód?“ Budiž. Mimochodom, ďalšia chyba je zle nastavený atribút name u inputov (nekorešponduje s kľúčmi v $_POST). index.html <html> <head> <title>Login</title> </head> <body> <form action="check.php" method="post"> <table align="center" style="cellpadding: 10px; cellspacing: 10px;"> <tr><td>Jmeno:</td><td><input type="text" name="name" /></td></tr><tr><td>Heslo:</td><td><input type="password" name="pass" /></td></tr><tr><td></td></td><td><input type="submit" value="Odeslat" /> </td></tr></table></form></body></html> Check.php <?php session_start(); if (empty($_POST['name']) || empty($_POST['pass'])) { echo "Vyplňte prosím všechny pole."; } $name = $_POST['name']; $pass=$_POST['pass']; if ($name== "admin" && $pass== "123") { $_SESSION['name'] = $name; header("location:admin.php"); exit(); } else { echo ' Spatne prihlasovaci udaje. Skus to znovu! Dekuji.'; } ?> Admin.php <?php session_start() ; if($_SESSION['name'] != "admin") { header("location:index.html"); exit(); } else { ?> <html> <head> <title>Admin Stranka</title> </head> <body> <center> Vitej Admin!</center> </body> </html> <?php } ?> Pre inšpiráciu mrkni na lepší návod: Odkladiště PHP FAQ » Registrace uživatelů |
||
nickfakeee Profil |
#5 · Zasláno: 29. 8. 2015, 23:27:08
Když zadám jméno admin a heslo 123 (to je jen test)
Tak se mi nic neukáže.. |
||
Vilak Profil |
#6 · Zasláno: 30. 8. 2015, 03:59:53
Úplně moc jsem to nekoumal, ale snažil jsem se to přepsal do podoby, ve které se to dá přečíst (zároveň ti tam chyběl středník, blbnul si tam s <td></td> etc.)
jinak jsem funkčnost skriptu nezkoušel... pokud nepůjde, můžeš použít "kontrolu" a vypsat si pak veškeré post prvky pomocí print_r($_POST) index.php <html> <head> <title>Login</title> </head> <body> <form action="check.php" method="POST"> <table align="center" style="cellpadding: 10px; cellspacing: 10px;"> <tr> <td>Jmeno:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>Heslo:</td> <td><input type="password" name="pass" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Odeslat" /></td> </tr> </table> </form> </body> </html> <?php session_start(); // získání proměnných, měly by se ošetřit pomocí htmlspecialchars, trim apod. $name = $_POST['name']; $pass = $_POST['pass']; // ověření prázdných proměnných if (empty($name) || empty($pass) { echo "Vyplňte, prosím, všechna pole."; } // ověření správně vyplněných proměnných if ($name == "admin" && $pass == "123") { // pokud souhlasí, zapiš $name do session a přesměruj se na stránku admin.php $_SESSION['name'] = $name; header("Location: ".$_SERVER['SERVER_ROOT']."http://www.TVŮJWEB.cz/admin.php"); } else { echo "Špatné přihlašovací údaje. Zkuste to znovu, děkujeme."; } ?> <?php session_start(); if($_SESSION['name'] != "admin") { header("Location: ".$_SERVER['SERVER_ROOT']."http://www.TVŮJWEB.cz/index.php"); } else { echo " <html> <head> <title>Admin Stránka</title> </head> <body> <center>Vitej Admine!</center> </body> </html> "; } ?> |
||
mimochodec Profil |
#7 · Zasláno: 30. 8. 2015, 05:32:17
Vilak:
A čo si predstavujete pod takým pojmom $_SERVER['SERVER_ROOT'] ?
|
||
nickfakeee Profil |
#8 · Zasláno: 31. 8. 2015, 10:26:22
Zase mám prázdnou stránku :(
|
||
mimochodec Profil |
#9 · Zasláno: 31. 8. 2015, 10:51:25
nickfakeee:
Vypiš si na začátku var_dump ($_POST);
|
||
nickfakeee Profil |
#10 · Zasláno: 31. 8. 2015, 19:30:52
mimochodec:
kde? |
||
mimochodec Profil |
#11 · Zasláno: 31. 8. 2015, 20:40:55
nickfakeee:
Jestli chceš stavět weby, neobejdeš se bez nějakého ladění, prázdná stránka není informace. Potřebuješ zjistit, co se tam děje. Jestli se bavíme o tom, že "prázdná stránka" je ta check.php, měl bys mít jasno, co ta stránka má dělat. První příkaz je session_start(), pak je načtení $_POST[] hodnot. Jestli chceš vědět, co a proč se děje, potřebuješ vědět, co v tom $_POST je. Zjistíš to tím příkazem, co jsem napsal. |
||
Časová prodleva: 9 let
|
0