Autor | Zpráva | ||
---|---|---|---|
sir_lamoid Profil |
#1 · Zasláno: 8. 6. 2011, 23:01:29
Dobrý den mám stránku umístěnou root/layout/login.php tam mam umisten kod:
<?php /** * @author sir lamoid * @copyright 2011 */ ?> <form action="script/login.php" method="post" enctype="text/plain"> Login: <input type="text" name="Login"> Heslo: <input type="password" name="Heslo"> <input type="submit" value="Přihlásit se"> </form> <a href="pages/register.php">Zaregistrovat se</a> dále mám skript root/script/login.php <?php $Login=$_POST[Login]; $Heslo=$_POST[Heslo]; include "../include/connect.php"; mysql_connect($mysql_server, $mysql_login, $mysql_pass); mysql_select_db($mysql_db); $uzivatel = mysql_query('SELECT * FROM uzivatele'); while ($uziv = mysql_fetch_array($uzivatel)): if ($Login != $uziv[Login] and $Heslo != $uziv[Heslo]) { echo "Chyba! Špatně Zadané heslo"; } else { session_start(); session_register(přihlášen); $_SESSION[přihlášen]=1; } endwhile; ?> a include/connect.php <?php /** * @author sir lamoid * @copyright 2011 */ $mysql_server = localhost; /*server */ $mysql_login = jacms; /*login */ $mysql_pass = xxxx; /*heslo */ $mysql_db = jacms; /*databaze */ ?> Kde je chyba mám PHP 5.3.4, MySQL 5.1.53, Apache 2.2.17 a dává my to error(y): Notice: Use of undefined constant Login - assumed 'Login' in C:\Users\xxx\Desktop\JACMS\script\login.php on line 3 Notice: Undefined index: Login in C:\Users\xx\Desktop\JACMS\script\login.php on line 3 Notice: Use of undefined constant Heslo - assumed 'Heslo' in C:\Users\xxxx\Desktop\JACMS\script\login.php on line 4 Notice: Undefined index: Heslo in C:\Users\xxx\Desktop\JACMS\script\login.php on line 4 Notice: Use of undefined constant localhost - assumed 'localhost' in C:\Users\xx\Desktop\JACMS\include\connect.php on line 8 Notice: Use of undefined constant jacms - assumed 'jacms' in C:\Users\xx\Desktop\JACMS\include\connect.php on line 9 Notice: Use of undefined constant jacms - assumed 'jacms' in C:\Users\xx\Desktop\JACMS\include\connect.php on line 11 KDE je chyba?? Prosím pomozte... |
||
Tori Profil |
#2 · Zasláno: 8. 6. 2011, 23:22:58
„Use of undefined constant“ znamená, že používáte řetězec, aniž by byl uzavřen do uvozovek/apostrofů.
Vyhoďte řádek 17 z login.php - používá se buď přímo pole $_SESSION, nebo session_register a pod. funkce, nikoli ale oba způsoby dohromady (koukněte se do manuálu). „Undefined index“: Přišla vám vůbec nějaká data z formuláře? Celé ověření bych dala do podmínky if ($_POST) nebo něco podobného, aby se ověření spouštělo jen když skutečně přijdou údaje z formu. K tomu dotazu do DB: Je zbytečné procházet v PHP cyklem všechny uživatele, když můžete upravit dotaz, aby vrátil max.jednoho: $uzivatel = mysql_query("SELECT * FROM uzivatele WHERE Login = '" . mysql_real_escape_string($_POST['login']) . "' AND Heslo = '" . mysql_real_escape_string($_POST['heslo']) . "'"); Osobně bych nepoužívala diakritiku ve jménech proměnných, klíčů pole apod., nejsem si jistá, že je to 100% spolehlivé. Ale možná se pletu. |
||
radas Profil * |
#3 · Zasláno: 9. 6. 2011, 10:30:22
nevím kde jsou definovaný ty konstanty
nemělo by to být spiš takto? $mysql_server = "localhost"; /*server */ $mysql_login = "jacms"; /*login */ $mysql_pass = "xxxx"; /*heslo */ $mysql_db = "jacms"; /*databaze */ |
||
sir_lamoid Profil |
#4 · Zasláno: 10. 6. 2011, 19:11:39
Tak jsem renovoval kod:
<?php include "../include/connect.php"; mysql_connect($mysql_server, $mysql_login, $mysql_pass); mysql_select_db($mysql_db) or die ("Nepodařilo se připojit k databázi. mysql_error()"); If ($_POST['heslo']=="heslo" && $_POST['login']=="admin"): session_start(); $_SESSION["user_register"]= "ANO"; Header("Location: http://www.test.hys.cz/private.php") ; else: if (isset($_POST['Heslo'], $_POST['Login'])) echo "Prihlášení se nepodarilo" ; endif; ?> ale zase to háže error: Undefined index: heslo in C:\Users\xxx\Desktop\JACMS\script\login.php on line 5 |
||
Tori Profil |
#5 · Zasláno: 10. 6. 2011, 19:36:01
sir_lamoid:
Jednou píšete "heslo", jindy "Heslo". Vyberte si jednu variantu a používejte ji důsledně všude, bude se vám snáz psát. |
||
sir_lamoid Profil |
#6 · Zasláno: 10. 6. 2011, 20:40:31
tak přemněněno ale fut to háže error
Formulař * @copyright 2011 */ ?> <form action="script/login.php" method="post" enctype="text/plain"> Login: <input type="text" name="login"> Heslo: <input type="password" name="heslo"> <input type="submit" value="Přihlásit se"> </form> <a href="pages/register.php">Zaregistrovat se</a>[/pre] script: <?php include "../include/connect.php"; mysql_connect($mysql_server, $mysql_login, $mysql_pass); mysql_select_db($mysql_db) or die ("Nepodařilo se připojit k databázi. mysql_error()"); If ($_POST['heslo']=="heslo" && $_POST['login']=="admin"): session_start(); $_SESSION["user_register"]= "ANO"; Header("Location: http://www.test.hys.cz/private.php") ; else: if (isset($_POST['heslo'], $_POST['login'])) echo "Prihlášení se nepodarilo" ; endif; ?> A error: Undefined index: heslo in C:\Users\Jakub Stejskal\Desktop\JACMS\script\login.php on line 5 |
||
Tori Profil |
#7 · Zasláno: 10. 6. 2011, 20:52:25 · Upravil/a: Tori
Vyhoďte z formuláře ten atribut enctype. (btw proč jste ho tam vlastně dal?)
|
||
sir_lamoid Profil |
#8 · Zasláno: 10. 6. 2011, 21:16:35
ten formulář byl dělán pomocí phpdesingera.............děkuji už to funguje
|
||
Časová prodleva: 13 let
|
0