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
 

problema script login
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
xtcs



Data înscrierii: 05/Mai/2008
Mesaje: 5

Trimis: Lun Mai 05, 2008 7:46 am    Titlul subiectului: problema script login  

va salut
am incercat sa folosesc un script de login dar imi da urmatoarea eroare : "Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\login.php on line 20."
Ce este gresit in script?
multumesc

Cod:
<?php
session_start();
if(isset($_POST['submit'])){
$mysql = mysql_connect("localhost","root","####");
        mysql_select_db("baza",$mysql);
   if(!empty($_POST['username'])){
      $username = htmlspecialchars($_POST['username']);
   } else {
      $username = false;
      echo '<p>Please insert the username</p>';
   }
   if(!empty($_POST['password'])){
      $password = $_POST['password'];
   } else {
      $password = false;
      echo '<p>Please insert the password</p>';
   }
   if($username && $password){
      $query = mysql_query("SELECT * FROM `users` WHERE `username` = '".mysql_escape_string($username)."' AND `password` = '".MD5($password)."' ");
      $row = mysql_fetch_assoc($query);
      if(@mysql_num_rows($query) == 1){
         $_SESSION['login'] = true;
          header("Location:index.php");
      } else {
         echo '<p>Please insert again the username and passsword </p>';
      }
   }
}
?>
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1801
Locație: Sibiu

Trimis: Lun Mai 05, 2008 8:14 am    Titlul subiectului:  

Inlocuieste asa (ma gandesc ca iti dai seama unde trebuie sa inlocuiesti):
Cod: $query = mysql_query("SELECT * FROM `users` WHERE `username` = '".mysql_escape_string($username)."' AND `password` = '".MD5($password)."' ") or die (mysql_error()); Acolo iti da o eroare mysql pe care tu nu o captezi. Vezi ce e cu ea.
Sus  
xtcs



Data înscrierii: 05/Mai/2008
Mesaje: 5

Trimis: Lun Mai 05, 2008 8:55 am    Titlul subiectului:  

mersi mult am gasit eroarea aveam in baza de date user iar in cod era username.Dar acum chiar daca introduc date corecte din baza de date imi da
"Please insert again the username and passsword".Baza de date e formata din tabela users cu id(index primar),user,pass si mail.
Sus  
dunno



Data înscrierii: 14/Feb/2008
Mesaje: 9

Trimis: Lun Mai 05, 2008 9:29 am    Titlul subiectului:  

Mie functia mysql_real_escape_string imi resteaza uneori variabila.
Poate se intampla si cu mysql_escape_string.

Incearca o filtrare cam asa si vezi daca merge:

Cod:

if(!is_numeric($username))
{
  $username = @mysql_real_escape_string($username);
}
  $username = htmlspecialchars($username, ENT_QUOTES);


 $query = mysql_query("SELECT * FROM `users` WHERE `username` LIKE '".$username."' AND `password` = '".md5($password)."' ") or die (mysql_error());



Cu operatorul "=" daca nu introduci username-ul exact ca in baza de date (este case sensitive), nu il recunoaste ca valid; l-am inlocuit cu "LIKE".

Poate merge
Sus  
xtcs



Data înscrierii: 05/Mai/2008
Mesaje: 5

Trimis: Lun Mai 05, 2008 9:55 am    Titlul subiectului:  

mersi dar tot nu merge
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE

Trimis: Lun Mai 05, 2008 10:41 am    Titlul subiectului:  

`username` LIKE '".$username."' ... p-asta nu am mai vazut-o...
si daca e CS ce?!

mihaita are dreptate... pune un or die(mysql_error()) si un error_reporting(E_ALL) ca sa vezi ce e gresit... apoi te poti baza pe script
Sus  
xtcs



Data înscrierii: 05/Mai/2008
Mesaje: 5

Trimis: Lun Mai 05, 2008 2:28 pm    Titlul subiectului:  

asa cum am spus mai sus numai apare nici o eroare la script insa chiar daca introduc un nume de utilizator si o parola care se afla in baza de date scriptul nu le gaseste si afiseaza "echo '<p>Please insert again the username and password </p>' ",deci merge numai pe else.
Sa fie ceva in neregula pe la aceste if-uri?
Cod:
if($username && $password){
      $query = mysql_query("SELECT * FROM `users` WHERE `username` = '".mysql_escape_string($username)."' AND `password` = '".MD5($password)."' ") or die (mysql_error());
      $row = mysql_fetch_assoc($query);
      if(@mysql_num_rows($query) == 1){
         $_SESSION['login'] = true;
          header("Location:index.php");
      } else {
         echo '<p>Please insert again the username and passsword </p>';
      }
   }
}
Sus  
dunno



Data înscrierii: 14/Feb/2008
Mesaje: 9

Trimis: Lun Mai 05, 2008 8:23 pm    Titlul subiectului:  

vectorialpx a scris: `username` LIKE '".$username."' ... p-asta nu am mai vazut-o...
si daca e CS ce?!


da, eu folosesc asa ceva si merge :D

si, daca e "CS" iar el introduce in formular ZM iar in baza de date e zm, inainte neefectuand o unformizare (strtolower, de exmplu), ar putea sa nu ii mearga autentificarea


on topic:

incearca sa adaugi un LIMIT 1 la $query
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE

Trimis: Lun Mai 05, 2008 9:53 pm    Titlul subiectului:  

@mysql_num_rows($query) == 1 // detest codul inutil

de ce ai pus @ in fata?... daca resursa exista atunci totul e ok... daca nu, afisezi eroare, cum ca query-ul e incorect or else

ia afiseaza tu mysql_num_rows ala... sa vezi ce iese

dunno, CS = case sensitive [sorry de prescurtare]... nu e nimic rau daca e case sensitive
Sus  
xtcs



Data înscrierii: 05/Mai/2008
Mesaje: 5

Trimis: Mar Mai 06, 2008 7:30 am    Titlul subiectului:  

am refacut baza de date si acum totul merge perfect(cu toate ca inainte baza era identica)
thanks all
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