kostenloser Webspace werbefrei: lima-city


index.php?action=main

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m********1

    Hi,

    ich bin absoluter PHP-Neuling.

    Meine Frage:

    Wie kann ich meine Links wie o. g. aussehen lassen?
    Mit dem Tutorial
    http://www.lima-city.de/tutorials/show/751
    verstehe ich es nicht.


    Wo muss ich den Code einfügen?

    Vielen Dank^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Wie wäre es denn, wenn du dich erstmal ein bisschen einarbeitest, dann bekommst du das ganz schnell alleine hin.
    Hier zwei Tutorials:

    http://schattenbaum.net/php/
    http://tut.php-q.net/
  4. b****y

    Das Tutorial ist auch nicht gerade das Beste und etwas unvollständig. Das ganze müsste so aussehen:

    <?php
    if (!isset($_GET[$action])) { 
    include ('main.php'); 
    } 
    /*Wenn keine Variable angegeben ist,also nur 'index.php' aufgerufen wird,wird automatisch die Seite 'main.php' angezeigt. */ 
    elseif($_GET[$action]=='news'){ 
    include('news.php'); 
    } 
    elseif($_GET[$action]=='guestbook'){ 
    include('guestbook.php'); 
    } 
    else { 
    include('main.php'); 
    } 
    /* Wenn z.B. von einem Benutzer 'index.php?action=test' eingegeben wird,leitet die 'index.php' automatisch auf 'main.php' um,da die Seite 'test.php' ja nicht existiert*/
    ?>

    Das speicherst du dann in einer Datei namens index.php ab und lädst sie dir auf deinen Webspace hoch. Wenn du deine Seite dann aufrufst z.B. mit index.php?action=main wird eine zweite Seite mit eingebunden, die in diesem Fall main.php heißt.

    Ich hoffe ich konnte dir weiterhelfen.
    MfG, Bohrty.
  5. ok ich würd es etwas eleganter lösen...sieht einfach schicker aus ;-) aber ist zu vorgenanntem gleich.

    <?php
    // Eingaben: Leerzeichen am Anfang & Ende entfernen und in Kleinbuchstaben wandeln
    $act = strtolower(trim($_REQUEST['action']));
    
    // Vergleich der Eingabe (achte darauf dass die Werte unten klein
    // geschrieben sind, da wir ja die Eingaben oben ins kleine wandeln)
    switch($act) {
        case 'news':        include('news.php'); break;
        case 'guestbook':   include('guestbook.php'); break;
        default:
            include('main.php');
    }
    ?>


    Grüßle ;)

    Beitrag geändert: 3.7.2007 10:41:57 von scout
  6. t*****b

    Warum nicht gleich:

    <?php
    $act = $_GET["action"];
    if (!isset($act)) { act = "startseite"; }
    $file = $act.".php";
    if (file_exists($file)) { include($file) } else { echo "<b>Error404:</b> Seite <i>".htmlentities($file)."</i> konnte NICHT gefunden werden!"; }
    ?>


    Beitrag geändert: 3.7.2007 10:53:13 von trueweb
  7. b****y


    Warum nicht gleich:

    <?php
    $act = $_GET["action"];
    if (!isset($act)) { act = "startseite"; }
    $file = $act.".php";
    if (file_exists($file)) { include($file) } else { echo "<b>Error404:</b> Seite <i>".htmlentities($file)."</i> konnte NICHT gefunden werden!"; }
    ?>



    Das ist natürlich die elleganteste Methode. Ich wollte eben nahe an diesem Tutorial dran bleiben, welches mathe1mal1 verwendet hat. Ist vielleicht auch nicht ganz so verwirrend, wenn er gerade erst in PHP einsteigt.

    MfG, Bohrty.
  8. Am einfachsten du machst die Links so:
    CODE:
    <a href="<?php echo('$PHP_SELF?main=action'); ?>">dein linktext</a>
  9. s***h


    Am einfachsten du machst die Links so:
    CODE:
    <a href="<?php echo('$PHP_SELF?main=action'); ?>">dein linktext</a>


    falsch



    <a href="<?php echo $PHP_SELF."?action=main"; ?>">dein linktext</a>
  10. Dazu hab ich auch mal ein Tutorial geschrieben:
    http://www.lima-city.de/tutorials/show/751
  11. ähm das hat mathe1mal1 ja ne verstanden

  12. Warum nicht gleich:

    <?php
    $act = $_GET["action"];
    if (!isset($act)) { act = "startseite"; }
    $file = $act.".php";
    if (file_exists($file)) { include($file) } else { echo "<b>Error404:</b> Seite <i>".htmlentities($file)."</i> konnte NICHT gefunden werden!"; }
    ?>


    Beitrag geändert: 3.7.2007 10:53:13 von trueweb


    Das würde ich nicht machen, da es unsicher ist, das wurde schon mal in nem anderen Thread hier besprochen. Dort war es zwar deutlicher, dass eine die datei mit dem namen der GET-Varible includet wird, da derjenige folgendes verwendet "?include=dateiname" hatte. Und zwar kann man, so es freigegeben ist, dann auch externe dateien includen und böse leute können damit viel unheil anrichten. Die Variante mit dem switch ist also die beste.

    Edit: Ok wie es scheint, fängt das file_exists dieses Problem ab, ich würde aber trotzdem die switch-variante empfehlen.

    Beitrag geändert: 3.7.2007 18:40:08 von hugo1990
  13. @trueweb: Ich habe es bewußt nicht so gemacht, da man ja mehrere Übergabeparameter auf 1 Datei lenken kann ;-)

    Ich lenke zum Bsp die Eingaben checkForm1 und checkForm2 usw. auf die Datei functions.inc.php.
    Deshalb finde ich meine Anordnung übersichtlicher, aber ist natürlich jedem selbst überlassen ;-)


    Grüßle
  14. technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    meine Fresse macht ihr das kompliziert. x.x

    also, bevor du überhaupt eine PHP Seite anfängst, empfehle ich dir
    http://www.php-einfach.de
    Da ist nämlich die Domain Programm. :biggrin:
    Sobald du dieses Tutorial durch hast (sollte höchstens 2 Tage dauern, wenn du durchpaukst und sofort verstehst kannst aber noch pennen. :biggrin:)
    kannst du im Grunde schon anfangen zu programmieren, dann heißt es eigentlich nurnoch Übung macht den Meister. Was du nicht weißt, holst du dir bei:

    http://schattenbaum.net/php/
    http://tut.php-q.net/

    so, und jetzt zu deiner eigentlichen Frage:

    index.php?action=guestbook

    action=guestbook ist eine GET-Variable, die kannst du dann mit &_GET['action'] aufrufen.
    und damit du das dann so als frame einfügen kannst, setzt du auf deiner index.php diesen Code:

    $content = $_GET['action'];
    										
    if($content == "")
    {
    include ("start.php");
    }
    else
    {
    $datei = "".$content.".php";
    if(file_exists($datei))
    {
    include ("".$content.".php");
    }
    else
    {
    include ("error.htm");
    }
    }


    durch diesen Code musst du deine nächsten Dateien nurnoch so benennen, wie es hinter ?action= steht, also in dem fall nennst du die nächste Datei dann guestbook.php und wenn blubb dahintersteht, nennst du die nächste Datei blubb.php .
    und jetzt erkläre ich dir noch meinen Code:

    Am Anfang wird geprüft, ob die variable "content", in der ja deine Variable "action" gespeichert ist, leer ist. Wenn ja, dann fügt er start.php ein, also sollte start.php möglichst deine Startseite darstellen. Wenn etwas in der Variable drinne ist prüft er ob es, in diesem Fall, eine Datei guestbook.php gibt. Wenn ja, fügt er diese ein, wenn nicht fügt er eine Seite error.htm ein also eine Fehlerseite. eine error.htm solltest du dir dann also auch anlegen, in der z.B. steht "Seite nicht gefunden .... blah blah blah" oder sowas.
    Diesen Ganzen Code fügst du nur da ein, wo du deinen Inhalt angezeigt bekommen möchtest.

    http://www.x-musik.com

    das ist meine Seite, da hab ich das auch angewendet, der Code fügt nur den mittleren Teil ein, also das was unter dem Header ist und zwischen der rechten und der linken Spalte. im Menü siehst du unten auch nochmal die links... bei mir icst alles bis index.php?content= immer alles gleich, nur hinter dem = ist dann der Dateiname ohne Endung eingetragen und er fügt diese Datei dann ein. geht aber nur bei php seiten!!!
  15. Herr Gott nochmal!
    Nehmt Switches, wie Scout es vorgeschlagen hat. Es ist eifnacher zu verwalten, elganter und schneller.
    Außerdem ... argh.. If's für die Navigation..da kann man auch gleich verschachtelte Trinitätsoperatoren nehmen, da hat man genausoviel Übersichtlichkeit..>_<
  16. t*****b


    Nehmt Switches, wie Scout es vorgeschlagen hat. Es ist eifnacher zu verwalten, elganter und schneller.


    Äh, elegant ist es kein Stück, für jede Seite ein Switch reinzuhauen und schon gar nicht einfacher zu verwalten, als z.B. mein Script ;) Und relevant schneller ist es auch nicht, vlt. auf eine million ausführungen ein paar Milli-Sec.
    Er hat doch nun reichlich mehr oder weniger gute Auswahl und er soll doch einfach selber entscheiden, was ihm am meisten zusagt.
  17. 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!