Parse error: syntax error, unexpected variable
Als ik naar de code kijk, klopt het wel.
Maar toch zeurt hij om een fout.
Parse error: syntax error, unexpected variable "$pass"
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
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
<?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>";
}
?>
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>";
}
?>
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!
Gewijzigd op 04/04/2023 19:05:56 door - Ariën -
Dit script lijkt zo weggelopen uit een PHP 5 tutorial uit 2010.
Ik gebruik als editor, notepad++
Of je monitor-instellingen moeten behoorlijk belabberd ingesteld staan. Of......
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:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$user = $_POST['username']
$pass = md5($_POST['password'])
$key = $_POST['key']
?>
$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.
Gewijzigd op 04/04/2023 22:43:11 door Ozzie PHP
Toevoeging op 05/04/2023 01:29:07:
Dan krijg ik deze fout ineens.
Parse error: syntax error, unexpected token ";" in /data/sites/web/*******/www/Admin/inc/login.php on line 3
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.
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.
Warning: Undefined array key "submit" in /data/sites/web/**********/www/Admin/inc/login.php on line 2
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
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
<?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: 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>";
}
?>
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: 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>";
}
?>
Heb je dit al uberhaupt vertaald?
Ben nu even aan het denken wat het is, maar misschien dat jullie het ook zien en de oplossing weten?
Ik ben nog even aan het denken.
Maar nog beter is om dit te gebruiken:
if($_SERVER['REQUEST_METHOD'] == "POST") {
Je wilt eigenlijk weten of het formulier verstuurd is via POST, en niet of er op een knop is gedrukt.
Ik heb geen idee uit welke tutorial je dit gevonden hebt, maar wat je nu hebt is niet correct.
Nog een goede tip: $_POST is een array met alle waardes die je verstuurd hebt. Die kan je ook gebruiken in een print_r() om tijdens het ontwikkelen te zien wat er in zit. In jouw situatie had je dan zo kunnen zien dat die niet bestond, omdat je het script al aanriep zonder dat er wat verstuurd was.
Gewijzigd op 05/04/2023 12:26:53 door - Ariën -
Nu doet hij wel al wat ik wil, maar nu moet ik de rest programeren.
Bedankt voor de hulp.
Je moet ook geen isset() gebruiken!
Ik vraag me af of je alles wel leest wat wij hier vertellen? Wij geven een hoop tips, maar we zien dat je er weinig mee doet. En dat zorgt voor deze community tot grote frustratie.
Ik wil echt niet bot zijn, maar lees alles gewoon eens goed door, en noteer het, en pas het toe!!
Wat ik adviseer: neem even een time-out voor programmeren, inplaats van dat je met een doel programmeert, zodat je even alles kan doorlezen, voorbeelden maken en uiteindelijk begrijpt wat het doet.
Ik vraag me af of je alles wel leest wat wij hier vertellen? Wij geven een hoop tips, maar we zien dat je er weinig mee doet. En dat zorgt voor deze community tot grote frustratie.
Ik wil echt niet bot zijn, maar lees alles gewoon eens goed door, en noteer het, en pas het toe!!
Wat ik adviseer: neem even een time-out voor programmeren, inplaats van dat je met een doel programmeert, zodat je even alles kan doorlezen, voorbeelden maken en uiteindelijk begrijpt wat het doet.
Gewijzigd op 05/04/2023 12:50:07 door - Ariën -
Soms werk ik idd te gehaast en dat brengt idd soms probs met zich mee.
Wel alvast bedankt voor de goede tips
Toevoeging op 05/04/2023 14:42:45:
Heb nu een raadsel voor jullie
Ik heb het meeste al opgelost trouwens, bedankt voor de goede tips.
Maar nu krijg ik dit.
Admin/start.php?menu=users (is de link) , dan zegt hij vervolgens : File not found.
En nu komt de grap, ik heb deze code :
Code (php)
1
2
3
4
5
2
3
4
5
if(file_exists('./inc/user.php')){
echo "<a href='start.php?menu=users'>Users</a></div>";
} else {
echo "No file</div>";
}
echo "<a href='start.php?menu=users'>Users</a></div>";
} else {
echo "No file</div>";
}
Vervolgens geeft hij dus wel de link aan, want de file is gevonden en bestaat.
Dan moet hij hem gaan includen en dan vindt hij de file niet.
De include is vervolgens dit
ook al maak ik er dit van : include("./inc/user.php");, dan doet hij precies het zelfde
Toevoeging op 05/04/2023 15:31:51:
Ik ben zo dom, echt waar... moet beter leren lezen in mijn code....
start.php?menu=users moest zijn index.php?menu=users
Ik ben echt weer overwerkt
Wij zijn dom. We begrijpen niet waarom het je niet lukt.
We hebben tijd te veel en daarom willen we onze hobby / professie graag delen met anderen.
Maar die anderen snappen ons niet helemaal.
Wat kunnen wij anders doen dat je het beter begrijpt?
Wat ons betreft mis je in ieder geval basiskennis van PHP.
Anders had je de eerste foutmeldingen gemakkelijk zelf op kunnen lossen.
Als je een paar uur tijd neemt om een tutorial te lezen, of een boek?
Dan heb je deze huiswerkopdracht in een halve dag klaar.
Maar dan moet je natuurlijk niet overwerkt zijn, anders is het te zwaar.