Variablen an Unterprogramme übergeben und Rückgabe
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abarbeiten
aufruf
aufrufen
auswahl
break
code
datei
ergebnis
hilfe
index
inhalt
kontrolle
lade
navigation
problem
routine
switch
treten
variable auswahl
zuweisung
-
Ich habe mich schon durch alle möglichen Dokumentation durchgelesen, aber ich finde einfach keine funktionierende Lösung. Ich hoffe nun, daß noch einer der PHP-cracks helfen kann.
Ich möchte gerne meine Homepage mit PHP modular aufbauen, so wie es auch mit anderen Sprachen gemacht wird. Heißt nicht alle Routinen in die Index.php mit einbauen, sondern Werte übergeben, abarbeiten lassen und nur den verarbeiteten Wert zurückerhalten.
Im Moment hänge ich da gerade am Aufbau der Navigationsleiste.
Ich versuche über die Navigation eine Variable auswahl an das Programm config.php zu übergeben.
<dt><a href="INC/config.php?auswahl='home'">Home</a></dt>
<dd><a href="INC/config.php?auswahl='ich'" title="Über mich">Über mich</a></dd>
Normalerweise muß ich in PHP ja Variablen nicht vorher deklarieren. Es macht auch keinen Unterschied ob ich es mache oder nicht.
In der Config.php soll nun die Variable verarbeitet werden und das Ergebnis soll dann in der Index.php angezeigt werden.
Die Config.php:
<?php
echo $auswahl;
switch ($_GET['auswahl']) :
case 'home':
$content = file_get_contents('home.php');
break;
case "ich":
$content = file_get_contents('ich.php');
break;
default:
$content = file_get_contents('home.php');
endswitch;
return $content;
?>
Ich bekomme folgende Fehlermeldung:
Notice: Undefined variable: auswahl in P:\Homepage\xampp\htdocs\Homepage\INC\config.php on line 2
Nehme ich das Echo raus erhalte ich lediglich eine leere weiße Seite ohne jegliche Fehlermeldung
Ich weiß echt nicht mehr weiter. Hab schon so viel durchprobiert und Skripte und Manuals gewälzt, daß ich nu weniger weiß als vorher. Scheinbar wird der Wert erst gar nicht an die config.php übergeben.
Wäre für Hilfe sehr dankbar. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?php $auswahl=$_GET['auswahl']; echo $auswahl; switch $auswahl; : { case 'home': $content = file_get_contents('home.php'); break; case "ich": $content = file_get_contents('ich.php'); break; default: $content = file_get_contents('home.php'); } return $content; ?>
Beitrag zuletzt geändert: 3.11.2010 18:52:25 von geromel -
Super, vieeeelen Dank!
Daß ich die Variable noch mal übernehmen muß, hatte ich nirgends gesehen, oder immer übersehen. Das funktioniert so weit, hab auch nooch ein paar kleinere Fehler dabei gefunden. Über Echo, kann ich mir jetzt den Inhalt von $content anzeigen lassen und er ist auch korrekt.
Was aber immer noch nicht funktioniert ist die Rückgabe an die Index.php. Es bleibt nach Abarbeitung des config.scripts einfach eine leere weiße Seite.
Ich habe die Datei navigation.php über inlude in die index.php eingebunden. Kann das evtl das Problem verursachen? bzw. kann ich angeben, daß $content direkt an die index.php zurückgegeben wird und muß ich diese nochmals aufrufen damit der enue content eingebunden wird? Ich habe da echt massive Verständnisproblem, was PhP anbelangt.
Und noch einmal vielen Dank für die Hilfe. -
Die $content wird ja in der index.php abgefragt:
<?php
echo $content;
?>
allerdings wird nach Abarbeitung der config.php die Kontrolle nicht wieder an die index.php zurückgegeben, sondern ich erhalte nur den Bildschirm der config.php. die soll eigentlich nur zur verarbeitung dienen und gar nicht für den user sichtbar in Erscheinung treten. Möchte auf diese Weise den content der Seite je nach auswahl des benutzers dynamisch ändern.
Sollte es noch mal genauer schildern: Am Anfang der Index.php wird der Variablen der Inhalt der home.php zugewiesen, damit dieser als erstes auf der Seite sichtbar ist. danach ist die Navigation.php über include eingebunden und nach der navigation kommt dann die Anzeige von $content. In der dann je nach userauswahl der Inhalt angezeigt werden soll.
Beitrag zuletzt geändert: 3.11.2010 19:27:21 von hypnoberatung -
Ganz versteh ich das grad net, kannst du nicht mal den Code der index.php posten?
Und es wäre übersichtlicher, wenn du um den Code den Code-Tag (aus der Menüleiste des Beitrags) legen würdest. -
Ja klar, gerne:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="Keywords" content="Hypnose, Beratung, Rauchentwöhnung" /> <meta http-equiv="Content-Style-Type" content="text/css"> <title>Homepage Hypnoberatung</title> <link href="CSS/test.css.php" media="screen" rel="stylesheet" type="text/css" /> <link rel="stylesheet" media="print" href="/CSS/druck.css"> <link rel="stylesheet" media="aural" href="/CSS/speaker.css"> <style> </style> </head> <body> <?php $content= file_get_contents('./INC/home.php'); ?> <div id="fixed"> <ul id="menu"> <?php include ('navigation.php'); ?> </ul> </div> <div id="scroller"> <div id="content"> <div id="Seite"> <h1> <?php echo '<img id="header" src="Grafik/Kopfzeile4.png" alt="" title="" align="center" />'; ?> </h1> <div id="Inhalt"> <?php echo $content; ?> </div> </div> </div> <p id="Fusszeile">Webdesign by Hypnoberatung</p> </div> <div> <?php echo '<img id="background" src="Grafik/Bild6.png" alt="" title="" />'; ?> </div> </body> </html>
-
Könnte daran liegen, dass deine Dateien nicht ich.php sondern ich.html heißen? Ich versuch überhaupt diese Seiten hier auf lima zu finden, keine Chance, ich glaube der Hund liegt irgendwo da begraben.
Zumindest hab ich, wenn ich deine navigation.php aufrufe nur Links auf html-Dateien.
Beitrag zuletzt geändert: 3.11.2010 19:45:10 von geromel -
nein, es gibt sowohl die ich.php als auch die home.php. Ich bekomme sie am Ende der config php wenn ich
echo $content; schreibe auch völlig korrekt angezeigt, nur halt nicht innerhalb der index.php sondern auf einer leeren weißen Seite, nämlich der config.php.
Derzeit steht diese Arbeitsversion auch nicht hier, sondern ich arbeite mit localhost, also meinem Testapache. Ich lade die Seiten immer erst hoch, wenn sie funktionieren. Aber unter hypnoberatung.lima-city.de/index.php liegt eien vorabversion, allerdings ist da der code an dem ich derzeit arbeite noch nicht eingefügt.
Das mit dem HTM liegt daran, daß ich als erstes eine reine HTML/CSS-Version gemacht habe um das allgemeine Gerüst erst mal zu haben und selbst zu sehen, wie es aussieht. Es gibt auch noch eine index.html, wenn du nicht mit index.php aufrufst bekommst du nur die zu sehen.
Fällt niemandem mehr etwas zu dem Problem ein? Ich verzweifel hier allmählich
Beitrag zuletzt geändert: 4.11.2010 18:28:16 von hypnoberatung -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage