Fout bij inloggen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk Verlaan

Henk Verlaan

26/10/2010 21:47:56
Quote Anchor link
Hallo ik ben begonnen met php en heb nu een login script gemaakt die hieronder te zien is. Het probleem is nu dat hij constant aangeeft dat het password of username fout is ligt het aan me script? Want ik weet toch zeker dat ik met phpmyadmin de username en password heb insert. (weet dat md5 niet meer veilig is en dat sha1 nu moet gebruiken) ook gaat het mis als er 2 dezelfde passwords zijn aangezien die count dan niet meer 1 is weet iemand hoe ik dat kan oplossen?
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
$host
= "localhost"; // hostname
$user = "root"; // username
$pass = ""; //password
$db = "user";

$connect = mysql_connect($host, $user, $pass);

If(!$connect) die ("could not connect to the database, mysql error:".mysql_error());
$db_select = mysql_select_db($db, $connect);
if(!$db_select) die("could not find the database, mysql error:".mysql_error());

$table = "users";

$username = $_POST["username"];
$password = $_POST["password"];

$username = stripslashes ($username);
$password = stripslashes ($password);
$username = mysql_real_escape_string ($username);
$password = mysql_real_escape_string ($password);

$encrypt = md5($password);


$sql="SELECT * FROM $table WHERE username='$username' and password='$password'";
$query = mysql_query($sql);
$count = mysql_num_rows($query);

if ($count == 1){

session_register("username");
session_register("password");
header("Location: login_succes.php");
}

else{

echo "wrong password or username";
}



?>
Gewijzigd op 26/10/2010 21:49:37 door Henk Verlaan
 
PHP hulp

PHP hulp

11/01/2025 10:55:07
 
- Ariën  -
Beheerder

- Ariën -

26/10/2010 21:55:48
Quote Anchor link
1) Wat is hier het practisch nut van?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$username = $_POST["username"];
$password = $_POST["password"];

Een beetje editor kent wel variabele-auto-completion, waardoor je zulke fratsen niet meer nodig hebt, verder kost het je server wat geheugen die je ergens anders voor zou kunnen sparen. Dus gebruik liever in je script: $_POST["username"] i.p.v. het in een variabele op te slaan.

2) Session_register() is allang dood. Gebruik gewoon
$_SESSION['username'] = $_POST['username'].

3) Doe in godsnaam wat aan foutafhandeling bij je mysql_query.

4) Variabelen horen buiten quotes.....

Om op je probleem terug te komen. Is je veld voor je password wel minimaal 32 tekens lang?
Gewijzigd op 26/10/2010 21:57:19 door - Ariën -
 
Arjan -

Arjan -

26/10/2010 22:04:59
Quote Anchor link
Aar anoniem op 26/10/2010 21:55:48:
1) Wat is hier het practisch nut van?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$username = $_POST["username"];
$password = $_POST["password"];

Een beetje editor kent wel variabele-auto-completion, waardoor je zulke fratsen niet meer nodig hebt, verder kost het je server wat geheugen die je ergens anders voor zou kunnen sparen. Dus gebruik liever in je script: $_POST["username"] i.p.v. het in een variabele op te slaan.


Een beetje nutteloze opmerking. Dit kost misschien 1 byte geheugen en het nut van $_POST['username'] in een variabele $username zetten heeft zeker wel nut, want:

$username = stripslashes($_POST['username']);
$username = htmlspecialchars($_POST['username']);

is wat anders dan:

$username = $_POST['username'];
$username = stripslashes($username);
$username = htmlspecialchars($username);

En een $_POST['username'] = stripslashes($_POST['username']); vind ik niet echt een mooie oplossing en kost wat meer tijd om te typen (tegenwoordig is leesbaarheid ook belangrijk, zo niet belangrijker dan een byte meer of minder).

---------------------------------------------------------------------

Terugkomend op je vraag: Je gebruikt $password in je query, terwijl de md5 variant van je wachtwoord $encrypt heet.... Dat gaat dus niet werken.

En wat Aar bedoelt met "buiten quotes halen van variabelen" is (in jouw voorbeeld):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sql
= "SELECT * FROM ".$table." WHERE username='".$username."' and password='".$encrypt."'";
?>

Gewijzigd op 26/10/2010 22:14:43 door Arjan -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.