Hallo

Ik was weer eens aan het klooien. Ik heb deze code:


<?php
if ( $_SERVER["REQUEST_METHOD"] == "GET" )
{

# Pagina's voor admin maken met hun vars.
$pagina = $_GET["p"];
$actie = $_GET["actie"];

if ( empty( $pagina ) && ( empty ( $actie ) ) )
{
echo "Welkom in het admin paneel";
}


}


?>


Wel staat Error reporting op all. Nu is het rare dat als ik hem zo doe als ik hem nu heb twee errors krijg:


Notice: Undefined index: p in C:\xampp\htdocs\php_leren\gtanl\admin\index.php on line 20

Notice: Undefined index: actie in C:\xampp\htdocs\php_leren\gtanl\admin\index.php on line 21
Welkom in het admin paneel

Maar als ik hem op POST zet de $_SERVER["REQUEST_METHOD"] dan krijg ik weer geen errors? Bestaat dit alleen voor POST ofzo? Of doe ik wat fout?

Alvast bedankt

Omar
$pagina = $_GET["page"];

En wie zegt dat $_GET["page"] bestaat? Dat controleer je nergens.

Wanneer je gaat controleren of er een post-formulier is verstuurd en dat is niet het geval, zul je ook nooit het stukje code tegenkomen met bovenstaande fout. Je kunt er dan ook geen foutmelding op krijgen.
En dat doe je toch met isset()? Maar als ik dit doe krijg ik het ook :$.


<?php
if ( $_SERVER["REQUEST_METHOD"] == "GET" )
{

# Pagina's voor admin maken met hun vars.
$pagina = $_GET["pagina"];
$actie = $_GET["actie"];

if ( isset ( $pagina ) && ( isset ( $actie ) ) )
{
	if ( empty ( $pagina ) && ( empty ( $actie ) ) )
	{
		echo "Welkom in het admin paneel";
	}
}
}
?>


Nu controleert hij of de vars bestaan toch? En dan als $pagina en $actie leeg zijn dan krijg je de tekst.

Alleen het werkt nu helemaal niet meer :p.
@OmarM

Maar voordat je die if(isset()) gebruikt, probeer je de waarde van $_GET['pagina'] en $_GET['actie'] al in een variabele te proppen. En dat is ook precies waar die over struikeld..
oftewel


<?php

if(isset($_GET['p'])){

    if(in_array($_GET['p'],$toegestane_paginas)){

      // doe je ding
    }
    else {
 
    include 'home.php';
}
else {

include 'home.php';

}
?>


zoiets, niet getest
Overigens niet zo sterk dat je met $_GET het adminpanel gaat beveiligen

Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Bedankt het werkt nu. Klaasjan Boven: Ik hoorde daar wel dingen over maar hoe zou ik het dan goed kunnen beveiligen?


<?php
if ( $_SERVER["REQUEST_METHOD"] == "GET" )
{

# Pagina's voor admin paneel.


	if ( isset ( $_GET["p"] ) )
	{
		$p = $_GET["p"];
		
		# Index pagina
		if ( empty ( $p ) )
		{
			echo "Welkom in het admin paneel";
		}
		
		# Pagina test
		elseif ( $p == "test" )
		{
			echo "lol";
		}
		
		# Als de pagina niet bestaat
		else
		{
			echo "Deze pagina bestaat niet.";
		}
		
	}

}
?>


Hoe zou ik dit dan moeten beveiligen :$?
Met SESSIONS en een database gaan werken.


<?php
if($_SESSION['admin'] =='yup'){

   echo $adminpanel;

}

?>
Deze pagina word inderdaad met sessions beveiligt maar ik bedoel gewoon als het geen admin pagina was.
Dan is je hierboven gemaakte opzet prima volgens mij

Reageren