• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Funzt net...

Status
Für weitere Antworten geschlossen.
Fehlermelung, obwohl alles korrekt ist.

Also, ich habe in meiner DB die Tabelle Pages.. Dadrin befinden sich 2 Zeilen, mit den Namen Start und 404. Wenn ich nun index.php aufrufe, komme ich immer auf die 404 Seite, obwohl die Seite Start in der Db existiert:

PHP:
<?php
/*
Filename: index.php
Content: Startseiteninhalt
© by: Coder.de.gg
*/
include('./includes/page_begin.php');

//Get the Page
if ( !isset ($_GET['site']) OR empty($_GET['site']) )
 {
 header("Location: index.php?site=Start");
 }
if ( isset ($_GET['site']) AND !empty ($_GET['site']) )
 {
 $page = mysql_query("SELECT * FROM Pages WHERE Page=".$_GET['site']." LIMIT 1");
 $exist = mysql_num_rows($page);
 if ( $page == "0" )
  {
  header("Location: index.php?site=404");
  }
 if ( $page > "0" )
  {
  while ( $site = mysql_fetch_assoc ($page) )
   {
   nl2br($site['Inhalt']);
   echo "<h3>".$site['Titel']."</h3>".$site['Inhalt']." ";
   }
  }
 }

include('./includes/page_end.php');

?>
 
Zuletzt bearbeitet:
Also, ich habe in meiner DB die Tabelle Pages.. Dadrin befinden sich 2 Zeilen, mit den Namen Start und 404. Wenn ich nun index.php aufrufe, komme ich immer auf die 404 Seite, obwohl die Seite Start in der Db existiert:

PHP:
<?php
/*
Filename: index.php
Content: Startseiteninhalt
© by: Coder.de.gg
*/
include('./includes/page_begin.php');

//Get the Page
if ( !isset ($_GET['site']) OR empty($_GET['site']) )
 {
 header("Location: index.php?site=Start");
 }
if ( isset ($_GET['site']) AND !empty ($_GET['site']) )
 {
 $page = mysql_query("SELECT * FROM Pages WHERE Page=".$_GET['site']." LIMIT 1");
 $exist = mysql_num_rows($page);
 if ( $page == "0" )
  {
  header("Location: index.php?site=404");
  }
 if ( $page > "0" )
  {
  while ( $site = mysql_fetch_assoc ($page) )
   {
   nl2br($site['Inhalt']);
   echo "<h3>".$site['Titel']."</h3>".$site['Inhalt']." ";
   }
  }
 }

include('./includes/page_end.php');

?>
ja, du hast ja auchnen fehler im query, deshalb liefert mysql_query() false, also 0 zurück und deshalb 404..
Du musst die Seite in anführungsstrichen schreiben, also:
PHP:
$qry = "SELECT * FROM Pages WHERE Page='".$_GET['site']."' LIMIT 1";
Allerdings ist das ganze ding sehr unsicher, denn wenn ich will, kann ich damit innerhalb von paar sekunden deine ganze Datenbank löschen (wie will ich nicht zeigen, dass bringt manche Kinder nur auf böse Ideen..), das ganze nennt sich dann XXS, ich kann nämlich beliebigen code in den query einbauen. Um das zu verhindern sollte man variablen immer durch mysql_real_escape_string escapen!
also:
PHP:
$qry = "SELECT * FROM Pages WHERE Page='".mysql_real_escape_string($_GET['site'])."' LIMIT 1";
Gruß
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben