Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak odczytaść wartość pola z parametrem PASSWORD
Forum PHP.pl > Forum > Bazy danych > MySQL
bob1223
Witam, mam taki problem: Hasło które znajduje się w bazie MySQL ma parametr PASSWORD tak aby nie było widoczne dla kogoś kto zaloguje sie do bazy danych. Do porównania podanych haseł przy logowaniu używam takiego kodu:
  1. $sql = "SELECT * FROM $table_name WHERE t_login = '$user_login' AND t_pass = PASSWORD('$user_pass')";
, nie wiem tylko jak pobrać z MySQL'a hasło i zapisać do zmiennej. Taki kod nie działa:
  1. $fHaslo = "".$wiersz['."PASSWORD(".'t_pass'.")".]."";
bounty
nie sprawdzałem ale próbuj dać zamiast mysql_fetch_array albo mysql_fetch_assoc daj mysql_fetch_row
przykład
Kod
<?php
  $q = "SELECT t_pass FROM $table_name WHERE t_login = '$user_login' AND t_pass = PASSWORD('$user_pass')";
  $result = mysql_query($q);
  $row = mysql_fetch_row($result);
  $haslo = $row[0];
  ?>
bob1223
Nie wiem czy coś pochrzaniłem w trakcie przerabiania. Kod nie działa, brak errorów z php, JEDNAk wyświetla się komunikat "Nie można wysłać zapytania!", mój kod:
  1. include("../konfiguracja.php");
  2.  
  3. $connection = mysql_connect($localhost_db, $login_db, $haslo_db) OR die("Nie można poł&plusmn;czyć się z baz&plusmn;!");
  4. mysql_select_db($baza_db, $connection) OR die ("Nie można wybrać bazy");
  5.  
  6. $sql = "SELECT t_pass FROM $table_name WHERE t_login = '$user_login' AND t_pass = PASSWORD('$user_pass')";
  7. $result = mysql_query($sql, $connection) OR die ("Nie można wysłać zapytania!");
  8.  
  9. $row = mysql_fetch_row($result);
  10. $haslo = $row[0];
  11.  
  12. echo("haslo $haslo");
miro20
$query="select * from bazadanych where login='$login'" ;



$result=mysql_query($query);
$row = mysql_fetch_array($result);

$haslo=$row['password'];

echo ..
bob1223
Nie bardzo rozumiem to co napisałeś, możesz wytłumaczyć podane linie?

Tak to rozumiem:
  1. include("../konfiguracja.php");
  2.  
  3. $connection = mysql_connect($localhost_db, $login_db, $haslo_db) OR die("Nie można poł&plusmn;czyć się z baz&plusmn;!");
  4. mysql_select_db($baza_db, $connection) OR die ("Nie można wybrać bazy");
  5.  
  6. $sql = "SELECT t_pass FROM $table_name WHERE t_login = '$user_login'";
  7. $result = mysql_query($sql, $connection) OR die ("Nie można wysłać zapytania!");
  8.  
  9. $row = mysql_fetch_row($result);
  10. $sprpass = $row['password'];
  11.  
  12. echo("haslo: $sprpass");


Niesety w dalszym ciągu "Nie można wysłać zapytania!"
miro20
ja mamzrobione tak

mysql.php

Cytat
<?
{
include ('logininc.php');
include ('database.php');
}
@$db=mysql_pconnect(localhost,$user,$haslo) or die('Error');

mysql_select_db("$database");

?>



plik.php
Cytat
{
include ('mysql.php');
}
$query="select * from consultants where login='$login'" ;



$result=mysql_query($query);
$row = mysql_fetch_array($result);
mysql_close;


pozniej juz robisz co chcesz z $row..

u mnie tak dziala smile.gif
bob1223
U mnie cały czas komunikat o błędzie sad.gif "Nie można wysłać zapytania!"
miro20
Cytat
<?
{
include('./scripts/logininc.php');
include('./scripts/database.php');
}
$login='miro20';

$connection = mysql_connect(localhost, $user, $haslo) or die("Nie mozna pol&plusmn;czyc sie z baz&plusmn;!");
mysql_select_db($database,$connection) or die ("Nie mozna wybrac bazy");

$sql = "SELECT password FROM consultants WHERE login = '$login'";
$result = mysql_query($sql,$connection) or die ("Nie mozna wyslac zapytania!");

$row = mysql_fetch_array($result);
$haslo = $row['password'];
print $sql;
echo("haslo: $haslo");
?>


U mnie dziala zmienilem $row = mysql_fetch_row($result); na array , i $localhost_db wconnection , na localhost , ale to juz zalezne tylko gdzie sie laczysz do bazy
bounty
Kod
  $result = mysql_query($sql) or die ("Nie można wysłać zapytania!");

Spróbuj tak
vokiel
Tak w ogóle to czemu chcesz pobierać hasło do zmiennej??
Jeszcze się nie spotkałem z przypadkiem żebym potrzebował tak robić. Ze względów bezpieczeńśtwa tak się nie powinno robić.

A tak poza tym to:
Cytat
PASSWORD() encryption is one-way (not reversible).

Zatem nie odczytasz tak po prostu oryginału hasłą, przed tym jak zostało zakodowane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.