PHP help please ( $_GET Funktion)

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_help_please_get_funktion_163005/page_1 - zur Vollversion wechseln!


x37 schrieb am 15.05.2006 um 00:57

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


mat schrieb am 15.05.2006 um 01:48

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 schrieb am 15.05.2006 um 03:05

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:

Code: PHP
  $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.


x37 schrieb am 15.05.2006 um 12:03

thx für die tipps ich werd mich heut am abend nochmals hinsetzen.


that schrieb am 15.05.2006 um 22:01

Zitat von mat
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 schrieb am 16.05.2006 um 23:22

@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 :D )

Code: PHP
<?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;
?>
Code: PHP
<?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?


kleinerChemiker schrieb am 17.05.2006 um 08:06

statt

Code: PHP
    if(isset($_GET['inhalt'])) {
        $inhalt1 = $_GET['inhalt'];
        if(isset($daten[$inhalt1])) {
            $inhalt2 = $_GET['inhalt'];
            }
    }
 

würd ich folgendes schreiben

Code: PHP
if (isset ($_GET['inhalt']) and isset $daten[$_GET['inhalt']] {
include .......




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025