Includes geben keine URL-Variablen weiter

Firestorm696

Mitglied
Da ist das eine Problem noch nicht mal gelöst, kommt schon das nächste:
Code:
<?php 
switch($section){
case "profile1": include("profile.php?recordID=1"); break;
case "profile2": include("profile.php?recordID=2"); break;
case "profile3": include("profile.php?recordID=3"); break;
default: include("news.php"); break;
}
?>

Kann mir jemand sagen warum das nicht funktioniert? Ich hab schon probiert, einen eigenen PHP-Script für die Abfolge zu machen, das hat mich schonmal stutzig gemacht, wobei das noch das mindere Problem ist. Die IDs kann ich ja Auflisten.

Das Ganze kommt von einem Master-Detailseitensatz der in einem Include ($section) eingebunden ist. Wenn man nun beim jeweiligen Profilsatz drauf klickt, muss die Variable $recordID natürlich weitergegeben werden. Ich kann aber nicht NUR die recordID weitergeben, ich muss zuerst die section weitergeben, da die Seite sonst in _self ladet. Also geb ich mit einem click aufs Profil erstmal eine sectionID durch:

Code:
<a href="index.php?section=profile<?php echo $row_members['ID']; ?>">Profil</a>

Diese wird also an die index.php geleitet, welche die $section einbindet. Aber sie kann keine URL-Variable includen. Warum nicht? :( Könnt ihr mir helfen?
 
Könnte das Problem so gelöst werden?

PHP:
<?php 
    $section = $_GET['section'];
    switch($section){
    case "profile1": include("profile.php?recordID=1"); break;  
    case "profile2": include("profile.php?recordID=2"); break;
    case "profile3": include("profile.php?recordID=3"); break;
    default: include("news.php"); break;
}
?>
 
Versuch mal das:
Ändere den Code so ab, dass du einfach eine Variable mit dem Wert vor dem Include setzt....
PHP:
<?php 
switch($section){
case "profile1": $recordID=1; include("profile.php"); break;
case "profile2": $recordID=2; include("profile.php"); break;
case "profile3": $recordID=3; include("profile.php"); break;
default: include("news.php"); break;
}
?>

in der profile.php kannst du dann ganz locker mit $recordID weiterarbeiten...
bei nem Include wird die datei quasi an der Stelle eingefügt (so als ob du da den Code aus der Datei hinschreiben würdest...)

Wenn du nun vor dem Include irgendwelche variablen setzt, dann stehen diese in der eingebundenen Datei auch bereit.


Du hast versucht GET-Variablen zu setzen, welche für eine Datei bereitstehen die z.B. via
PHP:
file("http://blub.de/index.php?section=news");
eingebunden wird.
Hier könnte die index.php auf die variable $_GET['section'] zugreifen (inhalt: "news").
 
Auszug aus dem php-Manual zur include()-Funktion:

PHP:
// Funkt nicht; schaut nach einer lokalen Datei namens
// 'file.php?foo=1&bar=2' im lokalen Dateisystem

include 'file.php?foo=1&bar=2';
 
Ich habe absolut nicht verstanden, was dein Problem ist, Firestorm. Könntest du bitte noch einmal mit verständlichen Worten erklären, was du zu realisieren versuchst und was genau nicht klappt.
 
@ hamster: leider so nicht...

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

:(
 
doch is so, ich weiß was ich schreibe...
Jetzt haste mir nur ne mySQL-Fehlermeldung gepostet, weiß nicht was das zu bedeuten hat...
evtl. haste aber nen Syntax-fehler in dem SQL-Befehl?

jedenfalls hast du nen denkfehler beim einbinden mit includes...
Definitiv kannst du bei nem include keine Get-Variablen übermitteln.

include("page.php?section=test"); <-- wird und kann nicht funktionieren....
include("page.php"); <-- würde die page.php genau an die stelle wo des include steht einfügen

willst du jetzt in der page.php auf die get-variablen zugreifen, dann musst du die variablen VOR dem include setzen:

$section="test"; include("page.php"); <-- jetzt kann die page.php auch auf
$section zugreifen...

Hier ein kleines Beispiel:
index.php:
PHP:
<?php
$section="news"; include("page.php");
?>

page.php:
PHP:
<?php
echo($section);
?>

Ausgabe
HTML:
news
 
Zurück