Hannes: Variablenübergabe mit get?

Moin,
ich muss mehrere Suchwörter per get übergeben. Auslesen und trennen kann ich sie ja in PHP wieder, es geht nur um die Art der Übergabe. Getrennt sollen sie durch je ein Leerzeichen sein. Soll ich einfach das %20 lassen wie es ist? Bei Google zum Beispiel sinds ja solche + Zeichen. wo ist das der Vorteil/Nachteil?

gruß hannes

  1. Hallo Hannes,

    ich muss mehrere Suchwörter per get übergeben. Auslesen und trennen kann ich sie ja in PHP wieder, es geht nur um die Art der Übergabe. Getrennt sollen sie durch je ein Leerzeichen sein. Soll ich einfach das %20 lassen wie es ist? Bei Google zum Beispiel sinds ja solche + Zeichen. wo ist das der Vorteil/Nachteil?

    Da gibt es einen CGI-Standart. Sowas:

    ?var1=das+ist+text&var5=neuer+text

    Würde bei PHP beispielsweise

    $_GET["var1"] = "Das ist text"
     und $_GET["var5"] = "neuer Text"

    ergeben. Aber nicht nur bei PHP ;-)

    wauWau

    --
    ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
    E-Mail WauWau: [mailto:der-wauwau@gmx.de]
    1. Verstehe. Aber normal werden die Leerzeichen ja in %20 umgewandelt, oder? Also muss ich die + Zeichen automatisch setzen?

      gruß hannes

      1. Hallo Hannes,

        Verstehe. Aber normal werden die Leerzeichen ja in %20 umgewandelt, oder? Also muss ich die + Zeichen automatisch setzen?

        WauWau und ich haben die Lösung deines Problems gefunden und schon hier gepostet:
        [pref:t=80246&m=465685]
        [pref:t=80246&m=465687]

        Gruß
        Arx

  2. Hallo Hannes,

    verstehe dein Anliegen nicht ganz.

    wie willst du die Suchwörter an dein Script übergeben?

    1. per Formular:
    Dann hast du ja in der HTML-Datei schon <form action="mein_script.php" method="get"> notiert. In PHP kommst du an die Formularfeld-Daten mit $_GET["name_des_formularfelds"] dran.
    2. per URI im href-Attribut eines Links:
    das weiß ich auch nicht so genau, versuche es einfach mal mit + und schreib hier, wie es läuft.

    Hoffe, dir geholfen zu haben; bei Fragen einfach nochmal posten!
    Gruß
    Arx

    1. Hallo Arx,

      verstehe dein Anliegen nicht ganz.

      Ich habe ehrlich gesagt auch nicht verstanden, worüber er sich eigentlich Gedankten gemacht hat.

      1. per Formular:
        Dann hast du ja in der HTML-Datei schon <form action="mein_script.php" method="get"> notiert. In PHP kommst du an die Formularfeld-Daten mit $_GET["name_des_formularfelds"] dran.

      Sozusagen. Sagen wir also mal, da steht ein <input type="text" name="texteingabe"> und ich gebe ein "ich bin ein Bla". Dann kommt in den Querystring "?texteingabe=ich+bin+ein+bla" und in PHP ist dann $_GET["texteingabe"] = "ich bin ein bla".

      Afaik ist das so Standart, und da brauchst du dir auch gar keine Gedanken drüber zu machen.

      1. per URI im href-Attribut eines Links:
        das weiß ich auch nicht so genau, versuche es einfach mal mit + und schreib hier, wie es läuft.

      Es müsste/tud so laufen. Ich habe mir mal die Zeit genommen, 2 kleine Testchen mit dem Perl-Sript des http://selfhtml.teamone.de/cgi-bin/comments.pl gemacht. Also:

      - http://selfhtml.teamone.de/cgi-bin/comments.pl?element1=Das+ist+der+Text&Element2=Das+ist+anderer+Text&Element3=%40P�
       - http://selfhtml.teamone.de/cgi-bin/comments.pl?Feld1=&Feld2=ich bin Text&Feld3=ich bin+auch text

      *teste*

      Wie du siehst, geht beides. "+" ist als Zeichen so erlaubt und stellt ein Leerzeichen dar, ansonsten darfst du ein Leerzeichen in einer URI nur maskiert eingeben, also %20.

      Ich denke, da gibt es bestimmt RFC's dazu, die das einmal bestimmt haben, aber in Punkto RFC kenne ich mich nicht so aus ;-)

      wauWau

      --
      ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
      E-Mail WauWau: [mailto:der-wauwau@gmx.de]
      1. Hallo WauWau,

        1. per Formular:
          Dann hast du ja in der HTML-Datei schon <form action="mein_script.php" method="get"> notiert. In PHP kommst du an die Formularfeld-Daten mit $_GET["name_des_formularfelds"] dran.

        Sozusagen. Sagen wir also mal, da steht ein <input type="text" name="texteingabe"> und ich gebe ein "ich bin ein Bla". Dann kommt in den Querystring "?texteingabe=ich+bin+ein+bla" und in PHP ist dann $_GET["texteingabe"] = "ich bin ein bla".

        Afaik ist das so Standart, und da brauchst du dir auch gar keine Gedanken drüber zu machen.

        Habe ich mal mit Google getestet: Habe nach "   " (drei Leerzeichen) gesucht. In der Adressleiste stand dann im Suchstring-Abschnitt auch "+++".

        Wie du siehst, geht beides. "+" ist als Zeichen so erlaubt und stellt ein Leerzeichen dar, ansonsten darfst du ein Leerzeichen in einer URI nur maskiert eingeben, also %20.

        Das ist klar, Leerzeichen sind in URIs tabu.

        Ich denke, da gibt es bestimmt RFC's dazu, die das einmal bestimmt haben, aber in Punkto RFC kenne ich mich nicht so aus ;-)

        Ich auch nicht ;-)

        Gruß
        Arx

    2. Habe mich etwas schlecht ausgedrückt. Ich will die Suchwörter dann noch weitergeben um sie im Text farblich hervorzuheben. Die sonstige Suche läuft natürlich über post.

      1. Hallo Hannes,

        Habe mich etwas schlecht ausgedrückt. Ich will die Suchwörter dann noch weitergeben um sie im Text farblich hervorzuheben. Die sonstige Suche läuft natürlich über post.

        Also das mit dem Hervorheben ist dann ein ganz anderes Kapitel ;-)

        WauWau

        --
        ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
        E-Mail WauWau: [mailto:der-wauwau@gmx.de]
      2. Hallo Hannes,

        Habe mich etwas schlecht ausgedrückt. Ich will die Suchwörter dann noch weitergeben um sie im Text farblich hervorzuheben.

        Das kannst du später ja immer noch machen, erstmal musst du an sie rankommen.

        Die sonstige Suche läuft natürlich über post.

        Verstehe ich das so richtig:

        <form action="mein_script.php" method="post">
        <input type="text" name="suchbegriffe" />
        <input type="submit" value="Suche starten" />
        </form>

        ?

        Dann kämst du im PHP-Script folgendermaßen an die Daten:

        $suchstring=$_POST["suchbegriffe"];

        Meinst du das so oder doch wieder anders? Schreib mal ganz genau, was du willst, dann können wir dir auch gut helfen.

        Gruß
        Arx