Permalänk
Avstängd

Vad är fel i min kod?

Jag ska starta en blogg. Ska programmera den själv i PHP. Jag håller även på att göra ett spel för mitt företag. Men, nu är jag nybörjare och har problem med min kod - den funkar inte. Vad är det som är fel i koden?

<?php echo "<h1><span style=\"margin: auto;\">" . "LISSANS.SE" . "</span></h1>" . $inlagg++ . if ($isAdmin) { echo "<textarea name=\"inlagg\" method=\"POST\">"; } else { echo \"cool\"; }"; ?>

§9 borttaget
Permalänk
Medlem

Gissning utan att ha testat själv: Punkt-operatorn fungerar inte med if som argument till höger. Byt den mot ett semikolon. Gissningsvis vill du även ha semikolon före inlagg++, men den delen av koden är mer svårförstålig för mig.

Du borde få ut relevanta felmeddelanden i webbläsaren. Läs dem. Om du inte får ut ett felmeddelande, kör php-interpretatorn på kommandoraden med ditt program som argument, så får du alldeles säkert ut ett felmeddelande.

”Mitt program funkar inte” är för övrigt det sämsta möjliga sättet att be om hjälp på. Beskriv vad du förväntar dig ska hända (och varför) och vad som faktiskt händer. Är det ett syntax-fel (programmet körs inte), ett runtime-fel (programmet kraschar) eller ett logiskt fel (programmet ger ett felaktigt resultat)?

Permalänk
Medlem

Bryt upp koden på flera rader så blir den lättare att läsa och felsöka.

Du har förövrigt även gjort två fel i din sista echo.

Visa signatur

www.fckdrm.com - DRM år 2024? Ha pyttsan.

Permalänk
Medlem

Det känns som mycket ligger lite huller om buller och det escape:as lite konstigt.
Lissans.se skriver du ut som en variabel även fast jag uppfattar det som text?

Som några redan varit inne på, bryt upp koden så den blir lättare att tolka och identifiera vart eventuella fel kan vara.
Exempel:

<?php $inlagg = "1"; //För felsökning $isAdmin = TRUE; //För felsökning echo '<h1><span style="margin: auto;">"LISSANS.SE"</span></h1>'; echo $inlagg++; if ($isAdmin) { echo '<textarea name="inlagg" method="POST">'; } else { echo "cool"; } ?>

Visa signatur

MSI B650 Tomahawk, 7800X3D, RTX 3080, 32GB DDR5 6000MHz, MSI MPG A850G

Permalänk
Medlem
Skrivet av lissansse:

Jag ska starta en blogg. Ska programmera den själv i PHP. Jag håller även på att göra ett spel för mitt företag. Men, nu är jag nybörjare och har problem med min kod - den funkar inte. Vad är det som är fel i koden?

<?php echo "<h1><span style=\"margin: auto;\">" . "LISSANS.SE" . "</span></h1>" . $inlagg++ . if ($isAdmin) { echo "<textarea name=\"inlagg\" method=\"POST\">"; } else { echo \"cool\"; }"; ?>

Det finns flera fel i denna kod. Här är några av dem:

Det finns ett plusstecken (++) efter inlagg, vilket försöker öka värdet på inlagg med 1. Detta är inte en giltig PHP-syntax, så det kommer att resultera i ett felmeddelande.

Det finns ingen semikolon (;) efter echo "<h1><span style=\"margin: auto;\">" . "LISSANS.SE" . "</span></h1>" . $inlagg++ så PHP-tolkaren kommer inte att veta när koden för denna rad slutar. Detta bör ändras till: echo "<h1><span style=\"margin: auto;\">" . "LISSANS.SE" . "</span></h1>" . $inlagg++;

Det finns ingen semikolon (;) efter if-satsen, så PHP-tolkaren kommer inte att veta när koden för denna rad slutar. Detta bör ändras till: if ($isAdmin) { echo "<textarea name=\"inlagg\" method=\"POST\">"; } else { echo \"cool\"; }
Det finns en extra citationstecken (") längst ner i koden, efter echo \"cool\"; så strängen kommer inte att visas korrekt. Detta bör ändras till: echo "cool";

PHP-filerna bör vanligtvis börja med en öppnings-tag <?php och slutas med en stängnings-tag ?>. I denna kod saknas båda dessa taggar, så PHP-tolkaren kommer inte att veta att detta är en PHP-fil. Detta bör ändras till:

<?php
echo "<h1><span style=\"margin: auto;\">" . "LISSANS.SE" . "</span></h1>" . $inlagg++;
if ($isAdmin) {
echo "<textarea name=\"inlagg\" method=\"POST\">";
} else {
echo "cool";
}
?>

Eller, om du föredrar en enklare stil, kan du skriva koden så här:

<?php
echo "<h1><span style='margin: auto;'>LISSANS.SE</span></h1>$inlagg++;
if ($isAdmin) {
echo "<textarea name='inlagg' method='POST'>";
} else