Autor Zpráva
sir_lamoid
Profil
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
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 *
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
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
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
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
Vyhoďte z formuláře ten atribut enctype. (btw proč jste ho tam vlastně dal?)
sir_lamoid
Profil
ten formulář byl dělán pomocí phpdesingera.............děkuji už to funguje

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0