Autor Zpráva
svasik
Profil *
Ahoj, potřebuju udělat obyčejný přihlašovací formulář který bude do session ukládat méno a heslo... zkoušel jsem to... ale poněvadž nemám moc zkušeností, tak sem nejspíše někde udělal chybu :P... nemůžete mi někdo poslat hotový formulář (tabulka jméno uzivatele), nebo mi opravt alespoň řádek u kterého mi to háže chybu :)...:
<?php session_start(); ?>

... hlavička ...

<?php
include("include.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_query("SET NAMES 'utf8_unicode_ci';");
mysql_select_db(SQL_DBNAME);
if(!empty(mysql_query('select * from uzivatele where Jmeno='.$_POST["meno"])) && !empty(mysql_query('select * from uzivatele where heslo='.$_POST["heslo"]))) << v tomhle řádku je chyba :P <<
{
echo "jste přihlášen";

... pokračující skript ...
zooner
Profil
takhle by to mělo být, upravil jsem uvozovky

if(!empty(mysql_query("select * from uzivatele where Jmeno='$_POST["meno"]'")) && !empty(mysql_query("select * from uzivatele where heslo='$_POST["heslo"]'")))
bohyn
Profil
svasik
Nevadi ti ze kdyz mas:
uzivatel1 | heslo1
uzivatel2 | heslo2


tak se musez prihlasit jako:
uzivatel1 | heslo2 ?

Pouzij radsi tenhle dotaz:
"SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'"
svasik
Profil *
Fatal error: Can't use function return value in write context in admin.php on line 14


... na lince 14 je momentálně toto:
if(!empty(mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'"))){
bohyn
Profil
$result = mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'");
if(mysql_num_rows($result) > 0) {
  // jste prihlasen
}
Wroxman
Profil
Zkusil bych toto:
session_start();
$jmeno = $_POST["jmeno"];
$heslo = $_POST["heslo"];
if (empty($jmeno) || empty($heslo)) {
exit("Nezadali jste jmeno nebo heslo");
}
else {
include ("include.php");
$connect = mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); 
mysql_select_db(SQL_NAME);
$query = mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '" . $jmeno . "' AND heslo = '" . $heslo . "');
$radku = mysql_num_rows($radku);
if ($radku == 1) {
přihlášení úspěšné
}
else {
exit("Neplatne prihlasovaci udaje");
}
mysql_close($connect);
}
svasik
Profil *
Dekuji vsem (pouzita verze od bohyn), uz je to vyreseno :)
svasik
Profil *
dobry... naskyta se dalsi problem :)...
je takto spravne zapsane přiřazení do session?:
$_SESSION['prihlasen'] = 1;

na další stránce, na kterou se odkážu mám podmínku:
<?php 
if($_SESSION['prihlasen'] == 1){


podmínka se ale chová jako by to nebyl pravda :(... což by měla protože přihlášení proběhlo úspěšně
bohyn
Profil
svasik
Na kazdy strance musis mit session_start() nez zacnes pouzivat $_SESSION
jansfabik
Profil
ještě si to ošetřete proti SQL Injection!

co když zadám například tohle:
jméno: ' OR 1=1 OR ""="
heslo: " OR ""='

výsledný SQL příkaz: SELECT jmeno FROM uzivatele WHERE jmeno = '' OR 1=1 OR ""="' AND heslo = '" OR ""=''
svasik
Profil *
jak se ošetřim?
blaaablaaa
Profil *
svasik:
ty se osetruj jak chces, ale proti sql injection pres addslashes
bohyn
Profil
Osetreni promenych se provadi pres:
$promena = mysql_real_escape_string($promena);

pred SQL dotazem, ale az po spojeni s databazi.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0