| Autor | Zpráva | ||
|---|---|---|---|
| kesaj Profil |
#1 · Zasláno: 27. 9. 2014, 12:46:37
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 |
#2 · Zasláno: 27. 9. 2014, 13:00:03
<?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 |
#3 · Zasláno: 27. 9. 2014, 13:26:26
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 |
#4 · Zasláno: 27. 9. 2014, 13:33:20
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. |
||
|
Časová prodleva: 11 let
|
|||
0