Newbie Problem

flozzilla

Grünschnabel
Hallo alle zusammen!
Ich habe ein Problem, für euch sicher Simple für mich die Hölle.
Ich will den include Inhalt meiner Seite mit 2 simplen Links verändern was nicht funktioniert:
Sobald ich nämlich mit meinem 2ten link die Variable verändere hab ich immer noch den Inhalt meiner gross1.inc.php
Code:
<?php
   		
		$bild = "bild01"; // bildverzeichnis beim seitenaufruf
		
		$gross = "gross1"; //bild startwert beim seitenaufruf
	
		
		include ("./galerie/".$bild."/".$gross.".inc.php"); 
		
?>

meine links sehen so aus:
<a href="gemaelde.php?gross=gross1"
<a href="gemaelde.php?gross=gross2"

Vielen Dank im voraus. Grüße Flo
 
Deine Variable $gross wird immer von der im Script überschrieben und wenn register_globals ausgeschaltet ist (mittlerweile bei einem großen Teil der Server, zum Glück :)), wirst du den gewünschten Inhalt vergebens in $gross suchen, da er sich in $_GET['gross'] befindet. Dazu: register_globals auf php.net
PHP:
<?php
$bild = empty($_GET['bild']) ? 'bild01' : trim($_GET['bild']);
$gross = empty($_GET['gross']) ? 'gross1' : trim($_GET['gross']);

/* 
Die Syntax von oben ist äquivalent zu folgendem, aber kürzer:
if(empty($_GET['bild']))
{
    $bild = 'bild01';
}
else
{
    $bild = trim($_GET['bild']);
}
*/

include ("./galerie/".$bild."/".$gross.".inc.php");
?>
 
Zuletzt bearbeitet:
Tausend Dank!

funktioniert super :)

2 Fragen

a) Würde mir das if - construkt einen Vorteil bringen?

b) Bist du wirklich in Rio ?
 
a) Nein. Aber bei komplexeren Überprüfungen ist es übersichtlicher :)
b) Ja, bin ich :D
 
jo jetzt hab ich glücklich weitergecoded....

und nun das problem das er mir den ordner nicht wechselt.

ich hab das jetzt so eingebaut:
PHP:
<?php
$bild = empty($_GET['bild']) ? 'bild01' : trim($_GET['bild']);
$gross = empty($_GET['gross']) ? 'gross1' : trim($_GET['gross']);

include ("./galerie/".$bild."/".$gross.".inc.php");
?>

ich kann jetzt per link das Bild gross1 und gross2 switchen jedoch nicht den ordner bild01
auf bild02?

Nochmal danke im vorraus!
 
Hm.
Lass die Variablen einfach mal ausgeben:
PHP:
<?php
$bild = empty($_GET['bild']) ? 'bild01' : trim($_GET['bild']);
$gross = empty($_GET['gross']) ? 'gross1' : trim($_GET['gross']);
echo $gross. ' aus Ordner ' . $bild . ' laden<br />';
echo 'Ordner existiert ' . (is_dir("./galerie/".$bild) ? '' : 'nicht'); // Gucken, ob php den Ordner 'findet'
echo 'Datei existiert' . (is_file("./galerie/".$bild."/".$gross.".inc.php") ? '' : 'nicht'); // Gucken, ob php die Datei 'findet'
include ("./galerie/".$bild."/".$gross.".inc.php");
?>

Nachtrag
Wie sieht der Link aus, über den du den Ordner (also $bild) übergibts? Nur um mal die potentiellen Fehlerquellen einzugrenzen :)
 
Zuletzt bearbeitet:
link is folgender:
PHP:
<a href="gemaelde.php?bild=bild02">


und die meldung hab ich mit deinem kleinen codeausschnitt bekommen.
gross1 aus Ordner bild02 laden
Ordner existiertnicht

P.S. ich wäre jetzt auch gern in Rio -.-
 
Ok. Das Script liegt im gleichen Ordner wie die Datei gemaelde.php? kleiner Fehler übrigens meinerseits. Übernimm nochmal den geänderten Code von oben und führ ihn aus. Hab aus versehen eine Datei an die [phpf]is_dir[/phpf]-Funktion übergeben. Ist ja klar, dass das kein Ordner ist :)
 
jo hab ich gemacht:

meldung

"gross1 aus Ordner bild02 laden"

problem das bild gross1 aus ordner bild01
und das bild gross1 aus ordner bild02 sind gleich sollten sie aber nicht xD
 
Wie jetzt? gross1 in bild01 ist das gleiche wie gross1 in bild02? Dann sind die Dateien in den beiden Ordnern auch gleich. Denn wenn du das Script so übernommen hast, wie ich gepostet, dann wird auch aus dem angeforderten Ordner die Datei geladen. Wenn das Script jedoch noch mehr beinhaltet als ich gepostet hab, dann zeig das mal bitte. Vielleicht ist da ja noch was "kaputt" :)
 
Zurück