syntax error,

Status
Niet open voor verdere reacties.

gabber44

Gebruiker
Lid geworden
27 aug 2008
Berichten
49
hoi iedereen ben bezig met een member login aan het maken al goed en wel maar eens ik wil in loggen krijg ik steed een syntax error
(Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in C:\xamp\xampplite\htdocs\login.php on line 10)


kan iemand mij helpen
de fout zit denkelijk in de pagina register maar ben dit niet zeker
heb hier al me paginas gepost dat ik gemaakt heb
PHP:
<?php

session_start();

$username =$_POST['username'];
$password =$_POST[password'];
if ($username&&$password)
{

$connect = mysql_connect("localhost","root,"") or die ("could not conncect');
mysql_selectdb("phplogin") or die ("coldn't locate db";

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrow = mysql_num_rows ($query);

if ($numrows!=0)
{  
  while ($row = mysql_fetch_assoc($querry) )
 {
  $dbusername = $row['username'];
  $dbpassword = $row['password'];
  }
  if ($username==$dbusername&&$password==$dbpassword
 {
   echo "You're in!<a href='member.php'>click</a> Click here to enter the member page";
   $_SESSION ['username']=$dbusername;
  }
  else 
       echo "incorrect password!";


}
else 
     die("That user doesnt exist!");

echo $numrows;
else
	die ("please enter a username and a password");
	
?>
PHP:
<?php

session_start();

if ($_SESSION['username'])
   echo "Welcome".$_SESSION['username']."!<br><a href='logout.php'>Logout</a>";
else
    die ("You must be logged in!");

?>
PHP:
<?php

 session_start();
 
 session_destroy();
 
 echo "you've been logged ou.<a ref='index.php'>Click here</a> to return";

<?
PHP:
<html>
		<form action='login.php' mehod='POST'>
				username: <input type=text' name='username'><br>
				Password: <input type='password' name='password'><br>
                <input type='submit' value='Log in'>
          </form>
</html>
 
Vervang
PHP:
$password =$_POST[password'];
eens door
PHP:
$password =$_POST['password'];
(dus met begin-quote).

Overigens moet je ook in het laatste bestand nog een begin-quote zetten:
HTML:
username: <input type=text' name='username'><br>
HTML:
username: <input type='text' name='username'><br>

[edit]Ik zou je trouwens willen adviseren om wat meer spaties te gebruiken bij het programmeren. Dit
PHP:
if ($username&&$password)
vind ik persoonlijk niet leesbaar, ik zou daar dit
PHP:
if ($username && $password)
van maken. Zeker bij grotere statements (zoals die in regel 24) is dat makkelijker te lezen.

Nu ik je code eens wat beter bekijk vallen me nog een paar foutjes op:
Regel 11: sluithaakje ontbreekt
PHP:
die ("couldn't locate db");
Regel 19: je roept mysql_fetch_assoc aan op "$querry", terwijl je query in "$query" staat
PHP:
while ($row = mysql_fetch_assoc($query) )
Regel 24: sluithaakje ontbreekt ook hier
PHP:
if ($username == $dbusername && $password == $dbpassword)

Ook zul je mysql_real_escape_string of addslashes moeten aanroepen over $_POST['username'] en $_POST['password'] om SQL-injectie te voorkomen.[/edit]
 
Laatst bewerkt:
:s ng niet

Vervang
PHP:
$password =$_POST[password'];
eens door
PHP:
$password =$_POST['password'];
(dus met begin-quote).

Overigens moet je ook in het laatste bestand nog een begin-quote zetten:
HTML:
username: <input type=text' name='username'><br>
HTML:
username: <input type='text' name='username'><br>

[edit]Ik zou je trouwens willen adviseren om wat meer spaties te gebruiken bij het programmeren. Dit
PHP:
if ($username&&$password)
vind ik persoonlijk niet leesbaar, ik zou daar dit
PHP:
if ($username && $password)
van maken. Zeker bij grotere statements (zoals die in regel 24) is dat makkelijker te lezen.

Nu ik je code eens wat beter bekijk vallen me nog een paar foutjes op:
Regel 11: sluithaakje ontbreekt
PHP:
die ("couldn't locate db");
Regel 19: je roept mysql_fetch_assoc aan op "$querry", terwijl je query in "$query" staat
PHP:
while ($row = mysql_fetch_assoc($query) )
Regel 24: sluithaakje ontbreekt ook hier
PHP:
if ($username == $dbusername && $password == $dbpassword)

Ook zul je mysql_real_escape_string of addslashes moeten aanroepen over $_POST['username'] en $_POST['password'] om SQL-injectie te voorkomen.[/edit]


heb deze foutjes aangepast maar nog steeds een fout melding

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xamp\xampplite\htdocs\login.php on line 10
 
Je moet op regel 10 ook nog de laatste single-quote (') door een double-quote (") vervangen.
 
zo

Post je code eens zoals je 'm nu hebt...

login.php
PHP:
<?php

session_start();

$username =$_POST['username'];
$password =$_POST['password'];
if ($username&&$password)
{

$connect = mysql_connect("localhost","root,"") or die ("could not conncect");
mysql_selectdb("phplogin") or die ("couldn't locate db");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrow = mysql_num_rows ($query);

if ($numrows!=0)
{  
  while ($row = mysql_fetch_assoc($query) )
 {
  $dbusername = $row['username'];
  $dbpassword = $row['password'];
  }
  if ($username == $dbusername && $password==$dbpassword)
 {
   echo "You're in!<a href='member.php'>click</a> Click here to enter the member page";
   $_SESSION ['username']=$dbusername;
  }
  else 
       echo "incorrect password!";


}
else 
     die("That user doesnt exist!");

echo $numrows;
else
	die ("please enter a username and a password");
	
?>
 
re

Je bent een dubbele quote na root vergeten op regel 10.

idd maar het is nog niet alles hoor men 38 geeft ook nog een zal maar nog es grondig de code herzien wss gisteravend een en het ander over het hoofdgezien
 
Je vergeet steeds bij de else-gedeelten van je logica de { } ...
 
re

En nu verwacht je dat ik weet wat je bedoelt...

ok als ik men username + pass invoer (die correct zijn) en op de login klik redirect hier naar please enter a username and a password dit zou enkel zichtbaar moeten zijn als je niks invoert
 
code

ok als ik men username + pass invoer (die correct zijn) en op de login klik redirect hier naar please enter a username and a password dit zou enkel zichtbaar moeten zijn als je niks invoert

dit zou ik moeten krijgen
PHP:
 echo "You're in!<a href='member.php'>click</a> Click here to enter the member page";
   $_SESSION ['username']=$dbusername;
  }
 
First of all, in plaats van mysql_selectdb() hoor je tegenwoordig mysql_select_db() te gebruiken.

Probeer het zo eens, ik heb veel dingen veranderd, ik ga ze niet allemaal noemen.

PHP:
<?php
 
session_start();
 
$username = $_POST['username'];
$password = $_POST['password'];

if ( $username && $password ) {
 
	$connect = mysql_connect ( "localhost", "root", "" ) or die ( "could not conncect" );
	mysql_select_db("phplogin") or die ("couldn't locate db");
 
	$query = mysql_query ( "SELECT * FROM users WHERE username='$username'" );
 
	$numrow = mysql_num_rows ($query);
 
	if ( $numrows != 0 ) {  
  
		while ( $row = mysql_fetch_assoc ( $query ) ) {
  
			$dbusername = $row[ 'username' ];
			$dbpassword = $row[ 'password' ];
  
		}
  
		if ( $username == $dbusername && $password == $dbpassword ) {
   
			echo "You're in!<a href='member.php'>click</a> Click here to enter the member page";
			$_SESSION[ 'username' ] = $dbusername;
  
		} else { 
       
			echo "incorrect password!";
       
		}
 		
	} else {
     
		die("That user doesnt exist!");
 
	}

	echo $numrows;

} else {
    
	die ("please enter a username and a password");
  
}  
?>

Een tip, leer eens waar quotes, haakjes en accolades moeten staan. Er klopte namelijk echt helemaal niks van. Daarnaast zitten er een paar dullige dingen in.

Waarom loop je over de resultaten uit je database? Ten eerste zou er maar 1 record terug mogen komen, ten tweede kun je op deze manier toch alleen iets met de laatste.

Daarnaast controleer je nog eens of de ingevoerde naam gelijk is aan de naam die door de database wordt gereturned. Dat kan niet anders, aangezien je dat als criterium aangaf in je query (het wachtwoord moet je nog als criterium meegeven).

En ten laatste, houd alsjeblieft op met steeds de post voor je te quoten. Erg irritant en totaal onnodig.

[EDIT]
ik zie nu dat de accolades nog niet helemaal kloppen.
[/EDIT]

[EDIT]
ze kloppen wel
[/EDIT]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan