kostenloser Webspace werbefrei: lima-city


Prüfung auf Existenz von einzubindenden Dateien

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Hallo ich schreibe Grade an ein neues Design. Und ich will das sich das Design Automatisch nach Design ändert aber das design nicht Einzelt in jedem GET eingefügt werden muss!

    Beispiel

    <?php
    [...]
    Get Var
    Inhalt
    [...]
    GetVar
    Inhalt ändert sich etwas
    [...)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also wenn ich das richtig verstehe (Schon die Rechtschreibung ist ja der Horror) willst du dein Design ändern, wenn über eine Get-Variable ein Wert gesetzt wird.

    Du solltest also erstmal abklären, wie dein Design definiert ist. Ist es in einer externen CSS-Datei Definiert, im <head> oder für jedes einzelne Element direkt definiert.

    Fall 1: Externe CSS-Datei
    Der wohl einfachste Fall wäre, wenn du das Design komplett per externer CSS-Datei definiert hast. Hier könntest du beispielsweise schlicht ein Array basteln, welches jede CSS-Datei enthält und dann die Dateien einfügen. Beispiel:
    <?
    	$cssdatei = array(
    				"datei1.css", 
    				"datei2.css", 
    				"datei3.css"
    				// usw...
    				);
    	echo "<link href=\"/css/$cssdatei[$_GET['foo']]\" type=\"text/css\" rel=\"stylesheet\">";
    ?>

    Fall 2: Im <head> definiert
    Im Head-Bereich seine Daten einzubinden wäre die nächste Möglichkeit. Hier wäre es nötig, die "sich ändernden" Werte in Variablen zu fassen. Beispiel:
    <?
    	$foo = $_GET['foo'];
    	$bar = $_GET['bar'];
    
    echo "<style>
    	<!--
    	  #foo {width:$foo; height: $bar;}
    	-->
    </style>";
    ?>

    Fall 3: Jedes Element einzeln
    Dieser Fall unterscheidet sich kaum vom zweiten Fall. Nur, dass hier natürlich die Variablen im Element eingefügt werden. Beispiel:
    <?
    	$foo = $_GET['foo'];
    	$bar = $_GET['bar'];
    ?>
    <!--
    	...
    -->
    <?
    	echo "<div style=\"width:$foo; height:$bar;\">";
    ?>
    </div>

    Fall 4: Elemente via GET ausblenden
    Der letzte mir vorstellbare Fall wäre, dass du einzelne Elemente ausblenden willst, wenn eine GET-Variable gesetzt ist. Obwohl mir der Fall fast trivial erscheint, hier nochmal ein Beispiel:
    <?
    	if isset($_GET['foo']) $foo = $_GET['foo'];
    	if isset($_GET['bar']) $bar = $_GET['bar'];
    ?>
    
    <!--
    	...
    -->
    <?
    if isset($foo)
    	{
    	echo "<div> foo! </div>";
    	// ...
    	}
    if isset($bar)
    	{
    	echo "<div> bar! </div>";
    	// ...
    	}
    ?>

    So, ich hoffe ich konnte helfen. Ansonsten: Problem näher definieren.

    PS: Alle Codes ungetestet - mag sein, dass man einige geringfügig anpassen muss.
  4. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Hallo,

    Nochmal ich möchte meine Seite mit GET Machen,

    Ich habe Jetzt mal einen Besseren Code

    <?php
    [DESIGN]
    [GET = Inhalt]
    [GET = Noch ein inhalt der sich bei einem Login auf die Seite Ändert]
    [DESIGN]
    ?>


    Beitrag zuletzt geändert: 31.10.2009 14:11:36 von privatecitypage
  5. HÄH?

    Willst du irgendein Templatingsystem machen oder was ist das? ich versteh zumindest gar nichts...
  6. privatecitypage schrieb:
    Hallo,

    Nochmal ich möchte meine Seite mit GET Machen,

    Ich habe Jetzt mal einen Besseren Code

    <?php
    [DESIGN]
    [GET = Inhalt]
    [GET = Noch ein inhalt der sich bei einem Login auf die Seite Ändert]
    [DESIGN]
    ?>


    GET oder Get stehen für:

    * einen Stadtteil der kroatischen Stadt Split
    * das hebräische Wort für Scheidebrief
    * GET-ligaen, eine Spielklasse im norwegischen Eishockeysport
    * GET, ein anfordernder Befehl in manchen Programmiersprachen
    * GET-Anforderung, ein Begriff im Hypertext Transfer Protocol (HTTP)
    * Georgsmarienhütte Eisenbahn- und Transport GmbH welche die Bahnstrecke Georgsmarienhütte–Hasbergen besitzt
    * den IATA-Code für den Flughafen von Geraldton (Australien)
    * Groupe des écoles des télécommunications, die frühere Bezeichnung einer französischen Gruppe öffentlicher Bildungs- und Forschungseinrichtungen für Informations- und Kommunikationstechnik, heute Institut TELECOM
    Also mit welchem "GET" willst du die Seite machen?
    Wenn es mit PHP zutun hat, bleibt nur $_GET oder HTTP-GET. Wobei letzteres weniger mit PHP zutun hat. Also wie wäre es, wenn du erstmal deine Absichten genau spezifizierst?
  7. <?php
    [DESIGN]
    [GET = Inhalt]
    [GET = Noch ein inhalt der sich bei einem Login auf die Seite Ändert]
    [DESIGN]
    ?>


    $_GET ist eher für kleinere Informationen geeignet nicht für wirklichen Inhalt. Du solltest lediglich variablen übergeben die du später auswertest und dann gewisse dateien per Include lädst. Für Login benutzt man eher $_Session.

    Mehr infos unter php.net ;-)

    Gruß
    Chris
  8. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    @nerdinator

    Falls du es nicht wusstest ich bin nicht blöd und ich dachte ihr währt es auch nicht!

    Wenn ich Schon UNTER PHP & MYSQL Mache muss es doch schon was mit PHP ZU TUEN HABEN ODER???????

    So was Regt mich auf.

    @keine ahnung mehr :D
    Das ist mir schon alles klar aber ich möchte so was gerne umgehen!!



    So sieht meine index.php aus
    <?php
    session_start();
    require("connect.inc.php");
    include 'config.inc.php';
    if(!session_is_registered('user') || $_SESSION['user'] == "") {
    header("Location: gast.php");
    exit();
    }
    {Sag ich nicht}
    if ($_GET['pages'] == '')
    {
    $seite = @implode("",file("pages/".$_GET['pages'].".php"));
    echo $seite;
    echo $_GET['pages'];
    }
    {sag ich nicht}
    ?>


    Also das habe ich auch ohne hilfe geschafft!

    Nun möchte ich aber das der Code auch so Funktioniert wie es eigentlich sein sollte,tut es aber nicht Grade beim get habe ich paar Probleme und zwar weiß er nicht welsche Seite Gemeint ist wenn kein zum beispiel ?start=index steht!!!!

    Wie kann ich das ändern?

    Beitrag zuletzt geändert: 31.10.2009 22:34:13 von privatecitypage
  9. b******a

    Wenn "nix dransteht" ist das Array ja leer. Also musst du nur definieren, was getan werden muss wenn es leer ist ;-)
  10. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Wie meinst du das jetzt genau?

    Ich möchte ja das die Seiten in dem Ordner pages/... so angenommen werde das ich diese nicht immer hinzufügen muss sondern ganz einfach so annehmen kann!

    Und ich möchte das wenn eine Seite nicht Gefunden wird das da Automatisch steht Seite nicht gefunden!
  11. b******a

    Ich dachte du bist nicht blöd? Was hindert dich dann daran PHP.net und Google zu benutzen?
  12. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Schon aber es gibt nicht grade Solsche Codes die darin Funktionieren würde!


    Aber Google ist nun mal dein Freund oder ;-)

    Hab mal was Gegoogelt und habe dann so ein Code Zusammen gewürfelt

    if ($_GET['pages'] == '')
    {
    $filename = '/pages/'.$_GET['pages'].'';
    if (file_exists($filename)) 
    	$seite = @implode("",file($filename)  
    	echo $seite;
       else {
        print "Die Datei  $filename Gibt es nicht";
    });
    
    }

    Aber es kommt immer diese Fehler Parse error: syntax error, unexpected T_ECHO

    Ich weiß was der Fehler heißt aber ich weiß nicht wie das Problem Beheben kann!

    Der Fehler ist bei
    echo $seite


    Beitrag zuletzt geändert: 31.10.2009 23:13:39 von privatecitypage
  13. privatecitypage schrieb:
    [...]
    if ($_GET['pages'] == '')
    {
    $filename = '/pages/'.$_GET['pages'].'';
    if (file_exists($filename)) 
    	$seite = @implode("",file($filename)  
    	echo $seite;
       else {
        print "Die Datei  $filename Gibt es nicht";
    });
    
    }

    [...]
    Der Fehler ist bei
    echo $seite



    Der Fehler liegt in den Zeilen darüber...
    if (file_exists($filename)) {
    	$seite = @implode("",file($filename));
    	echo $seite;
       } else {



    Mein Fehler... hab vergessen den Rest zu kopieren!
    } else {
            print "Die Datei  $filename Gibt es nicht";
        };


    Beitrag zuletzt geändert: 1.11.2009 12:36:52 von staymyfriend
  14. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    hihi aber dann kommt so ein Fehler :D

    Parse error: syntax error, unexpected ')'
  15. });

    werde zu
    }


    Weiterhin, was soll das:
    $seite = @implode("",file($filename));

    Ich glaube du meinst:
    $seite = file_get_contents($filename);


    Beitrag zuletzt geändert: 1.11.2009 9:30:07 von nikic
  16. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Danke, Werde es mal ausprobieren.
  17. privatecitypage schrieb:
    @nerdinator

    Falls du es nicht wusstest ich bin nicht blöd und ich dachte ihr währt es auch nicht!

    Wenn ich Schon UNTER PHP & MYSQL Mache muss es doch schon was mit PHP ZU TUEN HABEN ODER???????

    So was Regt mich auf.
    Richtig und ich habe dir schon die bestmöglichen Lösungen geliefert, denn wenn du nicht blöd bist, weisst du, dass
    <?php
    session_start();
    require("connect.inc.php");
    include 'config.inc.php';
    if(!session_is_registered('user') || $_SESSION['user'] == "") {
    header("Location: gast.php");
    exit();
    }
    {Sag ich nicht}
    if ($_GET['pages'] == '')
    {
    $seite = @implode("",file("pages/".$_GET['pages'].".php"));
    echo $seite;
    echo $_GET['pages'];
    }
    {sag ich nicht}
    ?>
    eine potentielle Sicherheitslücke ist. Immer schön ein Array anlegen, in welcher die Zulässigen Dateien gespeichert sind. Wenn man es sich einfach machen will, sagt man:
    <?
    	function IsAllowed($filename)
    	{
    		$filename = new array();
    		$fileClass = dir("/pages/");
    		$result = false;
    		while(false!==($datei = $fileClass->read()))
    		{
    			$file[$index] = $datei;
    			$index++;
    		}
    		foreach ($file as $value)
    		{
    			if($value = $filename) $result = true;
    		}
    		return $result;
    	}
    	
    	// ...
    	
    	$meine_datei = $_GET['pages'];
    	
    	if(isAllowed($meine_datei)){
    		echo $meine_datei;
    	}
    ?>

    Ist natürlich jetzt zusammen gegoogled und ungetestet, aber prinzipiell sollte das so funktionieren, wenn man es nötigenfalls geringfügig anpasst. Tendenziell ist das der von mir anfangs beschriebene erste Fall.

    Aber wir sind alle nicht blöd...
  18. e********l

    Also zunächst solltest du dem Benutzer eine definierte Menge an Designs vorgeben und ihn diese dann zur Auswahl stellen.

    Dann hast du zb. 5 Designs (1-5) und 1 ist das Standard Design. Die ID hälst du in der Session oder im Cookie oder besser gleich in beiden fest. Wenn der User nun das Design (1-5) via Get oder Post ändert, dann aktualisierst du das Cookie sowie die Session um die entsprechende INformation.

    Hinter den IDs verstecken sich für dich sichtbar die notwendigen Informationen, zb. der Pfad zu den Grafiken oder den CSS Dateien. Im Idealfall ist es einfach nur ein Name der den Designordner angibt.
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!