Jump to content
php.lv forumi

nesaprotu kļūdu!


ziedinjsh

Recommended Posts

parasts login scripts

Login.php

<?php
include "misc/connect.php";
if (isset($_POST['login'])){

session_start();

$login="SELECT * FROM `login` WHERE ((user_name='$user_name') AND (user_password='$user_password')) LIMIT 1;";
$result= mysql_query($login, $connection) or die
("Could not execute query : $login." . mysql_error());

if (mysql_num_rows($result) == 0)
{

echo "<div align=center><b>Oops! Your login is wrong. Please click back and try again.</b></div>";

}
else
{
$r=mysql_fetch_array($result);
$login_user_name=$r["user_name"];
session_register("login_user_name");
Header("Location: admin.php");
}

}

echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo "<b>Username</b>:<input type='text' name='user_name' size='20'><br>";
echo "<b>Password</b>:<input type='password' name='user_password' size='20'><br>";
echo "<input type='submit' name='login' value='Login'>";
echo "</form>";

?>

admin.php

<?php

include "misc/connect.php";

session_start();
if($login_user_name=="") {
Header("Location: login.php");
} else {

echo "esmu iekša!!";
}
?>

 

ka dmeiģinu ielogoties man parādās sekojošas lietas:

Notice: Undefined variable: user_name in D:\WEB\www\dr-y\login.php on line 7

 

Notice: Undefined variable: user_password in D:\WEB\www\dr-y\login.php on line 7

 

Notice: Undefined variable: connection in D:\WEB\www\dr-y\login.php on line 8

 

Warning: mysql_query() expects parameter 2 to be resource, null given in D:\WEB\www\dr-y\login.php on line 8

Could not execute query : SELECT * FROM `login` WHERE ((user_name='') AND (user_password='')) LIMIT 1;.

 

es nesaprotu kas ir pa lietu!

 

Paldies jau iepriekš! :)

Link to comment
Share on other sites

ka sman tagad ir jādara lietas labā?

 

Jānodefinē mainīgais, pirms viņu izmanto.

 

Vai pārbaudi, vai viņš ir uzstādīts (isset($var)), ja ir, tikai tad izmanto. If konstrukciju tak māki?

 

 

Definēšana ir process, kurā mainīgajam tiek piešķirta vērtība :)

 

(eh, redz kur tas sliktums, ka php valoda ir pārāk "vaļīga")

Edited by briedis
Link to comment
Share on other sites

Laikam jau vispirms jānodefinē to lietotāja un paroles mainīgo:

 

$user_name = $_POST['lietotajs'];

$user_pass = $_POST['parole'];

 

un piebilde, vajadzētu tomēr pārbaudīt, vai tas lietotāja vārds un parole ir drošības normām atbilstoši un nav mēģināts iebakstīt kaut kas, lai tiktu visam garām. Pats pirmais, kas nāk prātā ir pēdiņas, ko vajadzētu izgriezt no lietotāja vārda lauka. Ja paroli vispirms pārdzenam uz MD5 tad laikam varam iztikt bez validācijas. Ja kļūdos, gan jau spečuki palabos.

Link to comment
Share on other sites

jā, register_globals bija off, ieslēdzu un izdzēsu $connection no

$result= mysql_query($login, $connection) or die

 

un tagad iet

 

Un domā tas bija prātīgi darīts? :))

 

Tev tak tika viss izstāstīts, kas jādara, bet nē... eh, vot nolaižas rokas šitādiem keksiem palīdzēt!

Edited by briedis
Link to comment
Share on other sites

Tev tak tika viss izstāstīts, kas jādara, bet nē... eh, vot nolaižas rokas šitādiem keksiem palīdzēt!

"palīdzēt" tas priekš katra ir kkas cits. vienam pietiek ar register_globals, citam ir vērts kko vairāk paskaidrot. okeānu zupas katlā tāpat neieliesi :D:D:D

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...