Hallo, Ik heb laatst een klein php-systeempje achter een website
gemaakt. Hierin roep ik eerst een $_GET aan en daarna controleer
ik of deze leeg is of niet. Dit vormt op mijn server geen probleem
maar nu ik hem verhuisd heb krijg ik telkens een melding Undefined
Index. Is dit een van de instellingen van je php?

En nog even een korte vraag, ik krijg ook een melding 'Call to undefined
function echofunctienaam() on line... op die regel staat dan <?=functienaam();?> is dit omdat het = tekentje direct aan de functienaam vast zit :S?
Er staat in de error namelijk geen spatie tussen echo en functienaam.

Ook een van de instellingen?
Tim S schreef op 07.07.2008 19:56
Hierin roep ik eerst een $_GET aan en daarna controleer
ik of deze leeg is of niet.

Eerst kijken of ie wel bestaat met isset().

Dit is ellende php.
<?=functienaam();?>

Doe netjes:
<?php
echo functienaam();
?>
Nee daar gaat het niet om.
De functie bestaat wel, ik moest even een shorthand
hebben maar het gaat er juist om welke instelling ik
moet veranderen om 'shorthand' aan te zetten ofzo
en om niet-gedefinieerde variabelen te negeren.
Tim S schreef op 07.07.2008 20:21
Nee daar gaat het niet om.
De functie bestaat wel, ik moest even een shorthand
hebben maar het gaat er juist om welke instelling ik
moet veranderen om 'shorthand' aan te zetten ofzo
en om niet-gedefinieerde variabelen te negeren.


Controleer of de variabele bestaat/gedefinieerd is gebruik de functie isset();

En het correcte gebruik van shorthand is
<?= output ?>
Let op de spatie!
Tim S schreef op 07.07.2008 20:21
Nee daar gaat het niet om.

daar gaat het wel om, bij coden draait het voor 50% om netjes, effectief en precies te werk gaan.
Voor de mensen die de oplossing willen weten:
In de php.ini moet je de waarshuwingen niet
op E_ALL maar op E_ALL & ~E_NOTICE zetten.
dan laat ie niet zien welke variabelen nog niet
gedefiniëerd zijn.

Over netjes coden ben ik het met je eens maar
het is wel offtopic
Ja, maar het lost wel grote delen van je problemen op.

Shothands hoor je nooit en te nummer gebruiken. Het voorkomt een hoop problemen.
Tim S schreef op 08.07.2008 18:53
dan laat ie niet zien welke variabelen nog niet
gedefiniëerd zijn.

Dit slaat dus nergens op. Leer goed scripten.
Danny schreef op 07.07.2008 22:05

En het correcte gebruik van shorthand is
<?= output ?>
Let op de spatie!


Klopt, maar als je een functie hebt, zoals je hierboven had kunnen lezen, niet. Dan moet er toch echt dit staan:

<?= functie(); ?>


Ontopic: Zie trouwens in mijn bovenstaande stukje code de spatie. Wellicht dat dit het probleem is voor je onbekende functie ;)

Verder, je moet met isset(); bepalen of je $_GET wel bestaat, en dat doe je op de pagina zelf. Anders krijg je inderdaad een undefined index. (En ja, dit weet ik 100% zeker aangezien ik op mijn lokale server altijd volledige error-reporting heb.)
vermijd gewoon shorttags, bespaar jezelf vast de problemen
Imo zijn shorttags handig, maar je moet weten of de server ze ondersteund. Zelf maak ik er sporadisch ook gebruik van.

Reageren