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

Include()

Status
Für weitere Antworten geschlossen.
Hallo,
wieder habe ich mal ein Problem..

Undzwar wie kann ich das machen das von dem Cms (index.php?site=1) nach zb site1.php includiren kann.

Also es funktioniert nicht, dort kommt immer eine Fehlermeldung, aber wenn ich nur index.php mache mit dem include befehl funktioniert es.

Es soll alles mti include laufen nichts mit Modrewite oder sonstiges.
 
PHP:
$switch = $_GET['site'];

switch ($switch)
{
   case '1':
  {
     mach seite 1
     break;
   }

   case '2':
  {
     mach seite 2
     break;
   }

   case '3':
  {
     mach seite 3
     break;
   }

}
 
Mh bin noch so eher Anfänger in include Sachen, ...

Also ich erklär es mal genauer ich habe ein eigenes Cms gemacht.
dort ist zb index.php?page=10&id=2777 <- Userprofil
Er soll die ganze Seite includieren bei user.php

Hab das einfach so gemacht:
PHP:
<?php
include("index.php?page=10&id=".$_GET[id]."");
?>
Aber es kommt die Fehlermeldung:

Warning: include(index.php?page=10&id=ss) [webhosting24 - Login]: failed to open stream: No such file or directory in /home/www/web1/html/user.php on line 2

Warning: include() [webhosting24 - Login]: Failed opening 'index.php?page=10&id=ss' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/www/web1/html/user.php on line 2
 
Das ."" ist schonmal überflüssig. Und "id" in '' setzen ;) Also:

PHP:
<?php
     include("index.php?page=10&id=".$_GET['id']);
?>
Hast Du als ID wirklich "ss" übergeben und zeigt diese auch auf etwas?
 
Das ."" ist schonmal überflüssig. Und "id" in '' setzen ;) Also:

PHP:
<?php
     include("index.php?page=10&id=".$_GET['id']);
?>
Hast Du als ID wirklich "ss" übergeben und zeigt diese auch auf etwas?

Ja hab alles versucht, auch Zahlen die es in der Datenbank auch gibts...
Auch wenn sie nicht gefunden wär kämm ne Fehlermeldung eig mit "Bitt geben sie eine gültige ID ein"..
 
Zeig mal den kompletten Code inkl. Datenbankabfrage.

Zurzeit ist das ein kleiner einfacher Code.
Das ist der code von ?page=10, und wird mit eval aus der Datenbank ausgelesen.
PHP:
<?php
if($_GET['id'] == ''){
   echo' Bitte gebe eine ID ein ';
} else{
   $id = $_GET['id'];
   $abfrage = "SELECT * FROM users WHERE profile = '$id'";
   $ergebnis = mysql_query($abfrage);
   $user = mysql_fetch_object($ergebnis);

   echo' '.$user->id.'  ';
}
?>
 
Ochje, ich verbesser das mal:

PHP:
<?php
    if(isset($_GET['id'])) {
        $abfrage = sprintf("SELECT * FROM users WHERE profile='%s'", mysql_real_escape_string($_GET['id']));
        $ergebnis = mysql_query($abfrage);
        $user = mysql_fetch_assoc($ergebnis);
        echo($user['id']);
    }
    else {
        echo("Bitte eine ID angeben!");
    }
?>

Wichtig: Bei Benutzereingaben escapen um Injections zu vermeiden.

Bei der Abfrage solltest Du * aus Performancegründen durch die einzelnen Spalten (spalte1,spalte2,spalte3 usw.) ersetzen. Wenn Du das gemacht hast könntest Du dann auch mysql_fetch_row verwenden und die Daten per Zahlen (ab 0) ansprechen, anstatt mit mysql_fetch_object (oder wie ich jetzt mit mysql_fetch_assoc), das ist nochmals etwas schneller.
 
Ochje, ich verbesser das mal:

PHP:
<?php
    if(isset($_GET['id'])) {
        $abfrage = sprintf("SELECT * FROM users WHERE profile='%s'", mysql_real_escape_string($_GET['id']));
        $ergebnis = mysql_query($abfrage);
        $user = mysql_fetch_assoc($ergebnis);
        echo($user['id']);
    }
    else {
        echo("Bitte eine ID angeben!");
    }
?>
Wichtig: Bei Benutzereingaben escapen um Injections zu vermeiden.

Bei der Abfrage solltest Du * aus Performancegründen durch die einzelnen Spalten (spalte1,spalte2,spalte3 usw.) ersetzen. Wenn Du das gemacht hast könntest Du dann auch mysql_fetch_row verwenden und die Daten per Zahlen (ab 0) ansprechen, anstatt mit mysql_fetch_object (oder wie ich jetzt mit mysql_fetch_assoc), das ist nochmals etwas schneller.

Okey Danke für den Tipp.
Ist dieses Befehl gegen Injetions $abfrage = sprintf("SELECT * FROM users WHERE profile='%s'", mysql_real_escape_string($_GET['id']));
?
 
Zuletzt bearbeitet:
Um mal auf das Ursprungsproblem zurückzukommen:

Man kann nicht includen mit Parametern (also _GET).
Übergib einfach eine Variable, die du dann in der includierten Datei benutzen wirst.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben