user en pass check
Mijn tabel heeft 3 kollommen: id user pass
Zoiets:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if (
while($record = mysql_fetch_object($sql)){
echo '$user == '.$record->user.' && $pass == '.$record->pass.' || ';
}
?>
if (
while($record = mysql_fetch_object($sql)){
echo '$user == '.$record->user.' && $pass == '.$record->pass.' || ';
}
?>
Ik heb echt geen id...
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT * FROM users WHERE user='" . $username . "' AND pass = '" . $password . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
echo 'user gevonden en wachtwoord is correct';
}
?>
$sql = "SELECT * FROM users WHERE user='" . $username . "' AND pass = '" . $password . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
echo 'user gevonden en wachtwoord is correct';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Roy Bongers
SELECT id, user FROM tabel WHERE user = $user AND pass = sha($pass);
Alleen dan netjes :).
Code (php)
1
2
3
4
5
2
3
4
5
$query = "SELECT id FROM tabel
WHERE user = '" . $_POST['user'] . "' &&
pass = '" . $_POST['pass'] . "'
LIMIT 1
";
WHERE user = '" . $_POST['user'] . "' &&
pass = '" . $_POST['pass'] . "'
LIMIT 1
";
Edit:
Te traag... ;P !
Gewijzigd op 01/01/1970 01:00:00 door Ponzi
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
echo 'user gevonden en wachtwoord is correct';
}
?>
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
echo 'user gevonden en wachtwoord is correct';
}
?>
Dat werkt! Bedankt allemaal!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
session_start();
$_SESSION['login'] = "true";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
?>
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
session_start();
$_SESSION['login'] = "true";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
?>
Als ik dat doe en met een geldige login inlog krijg ik dit:
user gevonden en wachtwoord is correct
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/borisbez/domains/xxx.nl/public_html/login/index.php:11) in /home/borisbez/domains/xxx.nl/public_html/login/index.php on line 42
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/borisbez/domains/xxx.nl/public_html/login/index.php:11) in /home/borisbez/domains/xxx.nl/public_html/login/index.php on line 42
En dat klopt inderdaad want dit staat boven de php-code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
<title>Log In</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>
Ik wilde de pagina namelijk w3c valid maken. Hoe pak ik dit nu aan?
Je moet je sessie starten VOOR je eerste echo ;) ! Dus bovenaan het document...
Maar ik wil de sessie alleen starten als de user en pass goed is. Of kan dat niet?
Ik ga nu even (kwartiertje) weg en kom straks terug om verder te puzzelen.
starten kan geen kwaad, of je moet een header('location:goedingelogd.php'); opgeven waar je sessie word gestart
Dat snap ik niet helemaal ......:-( :-$
Let even op dat als je een select uitvoerd aan de hand van username en password, dat dit in je database Unique moet zijn!
Maar goed, ik snap het nog steeds niet...
Weet iemand een oplossing?
Wat ik wil is een inlog script. (ik maak het zelf)
Dit is wat ik heb tot nu toe:
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
25
26
27
28
29
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
<?php
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/
if (!isset($_POST['submit'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" /> ';
echo '<input type="password" class="text" size="12" name="pass" /> ';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
} else {
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
$login = "ingelogd";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
}
?>
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/
if (!isset($_POST['submit'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" /> ';
echo '<input type="password" class="text" size="12" name="pass" /> ';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
} else {
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
$login = "ingelogd";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
}
?>
Dit bestand wil ik kunnen includen op een pagina zodat die pagina beveiligd is.
Gewijzigd op 01/01/1970 01:00:00 door K i p
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
25
26
27
28
29
30
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
<?php
session_start();
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/
if (!isset($_POST['submit'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" /> ';
echo '<input type="password" class="text" size="12" name="pass" /> ';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
} else {
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
$login = "ingelogd";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
}
?>
session_start();
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/
if (!isset($_POST['submit'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" /> ';
echo '<input type="password" class="text" size="12" name="pass" /> ';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
} else {
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
echo 'user gevonden en wachtwoord is correct';
$login = "ingelogd";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
}
?>
btw dit script is best vatbaar voor SQL Injection als magic_quotes_gpc() uitstaat.
Gewijzigd op 01/01/1970 01:00:00 door Roy Bongers
Dat het 'best vatbaar voor SQL Injection' is als magic_quotes_gpc() uitstaat? En wat is dat?
Maar als ik nu ingelogd ben, en naar een andere pagina link die ook beveiligd is moet ik weer opnieuw mijn wachtworod invullen. Hoe kan ik dat veranderen?
door een safe.php te maken en niet inloggen.php op iedere pagina te includen
Mm, ik snap het nog steeds niet, sorry :-(