Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

login cu probleme
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
danielsen



Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca

Trimis: Vin Iun 06, 2008 11:01 pm    Titlul subiectului: login cu probleme  

Am un login cu probleme care nu permite logarea pe un server, dar pe altu merge.

Daca fac logare la mine pe server http://www.danielsen82.com/brandmagazine.ro/?p=admin (admin / zapper) va merge. De pe serverul celor carora e siteul nu ma lasa: http://www.brandmagazine.ro/?p=admin
E posibil sa fie din cauza safe_mode activat sau nu?
Uitati putin aici ce ar putea sa-i lipseasca:
http://www.brandmagazine.ro/info.php

Cine se ocupa de serverul lor, mi-a zis ca e mai vechi, nu are instalata interfata mysql, nu pot urca cu ftp decat de pe ip-urile permise de el, n-are phpmyadmin, au un server... numai ei stiu. Ideea e ca nu accepta cookie-uri, ori validarea, asa cum am facut-o, nu-i corect facuta. Pe site mai trebuia sa apara un meniu principal in momentul cand e logat si... nu apare.

Am un fisier pages.php in care exista bucata asta de cod:
Cod: if (!isset($_GET['p'])) $_GET['p'] = '';

switch ($_GET['p']) {

...

case 'admin':
  include("admin/login.php");
break;

case 'administrare':
  // daca administratorul nu este autentificat,
  // afiseaza formularul de login
  if ($_SESSION['logat'] != 'Da') {
    echo '<meta http-equiv=refresh content="5; url=http://www. ... ?p=admin">';
    echo 'Sesiune expirata sau nu ati introdus...';
      } else { // altfel, afiseaza panoul de administrare
        include("admin/admin.php");
      }
break;
...

validarea din login.php (case 'admin') arata asa:
Cod: switch ($_GET['actiune']) {

default:
case 'login':
    if ($_SESSION['logat'] != 'Da') {
     // afiseaza formularul de login
    } else {
       echo '<meta http-equiv=refresh content="0; url='.SITE.'?p=administrare">';
    }
break;


case 'validare':
  $_SESSION['utilizator'] = $_POST['utilizator'];
   if (($_POST['utilizator'] == '') || ($_POST['parola'] == '')) {
     echo 'Completeaza datele de autentificare';
      } else {
      $interogare = "SELECT * FROM utilizatori WHERE utilizator='".htmlentities($_POST['utilizator'])."' AND parola='".md5($_POST['parola'])."'";
      $rezultat = mysql_query($interogare);
       if (mysql_num_rows($rezultat) == 1) {
         while ($rand = mysql_fetch_array($rezultat)) {
           $_SESSION['logat'] = 'Da';
            echo '<meta http-equiv=refresh content="0; url='.SITE.'?p=administrare">';
         }
       } else {
         echo 'Datele introduse sunt incorecte';
       }
   }
break;
...

Eu am mai folosit codul si in alte site-uri si n-am avut probleme de genul asta. Posibil sa fi folosit ceva care sa nu fie fie acceptat de versiunile mai vechi de php? Doar pe brandmagazine.ro nu merge. Ce ar trebui facut?
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 743
Locație: Bacau

Trimis: Sâm Iun 07, 2008 9:03 am    Titlul subiectului:  

fa niste teste .. vezi ce si cum nu merge :
- se trimit variabilele din formularul de login corect
- sunt rezultate la interogarea SQL
- se salveaza in sesiune login-ul
Sus  
DaRk`SouL



Data înscrierii: 19/Noi/2007
Mesaje: 55
Locație: Bucharest, RO

Trimis: Sâm Iun 07, 2008 9:35 am    Titlul subiectului:  

mie mi-a dat cateva errori prima data ...
dupa care s-a logat iar cand am dat logout si iar login ...
imi da utilizatorul si parola in md5:

" admin16a7af0e14037b567d7782c4ef1bdeda "

si apare mereu string(2) "Da" ... asta pe site-ul tau
pe celalalt apare direct "Nu"

Nu inteleg care-i faza, dar fa niste teste! e o erroare pe undeva prin script sau chiar in mysql ... si ti-as mai recomanda functia header() in loc de ehco "<meta..." ... parerea mea!
Sus  
danielsen



Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca

Trimis: Sâm Iun 07, 2008 10:14 am    Titlul subiectului:  

Deci sa le zic pe rand:

Am config.php care-i inclus ca primul lucru in index.php din radacina, si in el (config asta) am datele de la baza de date, dar inaintre de asta am

session_start();
set_time_limit(0);
error_reporting (E_ALL & ~E_NOTICE);

if (!isset($_SESSION['logat'])) $_SESSION['logat'] = 'Nu';

de la bun inceput $_SESSION['logat'] = 'Nu'; ... asta e clar.

in pages.php

case 'admin':
include("admin/login.php");
fisier in care...
avem case 'login' care-i si default ... in care, daca $_SESSION['logat'] != 'Da', atunci afiseaza formularul de login, altfel afiseaza panoul de administrare, corect?
In momentul cand se introduc utilizatorul si parola, initial se da egalitatea $_SESSION['utilizator'] = $_POST['utilizator'], iar daca campurile nu-s completate, afiseaza 'Completeaza datele de autentificare', altfel se face interogarea in care, daca se gaseste cel putin o inregistrare cu datele introduse, atunci $_SESSION['logat'] = 'Da' si directioneaza catre panoul de administrare, altfel daca datele nu-s corecte, echo 'Datele introduse sunt incorecte'.

In cazul cand directioneaza spre panoul de administrare... case 'administrare' --- se mai pune o conditie if ($_SESSION['logat'] != 'Da'), atunci afiseaza mesajul: Sesiune expirata sau nu ati introdus..., altfel, numai daca $_SESSION['logat'] = 'Da', atunci afiseaza pagina de administrare. Daca-i scot aceasta ultima conditie, intra intr-adevar pe pagina de administrare, dar asta nu inseamna ca $_SESSION['logat'] == 'Da', insa e posibil sa fie $_SESSION['logat'] = 'Da', daca pun cu operator '=', atunci ii da, dar mai am un buton in meniul care-i pus cu conditia ca if ($_SESSION['logat'] == 'Da') ... numai atunci sa afiseze. Daca as schimba cu un singur =, ramane afisat tot timpul, indiferent ca-i logat sau nu.

Concluzia: serverul nu accepta sesiuni, ori nu stiu ce are.
Am dat cu var_dump($_SESSION['logat']); si rezulta string(2) "Nu"

Scriptul e corect facut, doar am incercat pe 2 localhost-uri, si pe un alt server web (danielsen82.com/brandmagazine.ro), doar hosting-ul brandmagazine.ro face figuri. Ar trebui setat ceva pe server sau la ce anume e problema?
Sus  
DaRk`SouL



Data înscrierii: 19/Noi/2007
Mesaje: 55
Locație: Bucharest, RO

Trimis: Dum Iun 08, 2008 1:14 am    Titlul subiectului:  

am facut o comparatie intre serverul meu ... (defapt, o instalare default a 'wamp'-ului) si serverul dat de tine!
Rezultatul este asta:

1. tu ai parola='".md5($_POST['parola'])."'"; ... iar in phpinfo(); la srv. tau nu am vazut ca functia hash sa fie activata!
la mine este Cod:
hash support
enabled
Hashing Engines
md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

2. cu toate ca motoarele de cautare catalogheaza "session.use_trans_sid" ca fiind "low" ... eu zic ca e bine sa fie on
La mine este: Cod: session.use_trans_sid 0 0
la srv acela este off off

oricum faza cu hash-ul iti cam trebuie, in conditiile in care tu ai pus parola='".md5($_POST['parola'])."'";
tu practic pe srv-ul acela nu ai suport pentru md5, md4.... etc... cryptare


in rest pare ... ok sa zic! Bafta!
Sus  
danielsen



Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca

Trimis: Dum Iun 08, 2008 8:05 am    Titlul subiectului:  

Da, deci serverul respectiv nu are interfata mysql, si depindeam de administratorul de server si pana nu i-a venit cheful sa introduca toate tabelele (inclusiv tabelul `utilizatori` de la mine), nu avea cum sa mearga. Si culmea sa mearga cand parola ii cu md5... dar s-a rezolvat si merge! Thx
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community