Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] URL aanroep met variable werkt niet...

Remytje
7 antwoorden
  • Ik heb een pagina die de variabele debiteur (type=char(7)) nodig heeft om de gegevens weer te gegeven van de desbetreffende debiteur(dmv van een query uit een db).

    Als ik de pagina oproep met [i:4975cd4748]index.php?debiteur='0006321'[/i:4975cd4748] dan werkt dit niet. Ook geprobeert om met (") in plaats van (') of helemaal zonder, dus [i:4975cd4748]index.php?debiteur=0006321[/i:4975cd4748] (maar dan ziet PHP het niet meer als decimal getal (octaal wordt het dan, geloof ik)).

    In alle gevallen komt de volgende melding in de browser:
    [quote:4975cd4748]Notice: Undefined variable: debiteur in D:\Apache HTTP Server 2.0\website\index.php on line 26
    [/quote:4975cd4748]
    Als ik in de php-code neerzet [i:4975cd4748]$debiteur='0006317';[/i:4975cd4748] dan werkt het wel :o ???

    Doe ik iets fout met de url-aanroep of is er een instelling verkeerd in de configuratie-file van PHP en\of Apache?

    P.S.
    - Ik draai Apache met PHP en MySQL als service\module op XP pro.
    - Ik type de URL direct in de browser. Zodra dit werkt (hopelijk met jullie hulp :roll: ) roep ik het aan via een ander pagina met bv een form.
  • Als ik:[code:1:baed4eaf3a]<?php
    echo $_GET["debiteur"];
    ?>[/code:1:baed4eaf3a]gebruik komt er met [i:baed4eaf3a]index.php?debiteur=0006321[/i:baed4eaf3a] gewoon 0006321 op m'n scherm, en dat kan je dan toch gewoon weer omzetten naar een decimaal getal? Alhoewel het getal zelf is volgens mij al geen zuiver decimaal getal, die beginnen niet met één of meerder nullen…
  • Het probleem van mij is dat als ik de variable $debiteur een waarde meegeef in de code alles werkt, maar via de url niet.

    Ik kan vanavond pas testen of de $_GET["debiteur"] werkt, vanuitgaande dat dit de oplossing is voor bovenstaande probleem.

    Maar waarom werkt het zonder $_GET dan niet (als dit werkt, maar dat kan ik vanavond pas testen)? Dus aanroepen in de browser met [i:3b9da00205]index.php?debiteur='0006317'[/i:3b9da00205].

    Waarbij index.php:
    <?
    echo $debiteur;
    ?>

    Moet dan echt $_GET gebruikt worden?

    [i:3b9da00205]P.S.
    Ik heb de verloop nullen nodig, vanwege de koppeling van mySQL met andere systemen (Exact en Informix). Dus 0006321 zou dan beter een string moeten zijn (is ook een string in Informix, dus dat maakt de koppeling zoiezo makkelijker)[/i:3b9da00205]
  • Die quotes (') horen daar zo wie zo (zo wel goed Annie? ;)) niet…

    En waarom het met $_GET["debiteur"] moet staat hier beschreven.
  • Met die link is het mij helemaal duidelijk :D .

    Dus doordat ik PHP 4.2.1 heb met [i:5adac14069]register_globals standaard[/i:5adac14069] op [i:5adac14069]off[/i:5adac14069] (vanwege de veiligheid), dien ik van $_GET gebruik te maken om de variabelen uit te lezen. (controle of ik het goed begrepen heb :wink: )

    Ik ga het vanavond meteen proberen. Hartelijk dank voor je moeite.
  • Even voor de duidelijkheid: je moet in dit geval $_GET gebruiken, als je een formulier gaat versturen, moet je weer $_POST gebruiken, maar dat staat ook allemaal op bovengenoemde link uitgelegd…
  • PHP heeft/had er een handje naar om automatisch variabelen te initialisen en daarbij ook de typecasting te 'verzorgen'. En daar gaat het dus fout.
    Op het moment dat je een variabele rechtstreeks uit de request leest (met $_GET of met $HTTP_GET_VARS) dan worden de waarden niet automatisch gecast naar een andere waarde (zijn gewoon strings).

    Sowieso (zo schrijf je dat dus Bill ;)) is het altijd aan te raden variabelen uit de oorspronkelijke arrays te lezen en niet gebruik te maken van de "$automatische_vars" van PHP. Vandaar ook de wijziging naar de Superglobals in de laatste versie van PHP.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.