Unexpected T_IF probleem
hij wilt echt niet werken en krijg steeds errors
de code is:
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
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
<?PHP
include "config.php";
session_start();
$user = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
if(empty($username) || empty($password)) die('Vul alle waarden in op <a href="login.php">het formulier</a>.');
$db = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($database, $db);
echo "connection succes!"
if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '$user' and pass = '$pass'")) == 1){
$_SESSION['login'] = 'yes';
header('location: index.php');
};
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>Loginsysteem in php</title>
</head>
<body>
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
</body>
</html>
<?PHP
};
?>
include "config.php";
session_start();
$user = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
if(empty($username) || empty($password)) die('Vul alle waarden in op <a href="login.php">het formulier</a>.');
$db = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($database, $db);
echo "connection succes!"
if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '$user' and pass = '$pass'")) == 1){
$_SESSION['login'] = 'yes';
header('location: index.php');
};
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>Loginsysteem in php</title>
</head>
<body>
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
</body>
</html>
<?PHP
};
?>
weet iemand het antwoord? wat is er mis??
Onduidelijke titel aangepast ("een probleem" zegt niets), code in [.code] tags geplaatst.[/modedit]
Gewijzigd op 03/06/2010 14:13:06 door Chris -
Achter een } hoort géén ;
er horen geen ; achter } te staan. Zie regel 16 van het eerste blok en 3 van het tweede blok.
En er hoort wel een ; achter echo "connection succes!" regel 12
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
include "config.php";
session_start();
$user = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
if(empty($username) || empty($password)) die('Vul alle waarden in op <a href="login.php">het formulier</a>.');
$db = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($database, $db);
echo "connection succes!";
if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '$user' and pass = '$pass'")) == 1){
$_SESSION['login'] = 'yes';
header('location: index.php');
}
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>Loginsysteem in php</title>
</head>
<body>
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
</body>
</html>
<?php
}
?>
include "config.php";
session_start();
$user = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
if(empty($username) || empty($password)) die('Vul alle waarden in op <a href="login.php">het formulier</a>.');
$db = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($database, $db);
echo "connection succes!";
if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '$user' and pass = '$pass'")) == 1){
$_SESSION['login'] = 'yes';
header('location: index.php');
}
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>Loginsysteem in php</title>
</head>
<body>
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
</body>
</html>
<?php
}
?>
Let er overigens op dat mysql is verouderd, en dat de opmaak niet netjes is ;-)
Chris Horeweg op 03/06/2010 14:15:39:
Let er overigens op dat mysql is verouderd, en dat de opmaak niet netjes is ;-)
Dat is het dus niet. Niet zoals http_post_vars. Mysql blijft gewoon eerst nog wel een tijdje in php zitten.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at checking.php:1) in checking.php on line 3
connection succes!
Warning: Cannot modify header information - headers already sent by checking.php on line 15
tevens zou ik zeggen waar dit voor is:
voor een game payment system zodat men pro versies voor hun game kan maken via een paypal gateway vanaf mijn site
Gewijzigd op 03/06/2010 15:03:48 door mar groen
maar hoe fix ik dit
ik heb nergens anders header code gebruikt
en er is maar 1 session start. die zet login naar true als het gelukt is. en anders zegt jij dat login mislukt is.
dus wat is er mis
Gewijzigd op 03/06/2010 15:24:19 door mar groen
Door op de linkjes van Dhr. Karl te klikken. Dan zul je lezen waarom je die errors krijgt.
ik kom er echt niet uit
de een zegt verwijder je temp. maar ik heb geen files in mijn temp.
de ander zegt check het.. ja zeg als jullie het weten leg het dan alstublieft uit.
ik snap er geen bal van nu.
Kijk voor witregels. Session_start zal geheel bovenaan moeten staan, nog voor enige andere "output". Kijk dus of er voor de <?php witregels staan, en of er in config.php iets wordt geplaatst. Geef anders een link zodat we het kunnen bekijken in de browser.
Session_start is ook afhankelijk van headers.
Je werkt via het http protocol, er wordt dan verwacht dat je juist headers voor je content verstuurd. De headers zijn zegmaar de adresgegevens op een envelop met een brief erin. De brief is dan de content.
Let dus op dat er géén spatie, enter, tekst, html of whatever voor een session_start of header zit (dat is content).
Eventueel kan je ook je code vanuit de ene editor, in bijvoorbeeld kladblok plakken en dan opslaan. Let er dan dus weer op dat er niks voor <?php zit en ook binnen php geen content verstuurd (met echo o.i.d.). Een editor zoals dreamweaver plaatst namelijk vóór <?php een BOM karakter, en dat is dus ook content.
Zoals de waarschuwing aangeeft heb je al content verstuurd vóór je een header probeert te versturen. Je werkt via het http protocol, er wordt dan verwacht dat je juist headers voor je content verstuurd. De headers zijn zegmaar de adresgegevens op een envelop met een brief erin. De brief is dan de content.
Let dus op dat er géén spatie, enter, tekst, html of whatever voor een session_start of header zit (dat is content).
Eventueel kan je ook je code vanuit de ene editor, in bijvoorbeeld kladblok plakken en dan opslaan. Let er dan dus weer op dat er niks voor <?php zit en ook binnen php geen content verstuurd (met echo o.i.d.). Een editor zoals dreamweaver plaatst namelijk vóór <?php een BOM karakter, en dat is dus ook content.
www.gmforce.co.cc
ik geloof dat het nu werkt.
dank u voor uw uitleg
ik geloof dat het nu werkt.
dank u voor uw uitleg
Gewijzigd op 03/06/2010 16:54:02 door mar groen
Lees ook even mijn vorige bericht.
En let ook op sql injecties. Gebruik mysql_real_escape_string.
Druk effe op quote knopje als je wilt zien wat ik bedoel. Phphulp's ubbparser vind ignore niet ignore.
hij controleerd alleen de username.. niet de pass
dit is de code
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '$user' and pass = '$pass'")) == 1){
$_SESSION['login'] = 'yes';
echo 'logged in succes! </br>';
echo 'klik <a href="index.php">HIER</a> om verder te gaan';
}
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>login failed</title>
</head>
<body>
your login has been failed go back and try again <b><a href="login.php">go back</a>.</b>
</body>
</html>
<?php
}
?>
$_SESSION['login'] = 'yes';
echo 'logged in succes! </br>';
echo 'klik <a href="index.php">HIER</a> om verder te gaan';
}
else
{
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
<title>login failed</title>
</head>
<body>
your login has been failed go back and try again <b><a href="login.php">go back</a>.</b>
</body>
</html>
<?php
}
?>
hij checkt alleen username niet de pass.? waar zit de fout?
Code in [.code] tags plaatsen, niet in [.quote] tags ;-)[/modedit]
Gewijzigd op 03/06/2010 20:05:06 door Chris -
Zie mysql_real_escape_string().
ik snap em een beetje maar weet niet hoe ik dit moet toepassen op mijn script?
Code (php)
1
<?php if (mysql_num_rows(mysql_query("SELECT username, pass FROM login WHERE username = '" . mysql_real_escape_string ( $user ) . "' and pass = '$pass'")) == 1){[/code]
hij checkt de pass niet.. alleen de username.
hij stop de sessie NOOIT .. dus als ik wil uitloggen met dit script weigert hij dienst en ik blijf ingelogd..
Quote:
dus dan is mn script dus KAPOT... he ,.. ***
weet iemand hoe ik het ook de pass laat controleren en hoe de sessie geindigt word of uitgelogt word. alvast bedankt
jullie kunnen het ook zelf proberen
www.gmforce.co.cc/login.php die verwijst na login naar Checking php die de gegevens checkt
en index.php checkt of the sessie zegt of je ingelogt ben. dus ben je ingelogt zegt hij succesvol ingelogt en ben je niet ingelogt verwijst hij naar login.
www.gmforce.co.cc/logout.php hoort je uit te loggen maar dat gebeurt dus niet..
Gewijzigd op 04/06/2010 13:42:29 door mar groen
var_dump (en lees eerst wat php.net (die link dus) te zeggen heeft, voordat je het gaat gebruiken en voordat je gaat vragen wat je er mee moet).
Kijk eens naar