Autor Zpráva
ReVolt
Profil
Nazdar mám problém nejspíš s relací:
require_once("../include/spojeni.php");
if(isset($_POST['login']) && isset($_POST['passwd'])) {
  $prihl_udaje = mysql_query("SELECT * FROM admin WHERE admin_id='1'") or die("Chyba připojení k databázi: ". mysql_error());
  $hodnota = mysql_fetch_assoc($prihl_udaje);
  $login = $hodnota['admin_jmeno'];
  $pass = $hodnota['admin_heslo'];
  if($login == $_POST['login'] && $pass ==  $_POST['passwd']) {
    $_SESSION['prihlaseno'] = 1;
    header("Location: admin.php");
  }
  else {
    header("Location: index.php?action=error");
  }      
}
jméno i heslo zadám správné, takže mě to směruje do stránky admin.php, ale pak se stránka admin.php chová jako by SESSION vůbec neexistovala, nevidíte tam někdo tu chybu?
Díky moc
Someone
Profil
Máš na začátku každého souboru, ve kterém chceš session použít session_start() ?
Tohle přihlašování se mi nezdá zrovna nejideálnější. Co když tam bude víc adminů? Ověřuj to takhle:
$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM admin WHERE admin_jmeno = '".$_POST['login']."' AND admin_heslo='".$_POST['passwd']."'"),0);
if ($pocet > 0) {
    $_SESSION['prihlaseno'] = 1;
    header("Location: admin.php");
}
Obě hodnoty z postu ještě zabezpeč proti SQL Injection
Zauvažuj nad hashováním hesel SHA1 MD5
ReVolt
Profil
Someone:
dík za odpověď, tohle je jen taková rychlovka :), jinak už jsem to rozchodil, skutečně mi zrovna na té stránce admin.php chyběla session_start
Lamicz
Profil
Someone:
OK, a teď to prosím napiš správně ;)
Someone
Profil
Lamicz:
Co máš konkrétně na mysli?
Lamicz
Profil
Someone:
např. SQL injection, hash hesla
Someone
Profil
Lamicz:
Na SQL Injection jsem upozorňoval a hash jsem sem nechtěl tahat, protože očividně není použit při registraci (ale budiž).
Lamicz
Profil
Someone:
OK, nevšiml jsem si. IMHO by se to mělo psát pořádně, ne někde dole poznámka, aby si to ošetřil, protože on ani neví co. Ti lidi fungují copy and paste a dalších X lidí to zkopíruje s tou bezpečnostní dírou.
Someone
Profil
Napsal jsem to ve formě poznámky, protože jsem to chtěl nasoukat do jednoho řádku což by se mi s tím "krátkým" názvem funkce nepovedlo (očividně ani bez bez něj ne).
ReVolt
Profil
Lamicz:
nazdar, já mezi "ty lidi" co píší kód metodou c-p nepatřím,
protože on ani neví co
nepodceňuj znalosti uživatelů tohoto fóra, mnohdy prostě člověk chybu nevidí i když má za sebou nějakou tu praxi, já se řídím heslem víc očí víc vidí a když dělám dlouho tak to prostě nevidím, i když je to vesměs triviální
Someone
hashovací fci mám vlastní v kombinaci s již existující fcí, proto to tu není (většinou nikam nevkládám kompletní kódy)

díky za vaše reakce, tímto bych toto vlákno asi uzavřel

EDIT: pro někoho, kdo by chtěl kopírovat - nadělejte to nic se tím nenaučíte a práci si spíš přiděláte než ušetříte ;)

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: