Jag inleder en php-sida med två stycken includes efter varandra, de angivs med absolut sökväg och det enda som skiljer är filnamnet. Båda avslutas korrekt med citattecken, parantes och semikolon.
Saken är att filen med HTML-kod inkluderas snyggt och prydligt men när min "functions.php" (endast innehållandes funktioner i stil med nedan nämnda) inkluderas och en funktion sedan anropas med funktionensNamn får jag felmeddelandet
Fatal error: Call to undefined function: firstnews() in /home/virtual/helmertz.com/public_html/index.php on line 5
Så här kan en funktion se ut:
function firstNews(){
$sql = mysql_query("SELECT * FROM nyheter ORDER BY nyhet_id DESC LIMIT 1");
print '<div id="firstNews">'."\n";
while($z = mysql_fetch_assoc($sql)){
echo '<h1>' . $z['nyhet_titel'] . ' <span class="date">| '.$z['nyhet_datum'].'</span></h1>'."\n";
echo $z['nyhet_text']."\n";
echo '<p>• <a href="/log/'.$z['nyhet_id'].'"> Läs hela inlägget / kommentera</a></p>'."\n";
}
print "</div>\n";
}
Vad gör jag fel? Är det något som ska vara globalt men inte är det? Har jag glömt något väldigt basic? (det känns så!)
I och med att jag har två filer som inkluderas precis under varandra och den ena fungerar kan det nog inte vara det (ordningen spelar ingen roll, ändrar jag blir det samma resultat).
Oj, tänkte att jag skulle spara tid och svara innan jag testade men du hade faktiskt rätt!
Varför fungerar den ena inkluderingsfilen men inte den andra med abs. sökväg?! Och hur undviker jag att behöva skriva relativ sökväg i alla mina filer? :)
Jag antar att det blir detsamma som om du försöker öppna filerna i en webbläsare. Html-filen skrivs ut men php-filen skriver ingenting.
Det stämmer, men php-filen innehåller bara funktioner och så länge de inte anropas skriver de ju inte ut någonting. Lägger jag till firstNews(); i min fil med funktioner så skrivs den ut korrekt (om det nu skulle spela någon roll).
Bra att du fick det att fungera! Du slipper nog dessvärre inte ifrån att ändra dina absoluta sökvägar.
Att include inte "ser" koden vid absoluta sökvägar kan vi vara glada för. Tänk vilken säkerhetsrisk det skulle vara. Du skulle kunna komma runt det genom att döpa om php-filen till något annat, men det vore nog inte så smart.
Ett enkelt sätt för att slippa hålla reda på var dokumentrooten är och så att man kan ge relativa sökvägar mot dokumentrooten oavset var den är är att skriva följande:
Att include inte "ser" koden vid absoluta sökvägar kan vi vara glada för. Tänk vilken säkerhetsrisk det skulle vara. Du skulle kunna komma runt det genom att döpa om php-filen till något annat, men det vore nog inte så smart.