syntax error

Status
Niet open voor verdere reacties.

hisumara

Nieuwe gebruiker
Lid geworden
7 feb 2013
Berichten
4
Parse error: syntax error, unexpected '}' in E:\Websites\71311\meoc1\opdracht41verwerk.php on line 8
PHP:
<?php
	$vraag1 = $REQUEST_["vraag1"];
	$vraag2 = $REQUEST_["vraag2"];
	$vraag3 = $REQUEST_["vraag3"];
	$aantal = $REQUEST_["aantal"];
	$fouten = 0;
	
	if($vraag1!="boom"){$fouten++}
	if($vraag2!="tand")($fouten++}
	if($vraag3!="wind")($fouten++}
	
	for($fouten==0;)
	{
		echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!"
	}
	else if($fouten != "0")
	{
		echo "Je hebt niet alle vragen goed beantwoord"
	}
	else(($vraag1 == "") AND ($vraag2 == "") AND ($vraag3 == ""))
	{
		echo "Je hebt geen enkele vraag beantwoord"
	}
?>

Wat is nou de fout? Ik heb verschillende codes geprobeerd.
 
Laatst bewerkt:
; zetten achter alle php statements, dus ook achter de if-statements én { ipv. ( in de laatste 2 statements:

Code:
	if($vraag1!="boom"){$fouten++};
	if($vraag2!="tand"){$fouten++};
	if($vraag3!="wind"){$fouten++};

Tijs.
 
; zetten achter alle php statements, dus ook achter de if-statements én { ipv. ( in de laatste 2 statements:

Code:
	if($vraag1!="boom"){$fouten++};
	if($vraag2!="tand"){$fouten++};
	if($vraag3!="wind"){$fouten++};

Tijs.

Gedaan, maar krijg nog steeds deze error:
Parse error: syntax error, unexpected '}' in E:\Websites\71311\meoc1\opdracht41verwerk.php on line 8
 
Geen wonder je code slaat nergens op en je vergeet overal ; en zet ze neer op plaatsen waar het juist niet moet.

Probeer het zo maar:

PHP:
<?php
    $vraag1 = $REQUEST_["vraag1"];
    $vraag2 = $REQUEST_["vraag2"];
    $vraag3 = $REQUEST_["vraag3"];
    $aantal = $REQUEST_["aantal"];
    $fouten = 0;
    
    if($vraag1!="boom") {
	$fouten++;
    }

    if($vraag2!="tand") {
        $fouten++;
    }

    if($vraag3!="wind") {
	$fouten++;
    }
    
    if($fouten==0) {
        echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!";
    }
    elseif($fouten != 0) {
        echo "Je hebt niet alle vragen goed beantwoord";
    }
    else {
        echo "Je hebt geen enkele vraag beantwoord";
    }
?>
 
Laatst bewerkt:
Zijn het ook geen $_REQUEST-variabelen?
Overigens is het veiliger om specifiek $_POST of $_GET te gebruiken.

De fout zit volgens mij ook hier (naast de bovenstaande)
PHP:
for($fouten==0;)
Ten eerste heb je geen for-lus nodig (gezien je logica) en ten tweede hoort een for-lus anders opgebouwd te worden:
Code:
for (expr1; expr2; expr3)
    statement
The first expression (expr1) is evaluated (executed) once unconditionally at the beginning of the loop.

In the beginning of each iteration, expr2 is evaluated. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends.

At the end of each iteration, expr3 is evaluated (executed).
http://php.net/manual/en/control-structures.for.php

Probeer dit eens in plaats van die for:
PHP:
if($fouten ===0)
 
Verrassend: Ik zie zojuist dat if-statements met een {} block erachter niet hoeven te worden afgesloten met een ;
Kan iemand (lord4163 of ThaDevil) me misschien uitleggen waarom het daar dan weer niet nodig is, terwijl bij
if ($a > $b) echo "a is bigger than b";
wél een ; verplicht is? :confused:

Tijs.
 
Laatst bewerkt:
@dnties

Zo is dat nou eenmaal, de bracket sluit het al af. In jouw voorbeeld gebruik je geen brackets, dat raad ik niet aan.
 
@lord4163: Ok, dan zal ik het zo onthouden. Bedankt! :thumb:
@hisumara: Sorry dat ik het gebruik van ; in php blijkbaar ook niet goed onder de knie had. :D

Tijs.
 
Geen wonder je code slaat nergens op en je vergeet overal ; en zet ze neer op plaatsen waar het juist niet moet.

Probeer het zo maar:

PHP:
<?php
    $vraag1 = $REQUEST_["vraag1"];
    $vraag2 = $REQUEST_["vraag2"];
    $vraag3 = $REQUEST_["vraag3"];
    $aantal = $REQUEST_["aantal"];
    $fouten = 0;
    
    if($vraag1!="boom") {
	$fouten++;
    }

    if($vraag2!="tand") {
        $fouten++;
    }

    if($vraag3!="wind") {
	$fouten++;
    }
    
    if($fouten==0) {
        echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!";
    }
    elseif($fouten != 0) {
        echo "Je hebt niet alle vragen goed beantwoord";
    }
    else {
        echo "Je hebt geen enkele vraag beantwoord";
    }
?>
Bedankt, zo werkt hij inderdaad, maar de
PHP:
echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!";
moet meerdere keren herhaald worden door $aantal.
En nog een probleem, hij gaat automatisch door naar de
PHP:
echo "Je hebt niet alle vragen goed beantwoord";
@lord4163: Ok, dan zal ik het zo onthouden. Bedankt! :thumb:
@hisumara: Sorry dat ik het gebruik van ; in php blijkbaar ook niet goed onder de knie had. :D

Tijs.
Geen probleem, ik zit zelf nog te leren hoe het werkt, vandaar :)
 
Dan word het zoiets geloof ik:

PHP:
<?php
    $vraag1 = $REQUEST_["vraag1"];
    $vraag2 = $REQUEST_["vraag2"];
    $vraag3 = $REQUEST_["vraag3"];
    $aantal = 4;
    $fouten = 0;
    
    if($vraag1 != "boom") {
		$fouten++;
    }
 
    if($vraag2 != "tand") {
        $fouten++;
    }
 
    if($vraag3 != "wind") {
		$fouten++;
    }
    
    if($fouten === 0) {
		$i = 0;	
		while ($aantal > $i) {
			echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!";
			$i++;
		}
    }
    elseif($fouten < 1) {
        echo "Je hebt niet alle vragen goed beantwoord";
    }
    else {
        echo "Je hebt geen enkele vraag beantwoord";
    }
?>

Ik vind het maar ingewikkeld hoe jij het doet :p
 
Nog even een tip, je kan het beste een IDE als Aptana Studio 3 gebruiken die vult je code automatisch aan dus kan er weinig fout gaan, als er wel iets fout gaat laat hij gelijk zien waar de fout zit en wat er fout is.

http://www.aptana.com/
 
Dan word het zoiets geloof ik:

PHP:
<?php
    $vraag1 = $REQUEST_["vraag1"];
    $vraag2 = $REQUEST_["vraag2"];
    $vraag3 = $REQUEST_["vraag3"];
    $aantal = 4;
    $fouten = 0;
    
    if($vraag1 != "boom") {
		$fouten++;
    }
 
    if($vraag2 != "tand") {
        $fouten++;
    }
 
    if($vraag3 != "wind") {
		$fouten++;
    }
    
    if($fouten === 0) {
		$i = 0;	
		while ($aantal > $i) {
			echo "Gefeliciteerd, je hebt alle vragen juist beantwoord!";
			$i++;
		}
    }
    elseif($fouten < 1) {
        echo "Je hebt niet alle vragen goed beantwoord";
    }
    else {
        echo "Je hebt geen enkele vraag beantwoord";
    }
?>

Ik vind het maar ingewikkeld hoe jij het doet :p

Heb het geprobeerd maar dan krijg ik altijd
PHP:
echo "Je hebt geen enkele vraag beantwoord";

Nog even een tip, je kan het beste een IDE als Aptana Studio 3 gebruiken die vult je code automatisch aan dus kan er weinig fout gaan, als er wel iets fout gaat laat hij gelijk zien waar de fout zit en wat er fout is.

http://www.aptana.com/

Zal kijken hoe het werkt, bedankt voor de tip :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan