Ik krijg deze fout, maar ik snap het niet.
Als ik naar de code kijk, klopt het wel.
Maar toch zeurt hij om een fout.

Parse error: syntax error, unexpected variable "$pass"

<?php
	if($_POST['submit'] {
		$user = $_POST['username']
		$pass = md5($_POST['password'])
		$key = $_POST['key']
				
		$sql = "SELECT * FROM AdminUsers WHERE Username='".$user."' AND Passwd='".$pass."' AND LoginKey='".$key."'";
		$result = mysqli_query($connect, $sql);
		$logindetails = mysqli_fetch_all($result, MYSQLI_ASSOC);
		
		foreach($logindetails as $detail) {
			$_SESSION['Name'] = $detail['Name'];
			$_SESSION['Username'] = $detail['Username'];
			$_SESSION['Passwd'] = $detail['Passwd'];
			$_SESSION['Level'] = $detail['Access'];
			$_SESSION['ID'] = $detail['ID'];
		}

		header('location: ./inc/start.php');
		exit();
		echo "</div>";
	}else{

	echo"
		<div class='login'>
			<form id='login' action='".htmlspecialchars($_SERVER["PHP_SELF"]."' method='POST'>
				<fieldset>
					<input type='text' name='username' placeholder='Username'>
					<input type='password' name='password' placeholder='Password'>
					<input type='text' name='key' placeholder='Keycode'>
					<button type='submit' name='submit'>Login</button>
				</fieldset>
			</form>
			<img id='img-login' src='./img/page/Sexy-Devil.jpg'>
		</div>";
	}
?>
Welke editor gebruik je?
Want je zou direct daarin moeten zien dat er een aantal punt-komma's missen.

Verder is md5() ZEER onveilig!!!!!
Ook horen wachtwoorden, gebruikersnamen, en levels NIET in een sessie!
Dit script lijkt zo weggelopen uit een PHP 5 tutorial uit 2010.
Serieus?
<?php
$pass = md5($_POST['password'])  // ;
?>

Dit is wel triest...
Ik gebruik als editor, notepad++
Die zou dat toch wel moeten zien, lijkt me.
Of je monitor-instellingen moeten behoorlijk belabberd ingesteld staan. Of......
>> Ik krijg deze fout, maar ik snap het niet.

Spreek je Engels? Serieuze vraag. De foutmelding zegt namelijk wat er aan de hand is:

Parse error: syntax error, unexpected variable "$pass"

Waarschijnlijk staat in de originele foutmelding ook nog het regelnummer erbij "on line xx".

Als je het vertaalt: fout met parsen, syntax fout, onverwachte variabele "$pass".

Blijkbaar staat er dus een variabele $pass terwijl het niet wordt verwacht. En dan ga je even kijken naar de code.

En wat zien we hier:

<?php

$user = $_POST['username']
$pass = md5($_POST['password'])
$key = $_POST['key']

?>
Overal ontbreekt de ; aan het eind van de regel.

>> Als ik naar de code kijk, klopt het wel.

Niet echt dus.

>> Maar toch zeurt hij om een fout.

Hij zeurt niet. Hij geeft terecht aan dat je een fout hebt gemaakt.
Ja en als ik de ; erachter zet, dan is dat ineens fout.

[size=xsmall]Toevoeging op 05/04/2023 01:29:07:[/size]

Dan krijg ik deze fout ineens.

Parse error: syntax error, unexpected token ";" in /data/sites/web/*******/www/Admin/inc/login.php on line 3
Tja, het zou zomaar kunnen dat hier een haakje ontbreekt:

if($_POST['submit'] {

Maar, met alle respect, als je hier al op vastloopt, moet je dan niet even terug naar de basis? Of even een nachtje slapen en morgen weer met frisse moed er tegenaan. Want als je hier moet komen voor ieder syntax-foutje gaat het een lange rit voor je worden.
Het is gewoon een kwestie van tellen, Arno: Wat je opent, moet je ook weer sluiten.
Heb je een haakje die opent, dan moet die ook weer gesloten worden. En wat je eindigt: Daar hoort een puntkomma achter.

Ik kan me indenken dat je misschien moeite hebt met onthouden van de dingen. maar ook daar zijn truukjes voor, zoals cheat-sheets: https://websitesetup.org/php-cheat-sheet/

In dat geval print je deze uit, bundel je hem netjes in een mapje, en leg je hem naast je toetsenbord.
Mocht je het even niet meer weten, dan spiek je eventjes.

Reageren