altijd inloggen
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
31
32
33
34
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
<?php
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
?>
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
?>
om het mezelf makkelijker te maken heb ik overal comments bij gezet, maar het probleem is dat ik altijd kan inloggen wat ik ook invul, weet iemand wat ik verkeerd doe?
- eerst controleren of de beide velden zijn ingevuld
- zoja dan de query
- maar wat komt er uit de query? check met mysql_num_rows of er een resultaat wordt opgehaald, als er 0 rows uit komen => verkeerd wachtwoord
als er 1 uitkomt => $_SESSION aanmaken.
als er meerdere uitkomen, is je database verkeerd.
En zorg ervoor dat session_start(); bovenaan staat.
Hier doe je niets mee:
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
Als $name en $password beiden enige inhoud hebben (maakt niet uit wat) geeft dit ALTIJD true:
$_SESSION['loggedin'] = $name && $password;
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
31
32
33
34
35
36
37
38
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
<?php session_start();
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) = 1){
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
}
?>
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) = 1){
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
}
?>
zo beter?
Gerhard l op 30/08/2011 10:57:46:
je volgorde is verkeerd en je mist wat:
- eerst controleren of de beide velden zijn ingevuld
- zoja dan de query
- maar wat komt er uit de query? check met mysql_num_rows of er een resultaat wordt opgehaald, als er 0 rows uit komen => verkeerd wachtwoord
als er 1 uitkomt => $_SESSION aanmaken.
als er meerdere uitkomen, is je database verkeerd.
En zorg ervoor dat session_start(); bovenaan staat.
- eerst controleren of de beide velden zijn ingevuld
- zoja dan de query
- maar wat komt er uit de query? check met mysql_num_rows of er een resultaat wordt opgehaald, als er 0 rows uit komen => verkeerd wachtwoord
als er 1 uitkomt => $_SESSION aanmaken.
als er meerdere uitkomen, is je database verkeerd.
En zorg ervoor dat session_start(); bovenaan staat.
Je volgorde klopt nog niet ;)
Je hebt nu wel de mysql_num_rows erin, maar je controleert de input na de query dat moet andersom, en volgens mij mis je een }
En bij een if gebruik je == ipv =
Gewijzigd op 30/08/2011 11:27:25 door gerhard l
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
31
32
33
34
35
36
37
38
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
<?php session_start();
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) == 1){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
}
?>
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(isset($_POST['name'], ($_POST['password'] )) {
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) == 1){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
}
}
}
?>
bedoel je met of velden vol zijn if ( !isset($_POST['name'])??
Ik neem aan dat je de function aanroept met als parameters $_POST['name'] en $_POST['password']. Dan heb je die niet meer nodig in de function zelf. En waarom staat jouw password ongecodeerd in de database? Denk aan veiligheid.
Toevoeging op 30/08/2011 11:43:39:
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
31
32
33
34
35
36
37
38
39
40
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
<?php session_start();
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name'], ($_POST['password'] )) {
echo ('Velden niet ingevuld');
} else {
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) == 1){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
//public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
//}
}
}
?>
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name'], ($_POST['password'] )) {
echo ('Velden niet ingevuld');
} else {
$db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
//
if(mysql_num_rows($db) == 1){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
}
else {
echo ('naam of wachtwoord onjuist');
}
}
//public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
//}
}
}
?>
volgens mij is het nu echt een zooitje aan het worden >.<
Toevoeging op 30/08/2011 13:33:09:
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
31
32
33
34
35
36
37
38
39
40
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
<?php session_start();
require_once('db.class.php');
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
echo ('Velden niet ingevuld');
} else {
global $db;
$res = $db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
if($db->numRows($res == 1)){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
echo ("u bent ingelogd " . $res ." ");
}
else {
echo ('naam of wachtwoord onjuist');
}
}
//public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
//}
}
}
$login = new LogIn($_POST['name'], $_POST['password']);
?>
require_once('db.class.php');
class login {
public function LogIn($name, $password) {
/*
Er moet een database connectie komen die alle rijen ophaalt uit de database en dan kijkt,
of er een rij is waar die naam en wachtwoord instaan die zijn ingevuld in het formulier.
Als de naam en wachtwoord bij elkaar horen in dezelfde rij moet er een sessie aangemaakt worden loggedin.
Deze sessie bevat de naam van de klant, het wachtwoord en het ip adress.
Als deze niet overeen komen moet er een melding komen dat de naam of wachtwoord onjuist is.
*/
//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
echo ('Velden niet ingevuld');
} else {
global $db;
$res = $db->query("SELECT * FROM user WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($password) . "'");
if($db->numRows($res == 1)){
// dan maak sessie loggedin met name/pass.
$_SESSION['loggedin'] = $name && $password;
echo ("u bent ingelogd " . $res ." ");
}
else {
echo ('naam of wachtwoord onjuist');
}
}
//public function LogOut($name) {
/*
De sessie loggedin moet uitgezet worden.
De laatste ip adress moet opgeslagen worden
*/
//}
}
}
$login = new LogIn($_POST['name'], $_POST['password']);
?>
BEDANKT IEDEREEN! het werkt :)