Foutje in script?
waarschijnlijk zie ik het gewoon over het hoofd, maar het volgende script doet niets.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if( isset($_POST['user'], $_POST['pass']))
{
$link = mysqli_connect('localhost', 'user', 'pass', 'slepperfm');
if(!$link)
{
trigger_error('Fout bij verbinden met database: '.mysqli_connect_error());
}
$sql = "
SELECT
username,
pw
FROM
users
WHERE
username = $_POST['user'] && pw = $_POST['pass']
";
if(!$res = mysqli_query($link, $sql))
{
trigger_error('Fout in query: '.mysqli_error());
}
if( mysqli_num_rows($res) == 1)
{
echo 'Je bent ingelogd'; //dit moet ik nog uitwerken
}
else
{
echo 'Je bent niet ingelogd. <br> <a href='.$_SERVER['PHP_SELF'].'alt=opnieuw>Ga terug</a>';
}
}
else
{
echo '<form method=POST action='.$_SERVER['PHP_SELF'].'>';
echo '<label for=username>Gebruikersnaam:</label>';
echo '<input id=user name=user type=text>';
echo '<label for=pass>Wachtwoord:</label>';
echo '<input id=pass name=pass type=password>';
echo '<input type=submit value=Inloggen>';
echo '</form>';
}
?>
</body>
</html>
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if( isset($_POST['user'], $_POST['pass']))
{
$link = mysqli_connect('localhost', 'user', 'pass', 'slepperfm');
if(!$link)
{
trigger_error('Fout bij verbinden met database: '.mysqli_connect_error());
}
$sql = "
SELECT
username,
pw
FROM
users
WHERE
username = $_POST['user'] && pw = $_POST['pass']
";
if(!$res = mysqli_query($link, $sql))
{
trigger_error('Fout in query: '.mysqli_error());
}
if( mysqli_num_rows($res) == 1)
{
echo 'Je bent ingelogd'; //dit moet ik nog uitwerken
}
else
{
echo 'Je bent niet ingelogd. <br> <a href='.$_SERVER['PHP_SELF'].'alt=opnieuw>Ga terug</a>';
}
}
else
{
echo '<form method=POST action='.$_SERVER['PHP_SELF'].'>';
echo '<label for=username>Gebruikersnaam:</label>';
echo '<input id=user name=user type=text>';
echo '<label for=pass>Wachtwoord:</label>';
echo '<input id=pass name=pass type=password>';
echo '<input type=submit value=Inloggen>';
echo '</form>';
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Erwin Nieuwenhuis
Wat is 'doet niets'?
het moet ergens in het if statement zitten, want dat heb ik het laatst aangepast.
waarschijnlijk heb ik dus ergens iets niet goed afgesloten ofzo..
voor een voorbeeld:
http://www.slepperfm.nl/login/login.php
Haal $vars buiten de quotes.
Gebruik in de query enkele quotes om de stringwaardes.
Mm, haal die bovenste PHP dingetjes eens weg. Iniset en reporting
welke $vars bedoel je?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = "
SELECT
username
FROM
users
WHERE
username = '".mysqli_real_escape_string($link, $_POST['user'])."'
AND
pw = '".mysqli_real_escape_string($link, $_POST['pass'])."'
";
?>
$sql = "
SELECT
username
FROM
users
WHERE
username = '".mysqli_real_escape_string($link, $_POST['user'])."'
AND
pw = '".mysqli_real_escape_string($link, $_POST['pass'])."'
";
?>
Edit: Een password haal je uiteraard niet op, die heb je nooit nodig buiten de database.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Gerben Jacobs schreef op 21.03.2008 14:11:
Mm, haal die bovenste PHP dingetjes eens weg. Iniset en reporting
En de reden?
Dan krijg je dus geen foutmeldingen meer te zien.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if( isset($_POST['user'], $_POST['pass']))
{
$link = mysqli_connect('localhost', 'user', 'pass', 'slepperfm');
if(!$link)
{
trigger_error('Fout bij verbinden met database: '.mysqli_connect_error());
}
$sql = "
SELECT
username,
pw
FROM
users
WHERE
username = '".mysqli_real_escape_string($link, $_POST['user'])."'
AND
pw = '".mysqli_real_escape_string($link, $_POST['pass'])."'
";
if(!$res = mysqli_query($link, $sql))
{
trigger_error('Fout in query: '.mysqli_error());
}
if( mysqli_num_rows($res) == 1)
{
echo 'Je bent ingelogd';
}
else
{
echo 'Je bent niet ingelogd. <br> <a href="'$_SERVER['PHP_SELF']'" alt="opnieuw">Ga terug</a>';
}
}
else
{
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<label for="username">Gebruikersnaam:</label>';
echo '<input id="user" name="user" type="text">';
echo '<label for="pass">Wachtwoord:</label>';
echo '<input id="pass" name="pass" type="password">';
echo '<input type="submit" value="Inloggen">';
echo '</form>';
}
?>
</body>
</html>
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if( isset($_POST['user'], $_POST['pass']))
{
$link = mysqli_connect('localhost', 'user', 'pass', 'slepperfm');
if(!$link)
{
trigger_error('Fout bij verbinden met database: '.mysqli_connect_error());
}
$sql = "
SELECT
username,
pw
FROM
users
WHERE
username = '".mysqli_real_escape_string($link, $_POST['user'])."'
AND
pw = '".mysqli_real_escape_string($link, $_POST['pass'])."'
";
if(!$res = mysqli_query($link, $sql))
{
trigger_error('Fout in query: '.mysqli_error());
}
if( mysqli_num_rows($res) == 1)
{
echo 'Je bent ingelogd';
}
else
{
echo 'Je bent niet ingelogd. <br> <a href="'$_SERVER['PHP_SELF']'" alt="opnieuw">Ga terug</a>';
}
}
else
{
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<label for="username">Gebruikersnaam:</label>';
echo '<input id="user" name="user" type="text">';
echo '<label for="pass">Wachtwoord:</label>';
echo '<input id="pass" name="pass" type="password">';
echo '<input type="submit" value="Inloggen">';
echo '</form>';
}
?>
</body>
</html>
maar ik zie nog steeds niks, geen foutmelding en geen formulier..
echo 'Je bent niet ingelogd. <br> <a href="' . $_SERVER['PHP_SELF'] . '" alt="opnieuw">Ga terug</a>';
SanThe schreef op 21.03.2008 14:16:
En de reden?
Dan krijg je dus geen foutmeldingen meer te zien.
Gerben Jacobs schreef op 21.03.2008 14:11:
Mm, haal die bovenste PHP dingetjes eens weg. Iniset en reporting
En de reden?
Dan krijg je dus geen foutmeldingen meer te zien.
Nou, er werd geen HTML getoont, terwijl dat wel had moeten gebeuren. Compleet blanco pagina.
Dus ik dacht misschien dat er iets was met iniset dat niet uitgevoerd mocht worden..
SanThe schreef op 21.03.2008 14:37:
Regel 41 punten vergeten.
echo 'Je bent niet ingelogd. <br> <a href="' . $_SERVER['PHP_SELF'] . '" alt="opnieuw">Ga terug</a>';
echo 'Je bent niet ingelogd. <br> <a href="' . $_SERVER['PHP_SELF'] . '" alt="opnieuw">Ga terug</a>';
Dit soort fouten krijg je alleen in de Apache logs te zien. Niet op het scherm.
bedankt, nu doet hij het. :)