T_CONSTANT_ENCAPSED_STRING fout
T_CONSTANT_ENCAPSED_STRING
Precies in?
Wat voor teken is het?
Kan het op Google niet vinden
Als ik het menselijk ontcijfer lijkt het me een verkeerd ingekapselde string.
Quote:
<a href='bewerk_vak.php?verwijder=".$list->id."'
Heeft het dus te maken met het dikgedrukte stukje?
En wat moet ik er aan doen?
Groet
Edit:
Er staat achter id. eerst een dubbel aanhalingsteken (") en daarna een enkele (')
Er staat achter id. eerst een dubbel aanhalingsteken (") en daarna een enkele (')
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Post ook eens de omliggende regels van je code. Het heeft inderdaad te maken met een string op een plaats waar PHP het niet verwacht. Maar zonder je code is het niet te zien.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if($admin == 1){
echo "?><a href='bewerk_vak.php?bewerk=".$list->id."'>Wijzig</a> | <?php";
echo "?><a href='bewerk_vak.php?verwijder=".$list->id."'>Verwijder</a> | <?php";
echo "?><a href='toevoegen_cijfer.php?vak=".$_GET['vak']."'>Voeg cijfer toe</a> | <?php";
echo "?><a href='overzicht.php'>Overzicht vakken</a><br><br><?php";
}
?>
if($admin == 1){
echo "?><a href='bewerk_vak.php?bewerk=".$list->id."'>Wijzig</a> | <?php";
echo "?><a href='bewerk_vak.php?verwijder=".$list->id."'>Verwijder</a> | <?php";
echo "?><a href='toevoegen_cijfer.php?vak=".$_GET['vak']."'>Voeg cijfer toe</a> | <?php";
echo "?><a href='overzicht.php'>Overzicht vakken</a><br><br><?php";
}
?>
Het ziet er zo erg onhandig uit, maar anders moet ik veels te veel escapen ;-)
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Gebruik daarnaast enkele quotes als je iets echoed, valide HTML vereist namelijk dubbele quotes rond zijn attributen. Op die manier hoef je die niet te escapen.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
Werkt het zo wel?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
en dat is de 1e echo, maar denk dat ze dan in alle echo's zitten
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Er zitten in ieder geval geen fouten in het bovenstaande stukje.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include("config.php");
if($_GET['vak']){
$select = "SELECT * FROM vakken WHERE id='".$_GET['vak']."'";
$query = mysql_query($select);
$list = mysql_fetch_object($query);
echo "<h2>Cijferoverzicht ".$list->vak.";
?>
</h2>
<?php
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
include("config.php");
if($_GET['vak']){
$select = "SELECT * FROM vakken WHERE id='".$_GET['vak']."'";
$query = mysql_query($select);
$list = mysql_fetch_object($query);
echo "<h2>Cijferoverzicht ".$list->vak.";
?>
</h2>
<?php
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
Bovenstaand stukje
Stukje verder daaronder lukt het wel.
Maar hier krijg ik, nadat ik de if heb ingevoegd, steeds problemen.
Config.php is volgens mij niks fout aan maar toch:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$host = "xxx";
$user = "xxx";
$pass = "xxx";
$db = "xxx";
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);
if ($_SERVER['REMOTE_ADDR'] == "xx.xx.xx.xx") {
$admin = 1;
}
else{
$admin = 0;
}
?>
$host = "xxx";
$user = "xxx";
$pass = "xxx";
$db = "xxx";
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);
if ($_SERVER['REMOTE_ADDR'] == "xx.xx.xx.xx") {
$admin = 1;
}
else{
$admin = 0;
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
En ja hoor, de laatste . en " op regel 8 zijn overbodig. Waarom sluit je daarnaast php af om alleen die ene </h2> weer te geven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include("config.php");
if($_GET['vak']){
$select = "SELECT * FROM vakken WHERE id='".$_GET['vak']."'";
$query = mysql_query($select);
$list = mysql_fetch_object($query);
echo "<h2>Cijferoverzicht ".$list->vak."</h2>";
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
include("config.php");
if($_GET['vak']){
$select = "SELECT * FROM vakken WHERE id='".$_GET['vak']."'";
$query = mysql_query($select);
$list = mysql_fetch_object($query);
echo "<h2>Cijferoverzicht ".$list->vak."</h2>";
if($admin == 1){
echo '<a href="bewerk_vak.php?bewerk='.$list->id.'">Wijzig</a> | ';
echo '<a href="bewerk_vak.php?verwijder='.$list->id.'">Verwijder</a> | ';
echo '<a href="toevoegen_cijfer.php?vak='.$_GET['vak'].'">Voeg cijfer toe</a> | ';
echo '<a href="overzicht.php">Overzicht vakken</a><br><br>';
}
?>
ps. Waar is je foutafhandeling gebleven? Waar controleer je of je query wel gelukt is? Je hebt namelijk de zekerheid dat een query altijd KAN mislukken...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Maar bedankt in ieder geval. Ik krijg nu geen parse error meer
En ik ben vandaag in een zeer slechte PHP vorm, vandaar dat ik me maar op andere manieren probeer te redden.
Maar nog steeds werkt het niet goed.
Normaal hoort hier gewoon het vak en de leraar te staan, nu dus niet:
Vak ".$list->vak."
Leraar ".$list->leraar."
En dit staat er nog los onder:
if(1 == 1){ ; ; } if(1 == 1){ ; ; } if(1 == 1){ ; ; } if(1 == 1){ ; ; }
Quote:
if(1 == 1){ ; ; } if(1 == 1){ ; ; } if(1 == 1){ ; ; } if(1 == 1){ ; ; }
Dit is sowieso echt nutteloos en kan direct de prullenbak in.
Waarom het vak en de leraar niet weergegeven worden kan ik zo natuurlijk niet zien. Ik neem aan dat de variabelen het uiteindelijke resultaat zijn van een mysql query. Foutafhandeling zal hier waarschijnlijk weer het grote woord zijn, controleer of je query wel gelukt is. Controleer of de variabelen wel bestaan etc.
Zet dit ook eens boven aan je script:
Dan maar over op het leren van de Franse taal...
Query e.d. is namelijk wel gewoon gelukt.
Alles heeft gewerkt totdat ik wat 'IP beveiliging' ging inbouwen...
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Quote:
En dan:Query e.d. is namelijk wel gewoon gelukt.
Quote:
$query = mysql_query($select);
$list = mysql_fetch_object($query);
$list = mysql_fetch_object($query);
Het kan aan mij liggen, maar ik zie nergens in jouw code dat jij controleert of de query wel is gelukt.
Verder slaat de naam $query nergens op, in deze variabele staat helemaal geen query. Het gaat om een resultset, $result is dus een veel betere naam. Vervolgens controleer je of deze TRUE of FALSE is en je weet of de query is gelukt of mislukt.
En een query kan ALTIJD, op ieder ongewenst moment, mislukken! Deze controle mag dus nooit ontbreken.
Gewijzigd op 01/01/1970 01:00:00 door Frank -