PHP help please ( $_GET Funktion)
x37 15.05.2006 - 00:57 985 6
x37
xxx-xxxxxxx
|
Ich arbeite gerade an einer kleine Page. Und jetzt hab ich ein problem mit php wo ich leider nix im inet gefunden hab, und mein php wissen ist luschenhaft.
index.php is die hauptseite, diese sollte mit hilfe von so erweiterungen den inhalt laden. zb index.php?inhalt=blabla
nur wie bekomm ich diese "Variable" jetzt in den code rein das es funkt? ich bin immer an: "Notice: Undefined variable: inhalt in" gescheiter
mein jetziger code: <?php error_reporting(E_ALL); // alle Fehler anzeigen If ($inhalt=="1234") {echo "juhu";} else {echo "nein";}
echo $inhalt; include ("inc/$inhalt.php"); ?>
mein ziel ist es eine datei zu includen die genau so heist. (das obere is nur zum testen)
kann mir da wer helfen oder hat wer nen guten link? ich find leider nix.
tia
Bearbeitet von x37 am 16.05.2006, 23:24
|
mat
AdministratorLegends never die
|
ich helfe dir, aber du solltest dennoch einsehen, dass dies eine echt n00bfrage ist, die problemlos mit irgendeinem tutorial über variablen in php beantwortet werden kann.
auf deinem webserver ist die environmentvariable "register_globals" ausgeschalten und das ist auch gut so, sonst hätte dein code bei kleinen unsauberkeiten schnell eine sicherheitslücke.
deshalb brauchst du die superglobal arrays. die sind $_POST, $_GET usw. deine variable "inhalt" kannst du also über $_GET['inhalt'] erreichen.
bitte nimm dir oben geschriebenes zu herzen.
btw: überleg dir schon mal was passieren würde, wenn ich über den request string deiner inhaltsvariable zB "../index" zuweisen würde.
|
dosen
Here to stay
|
würde auch mit $_GET aufpassen. wenn du die seiten mit index.php?site=bla.html und dann einfach über eine variable einen include machst ist man trotzdem ziemlich unsicher. mat hats ja eh schon gesagt, die erklärung ist aber sehr dürftig und die tuts die ich durchgemacht hab habens auch nicht richtig erklärt (vielleicht genau die falschen durchgemacht. aufjedenfall nicht so: also site = $_GET["site"]; include $site; sollte man nicht verwenden (auch wenn man normalerweise ein if und else herum schreibt). das: $files = array
("bla" => "bla.html",
"bla2" => "bla2.html");
if (!isset($_GET["site"]){
$site = "start";
} else {
$site = $_GET["site"];
}
include $files[$site];
würde sicher(er) sein. ich wollte dir jetzt zwar nix schreiben, da das aber eh nur ein kleiner schnipsel ist und ich dir sowieso nicht v erspechen kann das es funzt (da ich immer zeichen vergesse ) las ich es mal stehen. mach ein paar tutorials durch und dann kapiert man es eh schnell was dieses und jenes macht.
Bearbeitet von dosen am 11.07.2006, 14:06
|
x37
xxx-xxxxxxx
|
thx für die tipps ich werd mich heut am abend nochmals hinsetzen.
|
that
ModeratorHoffnungsloser Optimist
|
aber du solltest dennoch einsehen, dass dies eine echt n00bfrage ist Das ist auch ein echtes n00b-Subject, deshalb helfe ich dir nicht. Du könntest den Threadtitel editieren, oder zumindest beim nächsten Mal einen aussagekräftigen Titel wählen. (außerdem kenn ich mich mit PHP nicht aus )
|
x37
xxx-xxxxxxx
|
@that ein besser titel is mir zuerst leider net eingefallen sorry leider bin ich erst heute dazugekommen. Das hab ich aus euren Tipps und Tutorials aus dem inet zusammengestoppelt.(wenn man weis wie die funktion heist is viel leichter was finden ) <?php
//index.php
error_reporting(E_ALL); // alle Fehler anzeigen
$inhalt2 = "start";
$nummer = "0";
include "inhalt/_daten.php";
if(isset($_GET['inhalt'])) {
$inhalt1 = $_GET['inhalt'];
if(isset($daten[$inhalt1])) {
$inhalt2 = $_GET['inhalt'];
}
}
if(isset($_GET['n'])) {
$nummer = $_GET['n'];
}
include $daten[$inhalt2];
echo $nummer;
?>
<?php
// inhalt/_daten.php
$daten = array
(
"start" => "inhalt/start.php",
"test" => "inhalt/test.php",
"nix" => "inhalt/nix.php"
);
?>
es scheint zu funktionieren. Bitte erbarmt euch nochmal und sagt mir ob des in ordnung sprich halbwegs sicher ist. tia edit: oder sollte ich die abfrage ob der wert im array vorhanden ist eher mit einer "in_array" funktion machen?
Bearbeitet von x37 am 17.05.2006, 01:02
|
kleinerChemiker
Here to stay
|
statt if(isset($_GET['inhalt'])) {
$inhalt1 = $_GET['inhalt'];
if(isset($daten[$inhalt1])) {
$inhalt2 = $_GET['inhalt'];
}
}
würd ich folgendes schreiben if (isset ($_GET['inhalt']) and isset $daten[$_GET['inhalt']] {
include .......
|