Ik ben al 2 dagen bezig een stukje html in een php pagina te plakken. Als ik dit heb gedaan, werkt het script niet meer. Mijn vraag is nu hoe moet ik verder met het hierondergeplakte om daaronder HTML te plakken en mijn script zichtbaar te houden?
</script>";
$contents.="<form action='' method='POST' name='openinviter'>".ers($ers).oks($oks);
if (!$done)
$contents.="<center><img src='http://akakia.eu/plaatjes/nl/nl-taf.gif'</center>";
{
Leer jezelf niet onnodige dingen aan. Gebruik gewoon altijd deze structuur, tenzij php.net je zegt te veranderen (al staan in hun manual genoeg voorbeelden waarin zij het "fout" doen.... ):
<?
// Header PHP dingen
?>
// HTML Head zooi, openen en beginnen met body, layout beginnen
<?
// Include van menu
?>
// Meer layout
<?
// Includen van pagina door GET.
?>
// Laatste dingen en footer elementen
@Dennis: gebruik dan op zijn minst <?php ipv <?.
@Afra: Dus PHP.net doet het op heel veel plekken in hun handleiding fout? Waarom zou het fout zijn variabelen binnen een string te zetten? Ze hebben niet voor niets het mogelijk gemaakt dat variabelen erin geparsed kunnen worden. Het maakt het een stuk overzichtelijker als je niet altijd puur single quotes gebruikt. Vergelijk dit eens:
<?php
//Vorig voorbeeld
echo "De waarde '$waarde' in veld '$veld' is niet correct.";
//Alleen enkele quotes
echo 'De waarde \'' . $waarde . '\' in veld \'' . $veld . '\' is niet correct.';
?>
Of zou je hiervoor dan toch een uitzondering hebben? I.i.g. je vastpinnen op één manier is per definitie onoverzichtelijker als dat je varieert naar gelang de situatie:
- Enkele aanhalingstekens wanneer je geen of dubbele aanhalingstekens in de string hebt.
- Dubbele wanneer je variabelen en/of enkele aanhalingstekens in je string hebt staan.
Ben ik het absoluut niet mee eens. Variabelen binnen quotes zijn vaak genoeg de oorzaak van bugs in een script en laten zich bovendien erg lastig debuggen.
De situatie die je daar schetst heeft te maken met de presentatie van gegevens en hoort mijns inziens helemaal niet in het PHP script zelf thuis. Daar is nu eenmaal de template parser voor uitgevonden.
Zie ook dit artikel waarom je variabelen beter buiten quotes haalt.
De situatie die ik schetste heb ik letterlijk uit mijn validatieklasse gehaald. Omdat er zoveel mogelijke errors zijn ga je deze niet allemaal in een template doorlopen. Daar wil je gewoon door een lijst van errors loopen. Dit was maar een voorbeeldje, ik neem aan dat je wel een voorbeeld kan verzinnnen waar je enkele quotes en variabelen gebruikt. MySQL querys bijvoorbeeld?
Waarom is het heel lastig debuggen? Volgens mij is een overzichtelijke zin veel makkelijker te debuggen dan zo'n samengestelde string met escaping. Met een goede debugger/ontwikkelomgeving worden variabelen binnen strings niet anders behandeld/weergegeven dan dan buiten een string.
Het artikel waar je naar verwijst reflecteert de persoonlijke voorkeur van de auteur. Bovendien bevat het allemaal onwaarheden (zoals dat het niet mogelijk zou zijn om arrays te gebruiken zonder concatenatie). Dat hoofdstukje "Accolades" is al helemaal tenenkrommend.
Misschien hier maar een keer een apart topicje van maken ^^.