Parse error

Status
Niet open voor verdere reacties.

assassinscreed3

Gebruiker
Lid geworden
30 okt 2012
Berichten
68
ik ben met me website bezig en ben een simpel login aan het maken:
code:
PHP:
<?php
include('include/functions.php');

if(isset($_POST['login'])){
	if($_POST['username']){
		if($_POST['password']){
			$query = mysql_query("SELECT * FROM users WHERE users = mysql_real_escape_string ($_POST['username'])") or die(mysql_error());
			$user = mysql_fetch_array($query);
			
			if(md5($_POST['password']) == $user['password']){
				echo "login successful";
				$_SESSION['user'] = $user['username'];
				header("location: index.php");
			}else{
				echo "please check your login detail";
				include('login.php');
			}
		}else{
			echo "please check your password";
			include ('login.php')
		}
	}else{
		echo "please check your password";
		include ('login.php')
	}
}else{
	echo "check the login form.";
	include ('login.php');
}?>
nu krijg ik deze error:

Code:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /cms/admin/dologin.php on line 7

weet iemand wat ik fout doe?

mvg martijn
 
Haal de variabele (en de functie) eens buiten de aanhalingstekens (dit moet sowieso omdat de functie anders niet uitgevoerd wordt):
PHP:
$query = mysql_query("SELECT * FROM users WHERE users = " . mysql_real_escape_string ($_POST['username'])) or die(mysql_error());
 
Haal de variabele (en de functie) eens buiten de aanhalingstekens (dit moet sowieso omdat de functie anders niet uitgevoerd wordt):

Maar dan moet je nog wel quotes om je string zetten ;)
PHP:
$query = mysql_query("SELECT * FROM users WHERE users = '" . mysql_real_escape_string ($_POST['username']) ."'") or die(mysql_error());
 
dan zegt hij:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /cms/admin/dologin.php
 
Laatst bewerkt:
Dan maar even op een andere manier:
PHP:
$query = sprintf("SELECT * FROM users WHERE users = '%s';", mysql_real_escape_string($_POST['username']));
$result = mysql_query($query);
if($query)
{
    $user = mysql_fetch_array($result);
    var_dump($user);
}
else
{
    printf("Er is een fout opgetreden! MySQL zegt: %s", mysql_error());
}

Ik heb alleen mijn twijfels bij de WHERE in de query, het is niet logisch dat de gebruikersnamen in een kolom genaamd users staan.
Ik houd altijd aan dat de tabel-naam meervoud is en elke kolom enkelvoud.
 
login successful
Warning: Cannot modify header information - headers already sent by (output started at /cms/admin/dologin.php:14) in cms/admin/dologin.php on line 16
staat op me site...
 
Laatst bewerkt:
login successful
Warning: Cannot modify header information - headers already sent by (output started at /home/marticj89/domains/bro-place.nl/public_html/cms/admin/dologin.php:12) in /home/marticj89/domains/bro-place.nl/public_html/cms/admin/dologin.php on line 14

iemand idee?
PHP:
<?php
session_start();
include('include/functions.php');
if(isset($_POST['login'])){
	if(isset($_POST['username'])){
		if(isset($_POST['password'])){
			$username = $_POST['username'];
			$query = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error());
			$user = mysql_fetch_array($query);
			
			if(md5($_POST['password']) == $user['password']){
				echo("login successful");
				$_SESSION['user'] = $user['username'];
				header("location: index.php");
			}else{
				echo("please check your login detail");
				include('login.php');
			}
		}else{
			echo("please check your password");
			include ('login.php');
		}
	}else{
		echo("please check your password");
		include ('login.php');
	}
}else{
	echo("check the login form");
	include ('login.php');
}
?>
 
Je mag geen output hebben voor dat je "header()" aanroept, iets dat je 2 regels er boven doet ;)
PHP:
//echo("login successful");
$_SESSION['user'] = $user['username'];
header("location: index.php");
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan