PDA

Bekijk Volledige Versie : PHP kan variabelen niet opvragen



Sven
19/09/03, 16:30
Beste nieuwsgroep,

Voor het eerst in een lange tijd, gebruik ik weer eens php.
Ik heb een formulier gemaakt in mijn php document, echter als ik het
formulier verzend (met method="post") worden de variabelen wel door gegeven
(ik zie ze wel in de URL staan als ik post verander in get). Echter PHP ziet
de variabelen niet! (dwz: kan ze niet opvragen via bijvoorbeeld $nick.)

hoe kan dit?

(kan mij herrinneren, dat ze in de nieuwere php versies, iets met
register_globals uit hebben gezet, kan dit er iets mee te maken hebben?

groeten,
Sven
--
Het streepje word een puntje, voor een prive bericht.

Tim Van Wassenhove
19/09/03, 16:30
In article <bkf3cd$1enh$1@nl-news.euro.net>, Sven wrote:
> Beste nieuwsgroep,
>
> Voor het eerst in een lange tijd, gebruik ik weer eens php.
> Ik heb een formulier gemaakt in mijn php document, echter als ik het
> formulier verzend (met method="post") worden de variabelen wel door gegeven
> (ik zie ze wel in de URL staan als ik post verander in get). Echter PHP ziet
> de variabelen niet! (dwz: kan ze niet opvragen via bijvoorbeeld $nick.)
>
> hoe kan dit?
>
> (kan mij herrinneren, dat ze in de nieuwere php versies, iets met
> register_globals uit hebben gezet, kan dit er iets mee te maken hebben?

google en de php handleiding zijn in dat geval je vrienden.
(http://www.php.net/manual/nl/language.variables.predefined.php)

--
Visit my website at http://aardbei.madoka.be

Sven
19/09/03, 16:45
Tim Van Wassenhove wrote:
> In article <bkf3cd$1enh$1@nl-news.euro.net>, Sven wrote:
>> Beste nieuwsgroep,
> google en de php handleiding zijn in dat geval je vrienden.
> (http://www.php.net/manual/nl/language.variables.predefined.php)

Tim,
Bedankt voor het (zeer) snelle antwoord.

Hieruit begrijp ik, dat ik iets met $HTTP_GET_VARS in mn script moet zetten,
echter waar en moet er nog iets voor staan? (ben een echte php newbie).


--
Het streepje word een puntje, voor een prive bericht.

Sven
19/09/03, 17:15
Tim Van Wassenhove wrote:
> google en de php handleiding zijn in dat geval je vrienden.
> (http://www.php.net/manual/nl/language.variables.predefined.php)

Van een andere pagina van php.net haal ik het volgende:
(http://nl3.php.net/manual/nl/tutorial.forms.php)
<?php echo $_POST["name"]; ?>

echter, met $_POST["nick"] kan ik mijn variabele nick, verzonden met de
methode post niet uitlezen.

wat doe ik verkeerd? ik kom er echt niet uit. :-(
--
Het streepje word een puntje, voor een prive bericht.

Maarten Wierda
19/09/03, 17:15
Sven wrote:

> --
> Het streepje word een puntje, voor een prive bericht.

Je sig is kapot (streepje streepje spatie)

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Ronald Klip
19/09/03, 17:15
Sven schreef:
> Tim Van Wassenhove wrote:
> > google en de php handleiding zijn in dat geval je vrienden.
> > (http://www.php.net/manual/nl/language.variables.predefined.php)
>
> Van een andere pagina van php.net haal ik het volgende:
> (http://nl3.php.net/manual/nl/tutorial.forms.php)
> <?php echo $_POST["name"]; ?>
>
> echter, met $_POST["nick"] kan ik mijn variabele nick, verzonden met de
> methode post niet uitlezen.
>
> wat doe ik verkeerd? ik kom er echt niet uit. :-(

Vertel eens wat meer: welke PHP-versie gebruik je, wat is de instelling
van register_globals (zie voor beide phpinfo()), staat er wel iets in
'nick' en hoe lees je de variabele uit?

--
groet, Ronald

Michiel de Roo
19/09/03, 17:15
Sven wrote:
> Tim Van Wassenhove wrote:
>
>>In article <bkf3cd$1enh$1@nl-news.euro.net>, Sven wrote:
>>
>>>Beste nieuwsgroep,
>>
>>google en de php handleiding zijn in dat geval je vrienden.
>>(http://www.php.net/manual/nl/language.variables.predefined.php)
>
>
> Tim,
> Bedankt voor het (zeer) snelle antwoord.
>
> Hieruit begrijp ik, dat ik iets met $HTTP_GET_VARS in mn script moet zetten,
> echter waar en moet er nog iets voor staan? (ben een echte php newbie).
>
>
> --
> Het streepje word een puntje, voor een prive bericht.
>
>

als je deze link hebt:

http://site.com?key=value

vraag je hem zo op:

echo $_GET["key"];

Voor post variable idem dito, maar dan met de variable $_POST.
$HTTP_xxx_VARS zou ik niet meer gebruiken, $_GET, $_POST en $_REQUEST
zijn de nieuwe vervanging voor deze.

Michiel.

Sven
19/09/03, 17:30
Ronald Klip wrote:
> Sven schreef:
>> Tim Van Wassenhove wrote:
>> wat doe ik verkeerd? ik kom er echt niet uit. :-(
>
> Vertel eens wat meer: welke PHP-versie gebruik je, wat is de
> instelling van register_globals (zie voor beide phpinfo()), staat er
> wel iets in 'nick' en hoe lees je de variabele uit?

PHP Version 4.2.2
register_globals off

Er staat iets in nick, want als ik post in get verander, dan staat hetgeen
dat ik ingevuld heb in de adresbalk.

Ik lees hem als volgt uit:
<?php
echo "variabele nick bevat: ".$_post[nick];
?>


--
Het streepje word een puntje, voor een prive bericht.

Maarten Wierda
19/09/03, 17:30
Sven wrote:

> Er staat iets in nick, want als ik post in get verander, dan staat hetgeen
> dat ik ingevuld heb in de adresbalk.
>
> Ik lees hem als volgt uit:
> <?php
> echo "variabele nick bevat: ".$_post[nick];
> ?>

Logisch. Als je doet: bestand.php?foo=bar

.... dan is foo in dit geval een GET-variabele.

En je sig is nog steeds kadoek.

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Rick van Rouwendaal
19/09/03, 17:30
Jepz klopt dacht ik je moet dat in je apache config uit zetten/aanzetten
(weet niet meer welke dacht uitzetten). Er is ook een functie voor "global"
hoe die werkt www.php.net zou ik maar zeggen

Rick

"Sven" <sven@enygma-demon.nl> schreef in bericht
news:bkf3cd$1enh$1@nl-news.euro.net...
> Beste nieuwsgroep,
>
> Voor het eerst in een lange tijd, gebruik ik weer eens php.
> Ik heb een formulier gemaakt in mijn php document, echter als ik het
> formulier verzend (met method="post") worden de variabelen wel door
gegeven
> (ik zie ze wel in de URL staan als ik post verander in get). Echter PHP
ziet
> de variabelen niet! (dwz: kan ze niet opvragen via bijvoorbeeld $nick.)
>
> hoe kan dit?
>
> (kan mij herrinneren, dat ze in de nieuwere php versies, iets met
> register_globals uit hebben gezet, kan dit er iets mee te maken hebben?
>
> groeten,
> Sven
> --
> Het streepje word een puntje, voor een prive bericht.
>
>

Sven
19/09/03, 17:30
Maarten Wierda wrote:
> Sven wrote:
>
>> Er staat iets in nick, want als ik post in get verander, dan staat
>> hetgeen dat ik ingevuld heb in de adresbalk.
>>
>> Ik lees hem als volgt uit:
>> <?php
>> echo "variabele nick bevat: ".$_post[nick];
>>>
>
> Logisch. Als je doet: bestand.php?foo=bar
>
> ... dan is foo in dit geval een GET-variabele.
>
> En je sig is nog steeds kadoek.

Het is opgelost.
<schaam>
Het was een hoofdletterkwestie.
</schaam>
allen bedankt voor de antwoorden!

dus als ik het goed begrijp, moeten alle via post/get verzonden variabelen,
voortaan opgeroepen worden via $_GET[]c.q.$_POST[]?

ik kan weer verder werken.

en wat betreft de sig, ik gebruik al OE quotefix, deze zou dat moeten
verhelpen, maar doet dat blijkbaar niet :-(
--
Het streepje word een puntje, voor een prive bericht.

Ronald Klip
19/09/03, 17:30
Sven schreef:
>
> Ik lees hem als volgt uit:
> <?php
> echo "variabele nick bevat: ".$_post[nick];
> ?>

Correcte syntax doet wonderen.
- gebruik hoofdletters voor al die superglobals
- plaats aanhalingstekens om nick (anders beschouwt PHP het als een
constant, die ws. niet bestaat)

Dus: $_POST["nick"]

--
groet, Ronald

Maarten Wierda
19/09/03, 20:45
Sven wrote:

> dus als ik het goed begrijp, moeten alle via post/get verzonden variabelen,
> voortaan opgeroepen worden via $_GET[]c.q.$_POST[]?

Geldt ook voor bijv. sessie-variabelen ($_SESSION)en geuploade bestanden
($_FILES).

--
Cheers, Maarten Wierda

Q: What do you call someone who hangs around with musicians?
A: A drummer.

Arnoud Galactus Engelfriet
19/09/03, 22:45
In article <bkf75m$1h04$1@nl-news.euro.net>, Sven <sven@enygma-demon.nl> wrote:
>dus als ik het goed begrijp, moeten alle via post/get verzonden variabelen,
>voortaan opgeroepen worden via $_GET[]c.q.$_POST[]?

Ja. Dat is in verband met de veiligheid. Anders kan ik namelijk
elke variabele in jouw script elke startwaarde geven die ik wil,
aangenomen dat ik weet hoe 'ie heet. En als jij die niet
initaliseert, levert dat een leuk veiligheidslek op.

Natuurlijk nog wel even checken of $_POST[nick] wel ongeveer
in een zinvol formaat is, dus niet direct gebruiken in een
SQL query of zo.

Arnoud

--
Arnoud Engelfriet, Dutch patent attorney - Speaking only for myself
Patents, copyright and IPR explained for techies: http://www.iusmentis.com/