hulp Inlog script
ik ben bezig met een inlogscript maar het werkt niet.
weten jullie waar het aan kan liggen.
----------------------------------------------------------------------------
<form action="?pagina=6s" method="post">
naam: <br /><input type="text" size="8" style="background-color:#153E7E;" name="name" /><br />
wachtwoord: <br /><input type="password" size="8" style="background-color:#153E7E;" name="password" /><br />
<input name="Log In" type="submit" value="Log In"/>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$con = mysql_connect("host","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database");
$username=$_POST['name'];
$password=$_POST['password'];
$sql="SELECT * FROM users WHERE username='$username' and password='$password'";
$result= mysql_query($sql);
$count= mysql_num_rows($result);
echo $count;
if($count==1)
{
echo "u heeft de goede inlog gegevens gebruikt";
}
mysql_close();
?>
$con = mysql_connect("host","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database");
$username=$_POST['name'];
$password=$_POST['password'];
$sql="SELECT * FROM users WHERE username='$username' and password='$password'";
$result= mysql_query($sql);
$count= mysql_num_rows($result);
echo $count;
if($count==1)
{
echo "u heeft de goede inlog gegevens gebruikt";
}
mysql_close();
?>
Gewijzigd op 14/12/2011 19:50:40 door Tim asdf
vertel anders voortaan even wat er niet werkt?
Zoals ik zie ontbreekt een controle of er gepost is:
Gewijzigd op 14/12/2011 19:52:41 door - Ariën -
naam: <br /><input type="text" size="8" style="background-color:#153E7E;" name="name" /><br />
wachtwoord: <br /><input type="password" size="8" style="background-color:#153E7E;" name="password" /><br />
<input name="Log In" type="submit" value="Log In"/>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
$con = mysql_connect("host","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database");
$sql="SELECT * FROM users WHERE username='".mysql_real_escpae_string($_POST['name'])."' AND password='".mysql_real_escpae_string($_POST['password'])."'";
if($result= mysql_query($sql)){
$count= mysql_num_rows($result);
echo $count;
if($count==1)
{
echo "u heeft de goede inlog gegevens gebruikt";
}
}else{
echo "Error in de query";
}
mysql_close();
}
?>
if($_SERVER['REQUEST_METHOD']=="POST") {
$con = mysql_connect("host","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database");
$sql="SELECT * FROM users WHERE username='".mysql_real_escpae_string($_POST['name'])."' AND password='".mysql_real_escpae_string($_POST['password'])."'";
if($result= mysql_query($sql)){
$count= mysql_num_rows($result);
echo $count;
if($count==1)
{
echo "u heeft de goede inlog gegevens gebruikt";
}
}else{
echo "Error in de query";
}
mysql_close();
}
?>
Gewijzigd op 14/12/2011 20:03:59 door Nick Dijkstra
ik krijg ook de warning:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...../public_html/6s.php on line 72
Hoe is het password opgeslagen, encrypted of gewoon als string?
hoe ziet je database eruit?
- Aar - op 14/12/2011 19:59:33:
Verder ontbreekt ook foutafhandeling op je query.
Inbouwen dus, want je query mislukt blijkbaar.
Dan weet je direct wat er fout gaat met jouw query.
Gewijzigd op 14/12/2011 20:10:52 door - SanThe -
id smallint(20) No auto_increment
gebruikersnaam varchar(20) latin1_general_ci No
wachtwoord varchar(20) latin1_general_ci No
Tim schurink op 14/12/2011 20:15:26:
mijn password is nu nog gewoon als string opgeslagen,
Snel door SHA1 gooien, en het liefst een goede salt. mocht je database ooit uitlekken (en SQL injection is mogelijk) dan zijn je leden flink de pineut...
Gewijzigd op 14/12/2011 20:18:13 door - Ariën -
ja maar dat veranderd niets aan het feit dat het script niet werkt.
Plus dat je foutafhandeling toe moet voegen. Nu hoor je van PHP alleen dat de query mislukt, terwijl je van MySQL niet hoort wat er mis is.
$sql="SELECT * FROM users WHERE gebruikersnaam='".mysql_real_escpae_string($_POST['name'])."' AND wachtwoord='".mysql_real_escpae_string($_POST['password'])."'";
ja oke, ik ga het meteen veranderen. maar voor de duidelijkheid, ik ben net begonnen met databases en dit is meer om te leren. het word niet direct voor een werkende site gebruikt.
Dan alsnog zou ik het wel goed doen, al is het maar om er van te leren.