Jump to content
php.lv forumi

Problēmas ar lietotāju reģistrāciju


bbaigaa

Recommended Posts

Izveidoju autorizāciju, bet kad piereģistrē jaunu lietotāju, nevar to ielogot. datubāzē uzrādās hašotā parole un nevar ielogoties, rāda ka parole ir nepareiza. ko es daru nepareizi?

 

 

add new.php

________________

<form action="add_new.php" method="post" name="pieviono">

(*)Lietotājvārds: <input type="text" name="username" /><br />

(*)Parole: <input type = "password" name="password" /><br />

(*)Vārds: <input type = "text" name="vards" /><br />

(*)Uzvards: <input type= "text" name="uzvards" /><br />

(*)Lietotajgrupa: <input type="text" name="lietotajgrupa" maxlength="1" /><br />

<input type="submit" value="Pievienot" />

</form>

<?php

 

//mainīgo glabāšana

if (isset($_POST) && !empty($_POST))

{

$username = $_POST['username'];

$password = $_POST["password"];

$vards = $_POST["vards"];

$uzvards = $_POST["uzvards"];

$lietotajgrupa = $_POST["lietotajgrupa"];

 

// pārbauda vai izpildās visi vajadzīgie nosacījumi

if($username != NULL && $password != NULL && $vards != NULL && $uzvards != NULL && $lietotajgrupa != NULL && $count == 0)

{

$sql="INSERT INTO lietotaji VALUES ('$username',MD5('$password'),'$vards','$uzvards', '$lietotajgrupa')";

mysql_query($sql);

echo 'Lietotājs veiksmīgi pievienots!';

}

Link to comment
Share on other sites

if($username != NULL && $password != NULL && $vards != NULL && $uzvards != NULL && $lietotajgrupa != NULL && $count == 0)
=
if($username && $password && $vards && $uzvards && $lietotajgrupa && !$count)

 

if(($_SESSION["password"] == false) && (isset($_SESSION["password"])))
{
echo "Nepareizs lietotājvārds un/vai password!";
session_destroy();
}
?>

Ja parole glabājas datubāzē tad pārbaudot viņu vajadzētu no turienes izvilkt ārā, te nekas tāds nenotiek.

Link to comment
Share on other sites

Vispār jau pie ielogošanās būtu jāpārbauda $_POST, nevis $_SESSION. $_SESSION jāuzseto no $_POST mainīgā, pēc tam to var pārbaudīt.

Bet nu tur kaudze citu neveiklību, jau sākot ar iespējamām SQL injekcijām, bet tas atsevišķs temats.

Link to comment
Share on other sites

kkā tā laikam

 

 

$lietotajs = $_POST['lietotajs']; // lietotajs no autentifikacijas lapas

$password = $_POST['password']; // password ko ievada lietotajs

 

// SQL pieprasijuma izveide un izpilde

$sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'";

$result=mysql_query($sql);

 

 

$count=mysql_num_rows($result);

// ja lietotajvards un password sakrita rindu skaitam jaabut viens

 

//echo $row['password'];

if($count==1)

{

// ja rindu skaits ir viens sakam sesiju un ejam uz lapu kas pieejama

// registretiem lietotajiem

$_SESSION["useris"] = $row['username'];

header("location:login_success.php");

}

else

{

// ja rindu skaits nav viens ejam atpakal uz ielogoљanas formu un izvadam kludas pazinojumu

$_SESSION["password"] = false;

header("location:login.php");

}

?>

Link to comment
Share on other sites

Atšķiras paroles pārbaudes

$sql="INSERT INTO lietotaji VALUES ('$username',MD5('$password'),'$vards','$uzvards', '$lietotajgrupa')";

un

$sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'";

izvadi tak SQL teikumus, kāds ir pie reģistrācijas, un kāds pie pārbaudes, vai tiešām tie ir vienādi, un vai datu bāzē paroles hash ir pareizs, nevis uzreiz taisi redirektu, pēc kura vairs nekāda debug informācija nav pieejama....

Link to comment
Share on other sites

kā pareizi meklēt to paroli?

 

šādi neder?

$password = $_POST['password']; // password ko ievada lietotajs

 

// SQL pieprasijuma izveide un izpilde

$sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'";

$result=mysql_query($sql);

Link to comment
Share on other sites

$string = 'kakjiiC';

echo $string . '<br />';
echo md5( $string );

 

...pēc izpildes:

 

kakjiiC

942a2d2c11f859c19a5b9d1e326234a3

 

...un kakjiiC nav tas pats, kas 942a2d2c11f859c19a5b9d1e326234a3.

Link to comment
Share on other sites

Izmaini kodu šādi:

$lietotajs = $_POST['lietotajs'];	// lietotajs no autentifikacijas lapas
$password = $_POST['password'];	 // password ko ievada lietotajs

// SQL pieprasijuma izveide un izpilde
$sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'";
$result=mysql_query($sql);


$count=mysql_num_rows($result);
// ja lietotajvards un password sakrita rindu skaitam jaabut viens

//echo $row['password'];
if($count==1)
{
// ja rindu skaits ir viens sakam sesiju un ejam uz lapu kas pieejama 
// registretiem lietotajiem
$_SESSION["useris"] = $row['username'];
header("location:login_success.php");
}
else 
{
//noticis ļaunums, paskatāmies, kāds īsti bija pieprasījums
echo $sql."<br>\n";
}
?> 

un tad paskaties, kā tava parole izskatās datu bāzē!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...