Autor Zpráva
kesaj
Profil
Zdravím Vás.

Mám tento php kód, ktorý mi funguje, tak ako potrebujem - podľa toho, aké heslo sa zadá, presmeruje to na danú stránku.

<?php
include "mysql.php";/* pripojenie k databáze */
$login = mysql_real_escape_string($_POST["nick"]);/* login zadané vo formulárí */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané vo formulári */
$md5heslo = md5($heslo);/* Pomocou funkcie md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRE OVERENIE PRIHLASOVACICH DAT — */
$dotaz = mysql_query("select * from loginy where login = '$login' and heslo = '$heslo'");
$row = mysql_fetch_array($dotaz);
    if($heslo == "1") {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=1.php\">";
    }
    elseif($heslo == "2") {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=2.php\">";
    } 
    elseif($heslo == "3") {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=3.php\">";
    } 
    elseif($heslo == "4") {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=4.php\">";
    } 
    elseif($heslo == "5") {
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=5.php\">";
    } 

else {
    echo"Zadali ste nespravne meno alebo heslo! Vratte sa spat a skuste to znovu.";
    
}
?>

potrebujem však zabezpečiť, aby keď sa otvorí iba stránka napr 1.php - aby sa musel najprv prihlásiť - teda pomocou session, len neviem, kde to mám vložiť konkrétne do môjho kódu ...

Ďakujem pekne za pomoc
xROAL
Profil
<?php
session_start();
include "mysql.php";/* pripojenie k databáze */
$login = mysql_real_escape_string($_POST["nick"]);/* login zadané vo formulárí */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané vo formulári */
$md5heslo = md5($heslo);/* Pomocou funkcie md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRE OVERENIE PRIHLASOVACICH DAT — */
$dotaz = mysql_query("select * from loginy where login = '$login' and heslo = '$heslo'");
$row = mysql_fetch_array($dotaz);
    if($heslo == "1") {
    $_SESSION['pristup'] = 1;
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=1.php\">";
    }
    elseif($heslo == "2") {
    $_SESSION['pristup'] = 2;
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=2.php\">";
    } 
    elseif($heslo == "3") {
    $_SESSION['pristup'] = 3;
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=3.php\">";
    } 
    elseif($heslo == "4") {
    $_SESSION['pristup'] = 4;
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=4.php\">";
    } 
    elseif($heslo == "5") {
    $_SESSION['pristup'] = 5;
    echo "<meta http-equiv=\"refresh\" content=\"0;URL=5.php\">";
    } 
 
else {
    echo"Zadali ste nespravne meno alebo heslo! Vratte sa spat a skuste to znovu.";
    
}
?>

Potom na samotných stránkach 1,2,3,4,5.php
<?php
session_start(); // musí byť VŽDY na začiatku
if(isset($_SESSION['pristup']) && $_SESSION['pristup'] == 1){  // alebo iné požadované číslo
  // užívateľ má prístup
}else{
  // užívateľ nemá prístup
}
?>

Inak k samotnému riešeniu, dúfam, že toto nie je finálna verzia. Keby sa chcem na takejto stránke dostať niekam, kde za normálnych okolností nemám čo robiť, stačí mi poznať heslo. Síce vyberáš z databáze záznam so zadaným menom a (nehashovaným?) heslom, ale v konečnom dôsledku sa aj tak rozhoduješ len podľa hesla ktoré zadal užívateľ do políčka. Nesprávne zadané meno by mi v tomto prípade nezabránilo prihlásiť sa.
kesaj
Profil
dakujem - funguje mi to session ...

ako mam zahashovať tie hesla? mal som to predtym zahashovane, ked som pristupoval pod heslami v databaze, ale teraz potrebujem dodrzat tento princip, ako mam vytvoreny ... takže ako zahashovat tieto hesla?

Ďakujem pekne.
Kubo2
Profil
kesaj:
Normálne ich zahashuj („zahešuj“), ako si bol zvyknutý, a pre tebou uvedený princíp, ktorý potrebuješ dodržať, si urči iný faktor, ktorý bude na to vhodnejší a najlepšie bude na to priamo naviazaný.

Odporúčam ti v databáze si pripojiť k užívateľovmu záznamu ďaľší údaj, ktorý bude týmto faktorom.

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: