PDA

Bekijk Volledige Versie : PHP 'Require' probleem



Haico Spaapen
10/03/03, 21:50
Ik heb 1 pagina ( index.php) die de layout van mijn website bevat. Deze
pagina roept steeds andere content aan, zoals bijv nieuws, polls, links etc.
De variable $page_id bepaalt welke content wordt opgeroepen. Je zou dus
kunnen zeggen dat mijn website 1 pagina bevat
(http://www.benthuizen.net/start/index.php ).

Als ik / iemand nu een link aan mijn links pagina wil toevoegen klik ik
eerst in het menu op 'links' wat verwijst naar (
http://www.benthuizen.net/start/index.php?page_id=130). Daar aangekomen klik
ik op 'toevoegen link' wat verwijst naar (
http://www.benthuizen.net/start/index.php?page_id=131&linkaction=1 ).
Vervolgens selecteer ik 1 van de 4 rubrieken (
http://www.benthuizen.net/start/index.php?page_id=131&linkaction=2 ) Hier
zit een probleem wat ik niet begrijp. Als ik een nieuwe browser open ( in
mijn geval is dit nog even IE6 ) en ik voer bovenstaande handelingen uit,
dan laat hij inplaats van 'link toevoegen in de juiste rubriek' een hele
andere content zien die bij een andere waarde van $page_id hoort. Het rare
is dat als ik deze handelingen voor de tweede keer uitvoer in de nog
geopende browser het wel goed gaat.

Iemand een idee in welke richting ik moet zoeken?

Onderstaand de code voor het aanroepen van de content.

============================ index.php ===================================
echo ("pagina = $page_id"); // zomaar om te zien welke waarde $page_id
heeft, wat altijd de goede is trouwens
// welke pagina moet opgeroepen worden ?
switch ( $page_id ) {
case "130":
// tonen gewone links
require ("../links/linkz.php");
break ;
case "131":
// link toevoegen
require ("../links/submit_link.php");
break ;
default:
// als er geen page_id wordt opgegeven wordt deze pagina geladen.
require ("../nieuws/nieuws.php");
break ;
}
======================= end ==================================

Onderstaand de code van het formulier waar het na op de submit button te
hebben geklickt dus mis gaat.


=================== submit_link.php ==================================
echo ("<td colspan=2><form action='index.php?page_id=131&linkaction=2'
method='post'>") ;
echo ("Categorie
<select name='categorie' size='1'>
<option value='0' selected>Kies een categorie</option>
<option value='vacature'>vacaturepagina van een bedrijf.</option>
<option value='sport'>Sport in en rondom Benthuizen.</option>
<option value='ABC'>Het bedrijven ABC</option>
<option value='links'>Links</option>
</select>");
echo ("<input type='submit' value='Stap 2 van 4 >>'>");
======================= end =======================================

Ook krijg ik soms een op onderstaande URL gelijkende URL in mijn adresbalk,
heeft dat er misschien iets mee te maken?

http://www.benthuizen.net/start/index.php?page_id=130&PHPSESSID=a0f6d1855126
6421f56ccf7be047

Met vriendelijke groeten,

Haico Spaapen

Piet Hein
10/03/03, 22:20
Haico Spaapen wrote:
<knip> Heel verhaal over niet werkende query-string </knip>

In het script kan ik niet terugvinden hoe je van de waarde die je meegeeft
in de url (?page_id) komt tot een variable ($page_id).

Dit doet me vermoeden dat je in die stap een fout maakt.

Buig je eens over de volgende pagina (ik bedenk net, buigen doe je over
papier, als ik me over me monitor heen buigt zie ik alleen maar een hoop
stof):

http://php.nederland.net/manual/en/reserved.variables.php

en dan vooral de variabele $_SERVER['query_string']

groet Piet Hein

Haico Spaapen
13/03/03, 09:05
"Piet Hein" schreef
> In het script kan ik niet terugvinden hoe je van de waarde die je meegeeft
> in de url (?page_id) komt tot een variable ($page_id).

Nou heb ik toch al die tijd gedacht dat als je een variabele meezend in een
URL of een FORM je deze in de geadresseerde pagina kan/mag gebruiken?

<a href="www.uwdomein.nl/ontvang.php?variabele=2">

En in ontvang.php is $variabele dan toch 2 en kan je $variabele gewoon
gebruiken? Hetzelfde geldt toch ook als je met een FORM variabelen verstuurt
? Bij mij heeft het tenminste altijd gewerkt ( meen ik ).


> Buig je eens over de volgende pagina >
http://php.nederland.net/manual/en/reserved.variables.php
>
> en dan vooral de variabele $_SERVER['query_string']

Daar ben ik nog niet helemaal uit en dus mee bezig. Ik weet dat het tegen de
regels is om zo'n onzinnige niet ter zake doende reactie te geven maar ik
wil er alleen maar even mee zeggen dat ik bovenstaand advies niet negeer oid

Vr. gr.
Haico Spaapen.

Jan Ehrhardt
13/03/03, 09:20
Haico Spaapen in nl.internet.www.server-side (Thu, 13 Mar 2003 08:53:48
+0100):

>"Piet Hein" schreef
>> In het script kan ik niet terugvinden hoe je van de waarde die je meegeeft
>> in de url (?page_id) komt tot een variable ($page_id).
>
>Nou heb ik toch al die tijd gedacht dat als je een variabele meezend in een
>URL of een FORM je deze in de geadresseerde pagina kan/mag gebruiken?
>
><a href="www.uwdomein.nl/ontvang.php?variabele=2">
>
>En in ontvang.php is $variabele dan toch 2 en kan je $variabele gewoon
>gebruiken? Hetzelfde geldt toch ook als je met een FORM variabelen verstuurt?
>Bij mij heeft het tenminste altijd gewerkt ( meen ik ).

Klassiek geval van "register_globals" dat uitgezet is na een update van
PHP3 naar PHP4, lijkt me.

Jan
--
Dropdown and pushup menu's - http://cgi.monitor.nl/cms.html

Haico Spaapen
15/03/03, 10:20
> Klassiek geval van "register_globals" dat uitgezet is na een update van
> PHP3 naar PHP4, lijkt me.

Nee, erger nog. Het betrof hier het niet afsluiten van een form met de
</form> tag, staat me goed. Gelukkig ben ik er eindelijk achter gekomen en
werkt het weer. Bedankt voor het meedenken!