Jump to content
php.lv forumi

login problēma


nn_

Recommended Posts

if (isset($_POST['enter']) && !empty($_POST['pwd']))
{
 //fetch
 $datubaze = new datubaze();
 $usr = $_POST['usr'];
 $pwd = md5($_POST['pwd']);
 //if (mysql_affected_rows(mysql_query("SELECT * FROM `administratori` WHERE name='$usr' AND password='".md5($pwd)."'")))
 //if ($datubaze->f("SELECT * FROM `administratori` WHERE name='$usr' AND password='".md5($pwd)."'"))
$q = $datubaze->q("SELECT * FROM `administratori`");
while($b = mysql_fetch_array($q)){
if($usr = $b['name'] && $pwd  == $b['password'])
{

 

Kapēc man negrib strādāt (izmet mysql warningu)

if ($datubaze->f("SELECT * FROM `administratori` WHERE name='$usr' AND password='".md5($pwd)."'"))

Pašreizējā metode strādā, bet gribās uzzināt kas nepareizi šajā.

Edited by nn_
Link to comment
Share on other sites

NETAISAM LIEKAS QUOTES (bubu)

 

pirmkārt tu lieto kautkādu smagu SQL klasi, otrkārt, tev nešķiet ka

if($usr = $b['name'] && $pwd  == $b['password'])

vajadzētu būt tā?

if($usr = $b['name'] && md5($pwd)  == $b['password'])

 

es piem. lietoju sevis taisītu SQL klasi priekš PHP 5, priekš PHP4 ir jau gatava klase arī ļoti vienkārša ...

 

ja kas SQL klase priekš PHP5 un MYSQL >4.1 ir te ...

 

http://paste.php.lv/2789

Edited by bubu
Link to comment
Share on other sites

1. nelietoju nekādu smagu SQL klasi, manis veidota un ļoti primitīva.

2.

$pwd = md5($_POST['pwd']);

man vaig vēlreiz viņu md5'ot?

 

Īsā atbilde: Jā.

 

Garā atbilde:

md5() ir funkcija, kas "šifrē" paroli. Tā, ko tev iesūta lietotājs ir nešifrēta. Attiecīgi ja viena no parolēm ir šifrēta, bet otra nešifrēta, tad nu viņas nekādi nevar būt vienādas (savādāk šifrēšanai nebūtu jēgas).

 

Tā kā md5 praktiski nevar atšifrēt, tad vienkāršākais variants ir vienkārši nošifrēt lietotāja iesūtīto paroli un salīdzināt jau šifrēto variantu ar to, kas ir datubāzē vai kur nu tu viņu glabā. Ja šifrētie varianti abām parolēm ir vienādi, tad praktiski ir vienādas arī paroles. Ir zināmas atkāpes, bet nu tās ir tik reti iespējamas, ka par tām šoreiz nerunāsim.

Link to comment
Share on other sites

Kaklz, tu pārprati viņu. Viņam kodā jau ir md5 pielietots (pasties pirmo postu). Taču [Ya] saka, ka viņam tajā if'ā atkal jāpielieto md5. Iznāks kautkas tās if (md5(md5($text)) == '...')

No tā gan īsti lielas jēgas nav (protams, tūlīt atnāks blackhalt un stāstīs pretējot ;)

Link to comment
Share on other sites

papildus drošībai jau var kko vēl pielikt klāt, bet man pilnīgi pietiks ar parastu md5().

Kāds nevar pateikt kapēc man šis neiet.

if ($datubaze->f("SELECT * FROM `administratori` WHERE name='$usr' AND password='".md5($pwd)."'"))

un šis arī

if (mysql_affected_rows(mysql_query("SELECT * FROM `administratori` WHERE name='$usr' AND password='".md5($pwd)."'")))

Edited by nn_
Link to comment
Share on other sites

Netaisam liekas QUOTES (bubu) un lasam, ko raksta reply logā:

Ja Tu vēlies ievietot pagarāku PHP kodu, tad izmanto paste.php.lv sniegtās iespējas un ierakstā atstāj atsauci uz to!

<?php

//K: Datubāze
class datubaze extends system {

 var $theQuery;
 var $link;

 //F: Savienojamies ar datubāzi
 function db_connection(){

	 //I: Ielādējam uzstādījumus
	 $settings = system::get_settings();

	 //I: Vajadzīgie uzstādījumi
	 $host = $settings['dbhost'];
	 $db = $settings['dbname'];
	 $user = $settings['dbusername'];
	 $pass = $settings['dbpassword'];

	 //I: Savienojamies ar datubāzi
	 $this->link = mysql_connect($host, $user, $pass);
	 mysql_select_db($db);
	 register_shutdown_function(array(&$this, 'close'));
 }

 //F: Izpildam kvēriju
 function q($query) {

	 $this->theQuery = $query;
	 return mysql_query($query, $this->link);

 }

 //F: Dabonam array no kvērija
 function f($result) {

	 return mysql_fetch_array($result);

 }

 //F: Aizveram savienojumu ar datubāzi
 function close() {

	 mysql_close($this->link);

 }

}
?>

Link to comment
Share on other sites

×
×
  • Create New...