QueryString in PHP

  • PHP

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von mikeb69.

    QueryString in PHP

    Hallo,

    wie viele von euch wissen hab ich nicht wirklich Ahnung von PHP.
    Nach kurzer Suche bin ich nun drauf gekommen wie man den Querystring aus einer URL in PHP ausliesst.

    Übergangsweise - das Projekt muss fertig werden - helf ich mir mit ASP.NET aus bis ich den ganzen Mist auch in PHP umsetzen kann.

    Also bitte nicht böse sein, wenn der Code unsauber wirkt.

    In diesem Code soll eine Variable des Querystrings an eine url angehängt werden.
    Geht das so ?

    PHP-Quellcode

    1. <?php
    2. $page_content = '<h1>Test</h1>' .
    3. '<iframe src="http://www.test.de/test.aspx?id=" + $_GET['a']; style="width:100%; height:100%; border:none; min-height: 650px; overflow: hidden;"></iframe>';
    4. include('master.php');
    5. ?>


    Gruss

    mikeb69
    nein, so kann es nicht funktionieren.
    Richtig wären:
    '<iframe src="http://www.test.de/test.aspx?id='.$_GET['a'].'" style="width:100%; height:100%; border:none; min-height: 650px; overflow: hidden;"></iframe>';
    oder
    "<iframe src=\"http://www.test.de/test.aspx?id=$_GET["a"]\" style=\"width:100%; height:100%; border:none; min-height: 650px; overflow: hidden;\"></iframe>"; (oder Abwandlungen hiervon bei $_GET["a"] kann auch $_GET['a'] sein)

    PHP-Quellcode

    1. $xy = sprintf('<iframe src="http://www.test.de/test.aspx?id=%s"></iframe>',$_GET['a'])


    Styles würde ich nie im Style-Attribut ausgeben. Benutze doch ein extra Stylesheet:

    Quellcode

    1. iframe {
    2. width:100%; height:100%; border:none; min-height: 650px; overflow: hidden;
    3. }


    Edit:
    Du solltest noch urlencode benutzen. => php.net/manual/en/function.urlencode.php
    /nicht getestet
    @rotherford: Wieso sollte man keine Styles inline benutzen? Ist nur unübersichtlich.
    Das ist dann wohl Geschmackssache. Bei dir klang es nach einem schwerwiegenden Fehler. An sich finde ich es auch schöner in einem CSS. Aber zum Testen mal so ist es allemal in Ordnung.
    Hallo,

    bin wieder an diesem Punkt und komme nicht weiter.

    Da mir die obigen Beispiele immer Probleme bereiten, hab ich mal versucht den Query in eine Variable zu packen und diese weiterzureichen.
    So wie es aussieht wird aber der iframe nicht mehr ausgeführt.

    HTML-Quellcode

    1. <?php
    2. $page_content = '<h1>Test</h1>' .
    3. $url = $_SERVER['QUERY_STRING'];
    4. '<iframe style="width:100%; height:100%; border:none; min-height: 650px;" src="http://test.de/test.aspx{$url}" ></iframe>';
    5. include('master.php');
    6. ?>


    Was läuft hier falsch ?

    Gruss

    mikeb69
    Hi mike,
    da fehlt ein ? hinter aspx. Außerdem sollte die url kodiert werden, sodass die URL auch als Parameter fehlerfrei übergeben werden kann.

    //EDIT:
    Da ist mir noch was aufgefallen.

    Du deklarierst eine Variable innerhalb einer Variablenzuweisung.

    PHP-Quellcode

    1. $page_content = '<h1>Test</h1>';
    2. $url = $_SERVER["BLA"];
    3. $page_content .= '<iframe style="width:100%; height:100%; border:none; min-height: 650px;" src="http://test.de/test.aspx?{$url}" ></iframe>';


    Gruß
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „milaim“ ()

    Nein er meint es anders, was du geschrieben hast war

    PHP-Quellcode

    1. $pagecontent = 'lala'. // <--- hier machst du eine String verknüpfung
    2. $url = $_SERVER['bla']; // <--- Variablen Deklaration
    3. '<iframe ...'; // <--- hier geht der String weiter


    Das geht natürlich nicht in einer String Verknüpfung eine Variable zuweisen, das äquivalent in VB sähe so aus

    VB.NET-Quellcode

    1. Dim page_content As String = "Hallo" &
    2. Dim url As String = Server
    3. "<iframe bla bla"


    siehst du dein Fehler?

    Richtig wäre es so

    PHP-Quellcode

    1. $url = $_SERVER['QUERY_STRING'];
    2. $page_content = '<h1>Test</h1><iframe style="width:100%; height:100%; border:none; min-height: 650px;" src="http://test.de/test.aspx?{$url}" ></iframe>';
    Excuse me. Bin grad aufgewacht.

    PHP-Quellcode

    1. $page_content = '<h1>Test</h1>';
    2. $url = $_SERVER["QUERY_STRING"];
    3. echo $url;
    4. $page_content .= '<iframe style="width:100%; height:100%; border:none; min-height: 650px;" src="http://test.de/test.aspx?'.$url.'" ></iframe>';


    Variablen in Strings gehen schon, sobald man aber hochkommas verwendet.

    $test = "{$variable}"; // geht
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    @Dodo

    ok - bin in php ein richtiger Depp.
    Sieht man das ?

    Hab das mal so umgebaut

    HTML-Quellcode

    1. <?php
    2. $url = $_SERVER['QUERY_STRING'];
    3. $page_content = '<h1>Test</h1>';
    4. $page_content .= '<iframe src="http://test.de/test.aspx{$url}" style="width:100%; height:100%; border:none; min-height: 650px;"></iframe>';
    5. include('master.php');
    6. ?>


    Das hier kommt am Server an
    test.aspx{$url}


    Die Variable wird als Zeichenfolge übergeben und nicht deren Inhalt.

    Warum ?

    EDIT:

    Danke - jetzt geht es !!!
    Auf dem Server funktioniert der Code.
    Im Eclipse nicht !!!

    Gruss

    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Das hat ja nichts mit PHP zu tun eigentlich, is nur anderer Syntax, aber das Programmierprinzip is ja ähnlich wie in VB und da geht sowas ja auch nicht ;)

    PS: Wieso das mit der Variablen nicht geht, eigentlich dürfte es auf deinem Server auch nicht funktionieren.
    Wenn man die Einzel Quotes nimmt ' heißt dass, das NICHTS im String Interpretiert wird. Möchte man Variablen im String haben muss man den String beenden und die Variable verknüpfen.

    Bsp.:

    PHP-Quellcode

    1. $world = "Welt";
    2. echo 'Hallo $world'; // Ausgabe: Hallo $world
    3. echo 'Hallo '.$world; // Ausgabe: Hallo Welt
    4. echo "Hallo $world"; // Ausgabe : Hallo Welt
    Na so ist das ja mit jeder Programmiersprache, was hinwurschteln ist meist nicht gut, weil wenn Fehler auftritt kann man ihn eben nicht selbst beheben. Ist ja in VB nicht anders. Aber wenn VB gut kannst, sollte PHP eigentlich kein Problem sein. Anderer Syntax aber das Grundprinzip der Programmierung ist ja ähnlich. Die Funktionen und Dokumentation findet man auf php.net oder eben durch Googlen.
    Als ich damals mit PHP anfing, hatte ich ja auch nur langjährige Erfahrung in VB und konnte mich somit schnell einfinden, also innerhalb von 2-3 Tagen konnte ich schon das realisieren was ich vor hatte. Der Code war natürlich jenseits von Gut und Böse, aber es funktionierte erstmal ^^ und Verbessern kann man sich dann ja mit der Zeit *g*