Problema logare script

fenoxp

Member
Registered
Salutare, am și eu un script de muzica magic-love.ml de test pana îmi iau un domeniu stabil însă am o mica problema la cel script. Nu reușesc sa ma loghez adică bag nume și parola corecte dar îmi refreșează pagina , țin sa anunț ca e pe baza de cookies și cineva mia zis ca lipsește un isset însă nu știu exact. Asa ca va rog sa ma ajutați.
Uitați mai jos codul din logarea mea .
acțiunea fiind :
Cod:
else if($actiune=="logare") {
$userr = $alex->query("SELECT COUNT(id) FROM utilizatori WHERE nume='".$_COOKIE["nume_alexxx_cookies"]."' AND parola='".$_COOKIE["parola_alexxx_cookies"]."'")->fetch_array();
echo "<title>Logare Cont</title>
<div class=\"head\">Logare Cont</div>
<div class=\"message\"><small> Logare|
 Înregistrare</small></div>";
if($userr[0]==0) {
online2("Logare cont");
$exista_user = $alex->query("SELECT COUNT(id) FROM utilizatori WHERE nume='".$nume."' AND parola='".$parola."'")->fetch_array();
if($nume=="") {}
else if($exista_user[0]==0) {
echo "<div class=\"warn2\"> Datele sunt incorecte!</div>"; }
if(isset($_GET["eroare"])) {
echo "<div class=\"warn2\"> Trebuie să fi logat pentru a continua!</div>"; }
echo "<div class=\"line22\" align=\"center\">
<form method=\"post\" action=\"".$_SERVER["SERVER_NAME"]."/".$actiune.".html\">
<b>Scrie Numele</b>:
<input maxlength=\"30\" type=\"text\" name=\"nume\" value=\"".$_GET["nume"]."\">
<b>Scrie Parola</b>:
<input maxlength=\"30\" type=\"password\" name=\"parola\" value=\"".$_GET["parola"]."\">
<input type=\"checkbox\" name=\"remember\" checked> <b>Ţine-mă minte!</b>
<input type=\"submit\" name=\"logare\" value=\"Logare\" class=\"button\"></form></div>
<div class=\"line22\" align=\"center\">
Vrei să devi membru?  Înregistrează-te!</div>";
}else{
echo "<meta http-equiv=\"refresh\" content=\"3; url=".$_SERVER["SERVER_NAME"]."/acasa.html\">
<div class=\"warn\"> Te-ai logat cu succes!Aşteaptă să fi redirecţionat către pagina principală!
</div>"; }}
 
Ultima editare de un moderator:
Țin să precizez ca nu dețin găzduire Free. Doar domeniul este Free atât. Dețin găzduire de la server.ro
 
1. este posibil ca directorul unde salveaza sesiunea nu are permisiunea de scriere
2. poti activa afisarea erorilor sa iti dai seama unde este problema
Cod:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
php_value error_log  /calea/catre/fisier.log
3. scriptul are erori

Daca iti afiseaza o eroare pe pagina sau in fisier sa o postezi aici sa vedem.
 
1. este posibil ca directorul unde salveaza sesiunea nu are permisiunea de scriere
2. poti activa afisarea erorilor sa iti dai seama unde este problema
Cod:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
php_value error_log  /calea/catre/fisier.log
3. scriptul are erori

Daca iti afiseaza o eroare pe pagina sau in fisier sa o postezi aici sa vedem.
Am pus acel cod în htacces însă nu-mi rezultate error, pur și simplu bag datele și când dau clik pe button îmi refreșează pagina
 
1. Scriptul pe care l-ai postat tu nu este intreg, lipsesc portiuni din el.
2. Nu te mai chinuii, e unul dintre cele mai proaste coduri pe care le-am vazut eu, adica tu bagi valori din cookie direct in query-ul de sql... si mai ales ca din cate vad nu sunt filtrate?

Atunci cand faci logarea, datele de logare le iei direct din $_POST, nu le mai salvezi in cookie pentru ca cookie poate fi usor manipulat.
 
Te ajut eu...
Uplodeaza fila config.php toata nu doar un cod ce nu are legatura cu logarea total ;)
 
Nu stiu cum ai arhivat scriptul de nu functioneaza...
Mai bine dami in privat datele de la ftp...
 
@fenoxp scriptul tau are mai multe erori
1. Este vulnerabil la SQL injections - nu se face query direct din Cookie/GET fara ca inainte sa faci un sanitize.
2. Forum-ul la inregistrare si logare se face prin POST si nu faci update la inputuri prin GET, este asemanator cu a face logarea/inregistrarea prin GET (dageaba ai setat formul ca post)
3. Nu ai nevoie de isset fiindca ai fetch_array() ceea ce inseamna ca trebuie sa validezi rezultatele din DB ca rezultat de array nu obiect, spre exemplu:
Cod:
if(array_key_exists('username',$userr)){}
4. Logarea prin cookie nu se mai face de vreo 15 ani, pentru ca platforma iti devine vulnerabila.
@AlexH a recomandat sa faci php_flag in vhost/htaccess dar nu este necesar, pentru a vedea erori la inceputul oricarui fisierului php, poti adauga :
Cod:
error_reporting(E_ALL);
ini_set('display_errors', 1);

Problema de redirect ce o ai este de la codul scris, serverul interpreteaza eroarea si iti face redirect.

Iti recomand sa folosesti Symfony sau Laravel, este mult mai simplu decat sa implemetezi ceva de la 0.

Sper sa te ajute!
 
Ultima editare:
Gata,poftim fila rezolvata de mine ;)
Imi spui daca a mers ;)
 

Atașamente

  • config.zip
    6,3 KB · Vizualizări: 11
Loading...
Back
Sus