$_Get Variable in html Link einbauen

Schon festgestellt? Dem Forum sind gerade alle Interaktionsmöglichkeiten genommen. :(

Mehr dazu unter: Abstimmung über das Forum

  • Hallo zusammen,
    Ich bin ganz neu hier im Forum und bräuchte auch schon eure Unterstützung.


    Ich habe zurzeit Folgendes anliegen.


    Ich habe eine Variable =

    PHP
    1. $_GET['ida'];


    diese müsste ich auf mehrere Formulare übereben.

    HTML
    1. <nav><li><a href="anlagen_details.php?navi=2&amp;ida="<?php echo $_GET['ida'];?> title"normal Darstellung">Allgemein</a></li>


    Jedoch wird mir die Variable nicht mitgeliefert :s


    Kann mir jemand helfen? Vielen Dank :)

  • Willkommen im Forum!


    Die Arrayvariable $_GET wird nur gesetzt, wenn Daten via GET Methode an das PHP Skript übergeben werden. Wenn man also bspw. ein HTML Formular hat

    HTML
    1. <form action="skript.php" method="get">
    2. <!-- Die ganzen Formularinputs -->
    3. </form>

    und dieses abgesendet wird, dann bekommt das PHPskript "skript.php" eine GET Variable, die dann natürlich auch wieder ausgegeben werden kann.


    Wurden noch keine Daten gesendet, oder wurden sie als POST gesendet, dann existiert $_GET auch nicht und kann dementsprechend natürlich nicht ausgegeben werden ;)


    Einfachste Überprüfung für diesen Fall ist folgende:

    PHP
    1. $ida = isset($_GET["ida"]) ? trim($_GET["ida"]) : "";

    Soll heißen: "Schreibe in die Variable $ida entweder den Wert von $_GET["ida"] ohne Leerzeichen vorn und hinten, falls dieser vorhanden ist, sonst nimm einen leeren String".

  • Das Problem liegt hier wohl bei dem " (Anführungszeichen).
    original:

    HTML
    1. <nav><li><a href="anlagen_details.php?navi=2&amp;ida="<?php echo $_GET['ida'];?> title"normal Darstellung">Allgemein</a></li>


    so sollte es funtionieren:

    HTML
    1. <nav>
    2. <li>
    3. <a href="anlagen_details.php?navi=2&amp;ida=<?php echo $_GET['ida'];?>" title"normal Darstellung">Allgemein</a>
    4. </li>


    Zusätzlich aber bitte noch die von aussen kommenden Daten prüfen und maskieren:

    HTML
    1. <?php
    2. $ida = '';
    3. if(isset($_GET['ida'])and $_GET['ida'] == /*auf was auch immer geprüft werden muss*/){
    4. $ida = $_GET['ida'];
    5. }
    6. ?>
    7. <nav>
    8. <li>
    9. <a href="anlagen_details.php?navi=2&amp;ida=<?php echo htmlspecialchars($ida);?>" title"normal Darstellung">Allgemein</a>
    10. </li>
  • Wow Vielen Dank,


    The Scout, die Variabeln ect. habe ich alle schon geschrieben, es ging legentlich noch um die Übergabe mit dem Link so wie das cottton Perfekt erklärt hat :)
    Vielen Dank cottton, ich hätte ja eigentlich selber drauf kommen können, aber jetzt habe ich noch eine "Prüfung" eingefügt was auch Sinn macht.