Avatar billede htmlbugg Nybegynder
17. oktober 2006 - 04:28 Der er 12 kommentarer og
1 løsning

Nybegynder med en syntaxerror

Hey jeg har ik kodet i 2 år, og har kun prøvet at kode php i en måned før jeg stoppede... Nu er jeg begyndt igen og har siddet og læst og læst og prøvet så meget for at få fjernet den error... Jeg håber der er nogen der kan hjælpe...:


Fejl: Syntax error -- T_ELSE ... http://www.blastout.frac.dk/ts1.htm og http://www.blastout.frac.dk/ts2.php

Jeg prøver at lave en simpel "test"... Hvor man skriver alder ind og efter hvor gammel man er siger den hvad man må og ikke må...


Det ts2.php scriptet kommer så her:







<html>
<head>
    <title>TS2</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="Author" content="Steen Hjelmstrand" />
</head>
<body bgcolor="774444">

<?php
$_POST['navn'] = $na ;
$_POST['alder'] = $al ;
$_POST['rela'] = $re ;
$_POST['lucky'] = $lu ;
$var1 = "15" ;
$var2 = 18 ;

echo "Dit navn er $na <BR>";

echo "Og du er $al år gammel, og ud fra den information kan jeg fortælle dig at:" ;

if ($al = $var1);

    {
    echo "Du er gammel nok til at købe både alkohol og smøger.<br>";
    echo "Til gengæld kan du også komme i spjældet:(<br><br>";
    }

    else

    {
    echo "Du er ikke gammel nok til at købe alkohol og smøger.";
    echo "Til gengæld kan du ikke komme i spjældet :D";   
    }

if "($al>=$var2)";

    {
    echo "Og så er du gammel nok til både at tage kørekort og gå på diskotek og værtshus og så videre... Bare lad være med at blande det :) Og så må du se alt det porno du vil";
    }

    elseif ($al<=15);

    {
    echo "Desværre er du heller ikke gammel nok til hverken at tage kørekort eller gå på diskotek/værtshus m.m. ... Det skal heller ikke blandes :) Og du må heller ikke kigge porno. Se dog at blive voksen i en fart så du kommer til alt det sjove... Eller... Nej vent! Nyd barndommen mens den er der!";
    }

    else

    {
    echo "Men til gengæld må du ikke tage kørekort endnu, eller gå på diskotek/værtshus m.m. ... Og det skal heller ikke blandes... Men du må heller ikke glo porno, selvom at hvis du er en dreng højst sandsynligt gør det. Kan ikke svare på pigers område :)";
    }

    echo "Desværre har jeg ikke udviklet dette script nok til at trylle med de to andre tal, antal søskende som i dit tilfælde er: $re og så dit lykketal, $lu. Dette vil snart komme.";

?>

</body>
</html>






...



Den kan ikke finde ud af det med de skide <= den tror at det slutter eller starter mit script/en ny kode...


Håber nogen kan hjælpe, jeg skal sove nu. Kigger ind i morgen og afslutter spørgsmålet eller spørger igen... :) Men nu giver jeg sgu op efter 3½ hårde timer med læsning :) Godnat
Avatar billede well_r Nybegynder
17. oktober 2006 - 04:56 #1
if ($al = $var1);

    {
    echo "Du er gammel nok til at købe både alkohol og smøger.<br>";
    echo "Til gengæld kan du også komme i spjældet:(<br><br>";
    }

    else

    {
    echo "Du er ikke gammel nok til at købe alkohol og smøger.";
    echo "Til gengæld kan du ikke komme i spjældet :D"; 
    }

er det her overhovedet tilladt?
altså.. jeg har ikk selv helt 100%styr på alle måder syntaksen må skrives på..men er det ikke menigen at det skal være sådan her:
if (noget){}

du skriver if(noget); <<< dette er jo ikke et statement (hvilket ; indikerer), men derimod en condition

det samme med dine elseif
Avatar billede kyffer Nybegynder
17. oktober 2006 - 06:30 #2
Jeg har lige et par kommentarer...

<snip>
$_POST['navn'] = $na ;
$_POST['alder'] = $al ;
$_POST['rela'] = $re ;
$_POST['lucky'] = $lu ;
</snip>

Her siger du at den variabel som er postet fra browseren skal overskrives med en tom variabel?

Jeg tror at du mener det modsatte?:

<snip>
$na = $_POST['navn'];
$al = $_POST['alder'];
$re = $_POST['rela'];
$lu = $_POST['lucky'];
</snip>


Jeg tror at well_r har ret i at du skal væk med ;

Derudover så tror jeg også at " tegn skal væk fra denne sætning:

<snip>
if "($al>=$var2)"
{
</snip>

Den efterfølgende sætning bør stadig bruge $var2 isteden for det faste tal 15. Du har jo brugt vars indtil videre i dine if, så hvorfor bruge faste tal i else? :)

