He sitedeals,
ik probeer een klein paginaatje te ontwikkelen waarbij de content afhankelijk is van de selectie uit een select box. Nu heb ik een selectbox gemaakt met meerdere values en een php scriptje die moet controleren wat er is gekozen en welk content er geladen moet worden. Alleen dit werkt niet.
De code:
Zouden jullie me een beetje kunnen sturen?PHP Code:
<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
$pages = $_GET['pages'];
if ($pages == '1') {
include(page1.php);
}
elseif ($pages == '2') {
include(page2.php);
}
?>
Alvast bedankt,
Yerney
- Select form handlen met php
-
18-07-2011, 11:41 #1
- Berichten
- 37
- Lid sinds
- 15 Jaar
Select form handlen met php
-
-
18-07-2011, 11:45 #2
- Berichten
- 163
- Lid sinds
- 13 Jaar
Re: Select form handlen met php
Yerney,
Waarom doe je het niet op deze manier?
PHP Code:<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
if (isset($_GET['pages']))
{
include 'page'.$_GET['pages'].'.php';
}
?>
Daarna zet je gewoon die nummer in je include zodat je een pagina krijgt.
He sitedeals,
ik probeer een klein paginaatje te ontwikkelen waarbij de content afhankelijk is van de selectie uit een select box. Nu heb ik een selectbox gemaakt met meerdere values en een php scriptje die moet controleren wat er is gekozen en welk content er geladen moet worden. Alleen dit werkt niet.
De code:
PHP Code:<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
$pages = $_GET['pages'];
if ($pages == '1') {
include(page1.php);
}
elseif ($pages == '2') {
include(page2.php);
}
?>
Alvast bedankt,
Yerney
-
18-07-2011, 11:53 #3
- Berichten
- 208
- Lid sinds
- 15 Jaar
Re: Select form handlen met php
Dat is al helemaal fout! wat als $_GET['page'] in dat geval "/../geheimefile" is? Dat wil je niet. Gebruik liever een switch.
PHP Code:switch($_GET['page']){
case '1':
// Pagina 1
break;
case '2':
// Pagina 2
break;
default:
// Pagina niet gevonden (404)
break;
}
Yerney,
Waarom doe je het niet op deze manier?
PHP Code:<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
if (isset($_GET['pages']))
{
include 'page'.$_GET['pages'].'.php';
}
?>
Daarna zet je gewoon die nummer in je include zodat je een pagina krijgt.
-
18-07-2011, 11:56 #4
- Berichten
- 163
- Lid sinds
- 13 Jaar
Re: Select form handlen met php
Nee hij wil met $_GET werken en dat is de makkelijkste manier, wat als je 100 keuzes hebt?
Het beste is nog wel $_POST te gebruiken. Dan kunnen gebruikers het niet manipuleren.
-
18-07-2011, 12:01 #5
- Berichten
- 37
- Lid sinds
- 15 Jaar
Re: Select form handlen met php
PHP Code:<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
switch($_GET['pages']){
case '1':
include(page1.php);
break;
case '2':
include(page2.php);
break;
default:
// Pagina niet gevonden (404)
break;
}
?>
-
18-07-2011, 12:15 #6
- Berichten
- 208
- Lid sinds
- 15 Jaar
Re: Select form handlen met php
Dat moet je met Javascript(/of jQuery) doen.
-
18-07-2011, 12:16 #7
- Berichten
- 37
- Lid sinds
- 15 Jaar
Re: Select form handlen met php
Ah ok, ik dacht al dat ik uiteindelijk ook JS erbij moest gaan gebruiken, maar de switch/case script is verder goed zo?
-
18-07-2011, 12:22 #8
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Select form handlen met php
Wat een slechte antwoorden jongens :o
$_GET gebruiken zonder controle of de $_GET-key wel bestaat.
$_GET gebruiken zonder de waarde de controleren
$_GET niet controleren op de verwachte waarde
een switch gebruiken bij talloze opties die niet vaststaan vooraf?!
Beweren dat $_GET onveilig is en je $_POST moet gebruiken zodat waardes niet gemanipuleerd kunnen worden?!
1) Je verwacht altijd een numerieke waarde uit de select? Dan zal dit een integer zijn als je die doorstuurt:
PHP Code:if(isset($_GET['page']) && is_int($_GET['page']))
PHP Code:if(file_exists('pages'.intval($_GET['page']).'.php')) { include('pages'.intval($_GET['page'].'.php'); }
Code:<select name="pages" onchange="this.form.submit();"><option ...></option></select>
Compleet:
PHP Code:<form id="pages" name="form1" method="get" action="">
<p>
<label for="pages">pages</label>
<br />
<select name="pages" id="pages" onchange="this.form.submit();">
<option value="1">page1</option>
<option value="2">page2</option>
</select>
</p>
</form>
<?php
if(isset($_GET['pages']) && is_int($_GET['pages'])) {
$page = intval($_GET['pages']);
if(file_exists('page'.$page.'.php')) {
include('page'.$page.'.php');
} else {
include('404.php');
}
}
?>Laatst aangepast door Joshua de Gier : 18-07-2011 om 12:24 Reden: Automatisch samengevoegd.
-
18-07-2011, 12:35 #9
- Berichten
- 208
- Lid sinds
- 15 Jaar
Re: Select form handlen met php
@Joshua de Gier: Je code voldoet, maar wat ik probeerde te zeggen, is dat hij eraan moet denken, dat als je een file hebt met daarin data, die je niet publiekelijk wil hebben, dat je dus wel moet opletten dat je input alleen de files pakt die je toestaat. Dus niet /../secretfile Want die is secret. Verder is je code wel netjes hoor, maar het verschil is dat jij hem de code geeft, en wij alleen een zetje geven.
-
18-07-2011, 13:38 #10
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Select form handlen met php
Begrijp ik, maar de oplossingen zijn zo omslachtig, als hij enkel een integer waarde wilt meesturen kun je die al controleren en dan is ?page=dit/kan/al/niet geen juiste waarde voor is_int() en zal dus de 404 worden getriggerd.
En ik geef hem toch ook duidelijke uitleg waarom ik die keuzes maak voordat ik hem de oplossing geef? ;-) Jouw oplossing is even compleet als de mijne, alleen moet hij daar nog wat switch-cases toevoegen.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic