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

verschiedene werte nach .php?

FebsDeluxe

Mitglied
Hey Leute, ich habe folgendes vor:
wenn jemand www.beispiel.com/index.php?id=12 eingibt, soll die Datei "seite1.php" eingebunden werden,
bei www.beispiel.com/index.php?other=12 die Datei "seite2.php" ...

so sieht mein versuch aus:

PHP:
    $checkergebnis = mysql_query("SELECT `number` FROM `memes` WHERE `number`= '".$quote."'");
    $testen = mysql_num_rows($checkergebnis);
    $checkergebnispic = mysql_query("SELECT `number` FROM `zitate` WHERE `number`= '".$pic."'");
    $testenpic = mysql_num_rows($checkergebnis);

  if ($testen != 0)
  {
    include ('includes/quotes.php');
  }
  elseif ($testenpic != 0)
  {
    include ('includes/memes.php');
  }
  else
  {
    include ('includes/index.php');
  }

Allerdings klappt so nur index.php und quotes.php, wenn ich memes als wert eintrage, werde ich nach index.php weitergeleitet -.-

Hat jemand eine Idee was ich falsch mache?
 
Werbung:
Mit dem Quellcodeausschnitt kann man nicht wirklich was anfangen, daher nur

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Werbung:
Guten Abend,

also willst du im Prinzip ein dynamischen Seitenaufbau haben, wenn ich das richtig verstanden habe.

Zu allererst würde ich dir raten nicht den "Key" zu ändern, sondern den "Value".


So wie du das erklärst hast, möchtest du auf "$_GET[ 'id' ]" und "$_GET[ 'other' ]" überprüfen, aber warum nicht auf den Inhalt von "$_GET[ 'page_id' ]" ?

PHP:
$page_id = isset( $_GET[ 'page_id' ] ) ? intval( $_GET[ 'page_id' ] ) : 0;

if( $page_id ){
   $sql = mysql_query( 'SELECT `id`, `filename` FROM `pages` WHERE `id`="'.$page_id.'" ');

   if( mysql_num_row( $sql ) > 0 ){

       $row = mysql_fetch_assoc( $sql );

       if( file_exists( $row[ 'filename' ] ) ){
         include( 'irgendein/ordner/pages/'.$row[ 'filename' ] );
       } else {
         include( 'ordner/fuer/fehler/datei_existiert_nicht.php' );
       }
   } else {
      include( 'seite/existiert/nicht.php' );
   }
} else {
      include( 'es/wurde/kein/wert/angegeben.php' );
}


Ich überprüfe zuerst, ob der Wert überhaupt gesetzt wurde, wenn ja, dann stelle ich sicher, dass der Wert garantiert eine Zahl ist. (Um keine Sicherheitslücke zu eröffnen)

Dann überprüfe ich, ob die Variable für den Wert gesetzt wurde. "if" überprüft, ob der Wert true oder false ist. 0 ist gleich zu setzen mit false, also wenn keine "page_id" gesetzt wurde, wird false bzw. 0 übergeben und ganz am Ende die Datei "angegeben.php" wird aufgerufen. Es kann auch einfach nur ein "echo 'keine Datei gefunden';" stehen.. wie du willst.

Als nächstes wird in der Datenbank danach gesucht.

Danach ob die Datei existiert und wenn nicht, ruft er eine Standard Fehler Datei auf.. oder eine Text-Nachricht.. ganz wie du möchtest..

Eigentlich wollte ich die Antwort viel ausgereifter schreiben, aber ich habe so eben mein täglichen Limit erreicht.. erlaube mir bitte auch Müde zu sein ^^

Gute Nacht.
 
Bin zwar nicht sicher ob dein script das wirklich nicht zulässt, aber ich will ja folgendes machen:
beim key "id" soll die seite "quotes.php" geladen werden, welche sich am "value" von "id" orientiert ...
und bei "meme" soll "memes.php" eingebunden werden, angepasst auf die jeweilige zahl hinter dem gleichheitszeichen ...

bei deinem script scheint das nicht zu klappen ...
trotzdem großen dank!!
 
Was ich ja nie verstehen werde, ist: du redest von Key id, aber im Script sieht man nichts davon. Das selbe gilt für den Key meme. Warum nennt man die Variablen nicht so, dass sie auch dem Sinn entsprechen? Dann versteht jeder das Problem besser und sorgt nicht für unnötig Verwirrung.
 
Werbung:
warum nimmst du nicht zwei "weichen"?
./index.php?mode=meme&id=1
oder
./index.php?mode=quote&id=1

PHP:
$sql = 'SELECT * FROM `'.mysqli_real_escape_string($_GET['mode']).'` WHERE `id` = '.intval($_GET['id']).';';

Oder erkenne ich dein Problem nicht?
 
Werbung:
warum nimmst du nicht zwei "weichen"?
./index.php?mode=meme&id=1
oder
./index.php?mode=quote&id=1

PHP:
$sql = 'SELECT * FROM `'.mysqli_real_escape_string($_GET['mode']).'` WHERE `id` = '.intval($_GET['id']).';';

Oder erkenne ich dein Problem nicht?

Die Idee ist gut, dafür muss ich nur einiges bisschen umstellen ...
könnte ne weile dauernd bis ich das hinbekomme :D
 
Zurück
Oben