Wenn falsche section dann soll fehler anzeigen! Aber wie?

harderph

Erfahrenes Mitglied
Hello ich noch mal
ich hoffe ich nerve nicht inzwischen!
Thema sicherheit!
Wenn ich eine url habe (z.b. index.php?section=hallo)
und die wird falsch eingegeben (z.b. index.php?section=hallow oder andere zeichen), wie kann ich denn der seite sagen zeig "Section nicht vorhanden"

Hier hab ich mal ein script
[
PHP:
<?
	

$result = mysql_query("SELECT * FROM tabelle");
    while ($row = mysql_fetch_assoc($result))  
		//////////Hier die verschiedenen sectionen
 if(isset($_GET['section'])){
switch($_GET['section']) {        
   case "".$row["section_name"]."":                
include ("section/" .$row["sectionname"]."/index.php");   ////////Hier der pfad mit datebank abfrage des ordners//////               
     break;
	 
} 
 }else  {
 ///////Hier die datebank abfrage f&uuml;r die index seite der webpage/////
$result = mysql_query("SELECT * FROM tabelle2");
    while ($row = mysql_fetch_assoc($result))   {  	 
                       
include ("section/".$row["sectionname"]."/index.php"); 
 ////////Hier der pfad mit datebank abfrage des ordners//////  
  }
  }
 
 ?>
Bis her t das ganz gut aber wenn ich jetzt absichtlich eine falsche section angebe zeigt er mir eine leere seite an b.z.w. nur den headerberreich! !
 
[phpf]switch[/phpf] bietet hierfür den "default-case" an.

PHP:
switch($var)
{
  case "abc":
    #ich existiere
  break;
  case "def":
    #ich existiere
  break;
  default:
    #ich existiere immer wenn abc und def nicht zutreffen
}
 
Zuletzt bearbeitet:
Ist mir bewusst! Aber wenn ich jetzt default angebe kommt eine fehlermeldung
Code:
Parse error: syntax error, unexpected T_DEFAULT in D:\xampp\htdocs\web2\index.php on line 86
oder deafualt zeigt überall was an also in jeder seite!

hier mal code
PHP:
<?
 $result = mysql_query("SELECT * FROM section_modul");
    while ($row = mysql_fetch_array($result)) 
   if(isset($_GET['page'])){
switch($_GET['page']) {        
   case "".$row["sectiondata"]."":         
include ("seite/" .$row["sectiondata"]."/index.php");   ////////Hier der pfad mit datebank abfrage des ordners//////               
     break;
	 ///////Default_wert///////
default:
echo 'Diese seite gibt es nicht';
break;

} 
   }else  {
 ///////Hier die datebank abfrage f&uuml;r die index seite der webpage/////
$result = mysql_query("SELECT * FROM main_section");
    while ($row = mysql_fetch_assoc($result))   {  	 
                       
include ("seite/".$row["sectiondata"]."/index.php"); 
 ////////Hier der pfad mit datebank abfrage des ordners//////  
  }
  }
 
 ?>
Hoffendlich kann jemand was damit anfangen!
 
Binde das Suchwort gleich in die Datenbankabfrage ein:
PHP:
$result = mysql_query("SELECT 1 FROM `tabelle` WHERE BINARY `sectionname` = '".mysql_real_escape_string($_GET['section'])."'");
if( mysql_num_rows($result) ) {
	include "section/" .$_GET['section']."/index.php";
} else {
	echo 'Diese seite gibt es nicht';
}
 
Zurück