<snip>
elseif ($al<=15)
{
</snip>

Du bør også på sigt tjekke at det er tal som står i de vars du vil bruge :)

Det var lige mine kommentarer for denne gang. Held og lykke med projektet.
Avatar billede nielle Nybegynder
17. oktober 2006 - 08:25 #3
Jeg vil mene at "hovedskurken" er denne:

if ($al = $var1);

- som skal ændres til:

if ($al == $var1)

Dels skal ;-tegnet væk. Det er det som giver dig din T_ELSE fejl, men = skal også rettes til == da du ellers ville tildele til $a1 i stedet for at sammenligne.
Avatar billede nielle Nybegynder
17. oktober 2006 - 08:28 #4
well_r> Jo det er tilladt at skrive:

if ($x == $y);

- men det giver sjældent nogen mening. Lige så lidt som at:

if ($x == $y) {}

- giver nogen mening.
Avatar billede nielle Nybegynder
17. oktober 2006 - 08:39 #5
For lige at opsummere alt hvad der er skrevet:

<html>
<head>
    <title>TS2</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="Author" content="Steen Hjelmstrand" />
</head>
<body bgcolor="774444">

<?php
// 4 RETTELSER HER:
$na = $_POST['navn'];
$al = $_POST['alder'];
$re = $_POST['rela'];
$lu = $_POST['lucky'];

$var1 = 15; // 1 RETTELSE HER.
$var2 = 18;

echo "Dit navn er $na<BR>";
echo "Og du er $al år gammel, og ud fra den information kan jeg fortælle dig at: ";

if ($al == $var1) // 2 RETTELSER HER.
{
    echo "Du er gammel nok til at købe både alkohol og smøger.<br>";
    echo "Til gengæld kan du også komme i spjældet :(<br><br>";
}
else
{
    echo "Du er ikke gammel nok til at købe alkohol og smøger.";
    echo "Til gengæld kan du ikke komme i spjældet :D";   
}

if ($al >= $var2) // 2 RETTELSER HER.
{
    echo "Og så er du gammel nok til både at tage kørekort og gå på diskotek og værtshus og så videre... Bare lad være med at blande det :) Og så må du se alt det porno du vil";
}
elseif ($al <= $var1) // 2 RETTELSER HER.
{
    echo "Desværre er du heller ikke gammel nok til hverken at tage kørekort eller gå på diskotek/værtshus m.m. ... Det skal heller ikke blandes :) Og du må heller ikke kigge porno. Se dog at blive voksen i en fart så du kommer til alt det sjove... Eller... Nej vent! Nyd barndommen mens den er der!";
}
else
{
    echo "Men til gengæld må du ikke tage kørekort endnu, eller gå på diskotek/værtshus m.m. ... Og det skal heller ikke blandes... Men du må heller ikke glo porno, selvom at hvis du er en dreng højst sandsynligt gør det. Kan ikke svare på pigers område :)";
}

echo "Desværre har jeg ikke udviklet dette script nok til at trylle med de to andre tal, antal søskende som i dit tilfælde er: $re og så dit lykketal, $lu. Dette vil snart komme.";
?>
</body>
</html>
Avatar billede htmlbugg Nybegynder
17. oktober 2006 - 14:49 #6
Nej de skal ikke være lig med... Lig med, eller mindre == >= Ellers skal jeg jo lave sådan 100 elseif for hvert tal man kan skrive ind...
Avatar billede nielle Nybegynder
17. oktober 2006 - 15:00 #7
Hvad mener du præcist med at "Nej de skal ikke være lig med..."?

Jeg har taget direkte udgangspunkt i din egen kode, og har blot erstattet "=" med "==". Det er muligvis forkert at bruge "==" i forhold til logikken i din kode, men det er (næsten) aldrig rigtigt at bruge enkelt-"=" i en if-særning.
Avatar billede htmlbugg Nybegynder
17. oktober 2006 - 15:06 #8
Kom til at slette den første > ... Men... Ja...



Gå selv ind og prøv og se hvad der sker når man skriver i formen på http://www.blastout.frac.dk/ts1.htm
Avatar billede htmlbugg Nybegynder
17. oktober 2006 - 15:11 #9
Nej men den "operator" læste jeg det hed er ikke den jeg vil bruge... Jeg vil bruge >=
Avatar billede htmlbugg Nybegynder
17. oktober 2006 - 15:38 #10
Har fået det til at virke nu :) Det var bare de semikoloner :)
Avatar billede nielle Nybegynder
17. oktober 2006 - 16:16 #11
De andre rettelser har nu nok også hjulpet :^)
Avatar billede well_r Nybegynder
17. oktober 2006 - 16:24 #12
synes nu ikke de var 200point værd :/
Avatar billede htmlbugg Nybegynder
18. oktober 2006 - 01:35 #13
Hehe nej men har været inaktiv i lang tid jo... Har ik været på siden jeg sidst kodede :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester