Czesc, pisze sobie maly skrypt logowania i rejestracji w php. Skrypt jest napisany, ale problem polega na tym, ze nie odroznia od wielkosci liter, rejestrujac sie wpisalem haslo malymi litrami(login w sumie tez) i niewazne jaka kominacja, duzych,malych liter byle by bylo to samo haslo, to i tak wejdzie przez system logowania.
0
0
Hasło powinno być hashowane :P
0
_
<font size="40" color="red">POKAŻ KOD</span>
0
<?php
ob_start();
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name
@mysql_connect("$host", "$username", "$password")or die("cannot connect");
@mysql_select_db("$db_name")or die("cannot select DB");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$_SESSION['username']= $myusername;
$_SESSION['mypassword']= $mypassword;
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
0
A tutaj register php
<?php
include("login.php");
$login=$_POST["login"];
$haslo=$_POST["password"];
$zapytanie=@mysql_query("INSERT INTO members(id,username,password) values ('','$login','$haslo')");
header("Location: main_login.php");
?>
0
O mój słodki boże, co to jest?
1.Wszystkie funkcje mysql_*
są zdeprecjonowane.
2.Dlaczego nie hashujesz hasła?
3.Nie sprawdzasz czy odczytywane przez Ciebie dane w ogóle istnieją w $_POST
.
4.@mysql_connect("$host", "$username", "$password")
a te cudzysłowy tutaj po co?
5.Wydziel łączenie z bazą do osobnego pliku, a najlepiej osobnego pliku i klasy.
6.INSERT INTO members(id,username,password) values ('','$login','$haslo')
po co robisz insert z id
, skoro potem i tak go nie podajesz? :v
1
- zmienić collation tabeli z
_ci
na_cs
- dodać
BINARY
do warunku -SELECT * FROM $tbl_name WHERE BINARY username='$myusername' and BINARY password='$mypassword'
0
Dziekuje serdecznie za odp. Temat do zamkniecia.