URL auswerten

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • URL auswerten

    HILFE!!!

    Ich kapier es einfach nicht!

    Von einem Suchformular aus wird mittels folgender URL die Detailseite geöffnet:

    http://localhost/langspielplatten.ph...1978&bandsbis=
    1980&hauptgruppe%5B%5D=Rock

    Wie kann ich auf dieser Detailseite die in der URL enthaltenen Daten auswerten?

    Ich wäre Euch für Eure Hilfe sehr dankbar. Das ganze soll ein Schallplattenverzeichnis im Web werden, in dem man nach Interpret, Jahr, Titel etc. suchen kann.

    Ein kleines Code-Beispiel wäre echt nett.

    Gruß und Danke
    Gismo

  • #2
    Naja, die übergebenen Parameter heißen in der Zieldatei genauso, also zB $bandvon und $bandbis usw.

    Oder meinst du was anderes?

    Comment


    • #3
      FALSCH!!!

      Variablen, die über die URL reinlommen werden über $_GET angesprochen!!!

      Comment


      • #4
        Das ist richtig, die Felder heißen dort genauso.

        Aber wie krieg ich zum Beispiel bei einer Selectabfrage die entsprechenden Daten in die Abfrage (hier zum Beispiel 1978 und 1980, sowie Rock) die durch die URL übergeben werden.

        Es soll alles zwischen 1978 und 1980 sowie die Hauptgruppe Rock gesucht werden.
        Diese Daten stehen zwar in der URL aber nicht in der Selectabfrage.

        Gruß
        Gismo

        Comment


        • #5
          Dann haben wir zwei verschiedene PHP-Versionen... Ich lese meine URLs ständig so aus.

          Eine Datei "schreibe.php?text=Hallo" verarbeitet anstandslos die $text-Variable


          Schreibe.php:

          <?php
          echo "Ich soll '$text' schreiben..."
          ?>

          @Gismo:
          $abfrage="SELECT * FROM tabelle WHERE bandjahr>='$bandvon' AND bandjahr <='$bandbis' AND ... ";

          Suchst du dies?
          Last edited by SJoerend; 07-07-2003, 22:26.

          Comment


          • #6
            jo, und du hast die veraltete variante mit register globals on (sehr gefährlich, solltest du mal nachsehen!) Fakt ist, dass man mit GET zu arbeiten HAT!!!

            Viel Erfolg!

            Comment


            • #7
              Warum "zu arbeiten HAT", es funktioniert doch auch so. Wer hat diese Regel geschrieben...
              Bitte sag mir noch, was Register Globals On bedeutet, das weiß ich echt nicht. Das zu ändern müsste ich auch meinem Provider in Auftrag geben.

              @Gismo:
              Wenn du die Abfrage kopierst: ich hab aus Versehen $bandvon usw statt $bandsvon geschrieben! Bandbis genauso!

              Comment


              • #8
                Such einfach mal! Sollte man berücksichtigen, deine art zu programmieren ist extrem unsicher.

                Comment


                • #9
                  Sag mir doch, warum!
                  Dies ist doch ein Forum - zum Fragen und Antworten...

                  Comment


                  • #10
                    stell dir vor, du hast in ner session ne variable $logged_in die du einfach prüfst
                    PHP Code:
                    if (!$logged_in)
                      echo 
                    'Kommst hier nich rein, nich mit den Schuhen!'
                    wenn du das als geheim.php speicherst und so aufrufst:
                    Code:
                    geheim.php?logged_in=true
                    bist du eingeloggt

                    daher werden daten in ner session über $_SESSION['logged_in'] angesprochen und die über den link kommen mit $_GET['logged_in']
                    so kannst du schön nachvollziehen wann jemand versucht hat auf primitive weise deine schutzmechanismen auszuhebeln
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Comment


                    • #11
                      Jetzt wirds langsam klarer, Mr Happiness. Wenns ums Eingeloggt-Sein geht, verwende ich die Sache mit der Session-ID. Habs noch nicht oft gemacht, bin eh noch Anfänger auf PHP.

                      Mal zum rein technischen:
                      echo $http_post_vars['$param'];

                      liefert das gleiche wie
                      echo $param;

                      ist das richtig? Genauso kann ich die Variablen mit diesen beiden Methoden auch für alle anderen Zwecke verarbeiten? oder gibt es da einen Unterschied (wahrscheinlich,sonst wäre meine Methode nicht "unsicher"), und wenn, welchen?

                      In meinem Buch (habe nur eins: MySQL & PHP von Markt+Technik) steht über die erstgenannte Methode gar nichts. Muss wohl noch eins kaufen...

                      Comment


                      • #12
                        OffTopic:
                        Du verlangst nicht allen ernstes, das das selbe Thema immer und immer wieder erklärt werden muss. Dafür ist ein Forum ganz sicher NICHT da!!!

                        Comment


                        • #13
                          ich raff es einfach nicht

                          Irgendwie raff ich es noch immer nicht.

                          So sieht das Suchscript aus (Auszug), ich habe den HTML-Code weggelassen:

                          //Verbindung zur Datenbank
                          //search.php
                          <?php
                          require("config.php");
                          ?>

                          <?php
                          $link = mysql_connect ($host, $user, $pass);
                          if (! $link)
                          {
                          die ("Couldn't connect to mySQL server");
                          }
                          if (!mysql_select_db ($database, $link) )
                          {
                          die ("Coldn't open $database: ".mysql_error() );
                          }
                          ?>


                          <?php
                          $result = mysql_query("SELECT * FROM langspielplatten",$link);
                          $num_rows = mysql_num_rows($result);
                          ?>

                          //In dieser Datei sollen die gefundenen Ergebisse angezeigt werden
                          <form name=search action="./details.php">

                          //Das Suchformular
                          <table border="0" cellpadding="0" cellspacing="0" width="495">

                          <tr>
                          <td ALIGN=left>Erscheinungsjahr von:</TD>
                          <input type="text" name="jahrvon" size="20">
                          </td>
                          </tr>

                          <TR>
                          <td ALIGN=left>ERscheinungsjahr bis:</TD>
                          <input type="text" name="jahr bis" size="20">
                          </td>
                          </tr>

                          <tr>
                          <td align=left>Interpret:</td>
                          <select name="interpret[]" size="4" multiple>
                          <?php
                          $result = mysql_query("SELECT interpret FROM langspielplatten GROUP BY interpret;",$link);
                          while ($row =mysql_fetch_array ($result) )
                          {
                          print "<option name=\"interpret\" value=\"$row[interpret]\">$row[interpret]";
                          }
                          ?>
                          </select>
                          //Hier stehen normalerweise noch ein paar Suchfelder

                          </td>
                          <td align=left width="95" height="82"></td>
                          </tr>

                          </table>
                          <input type=submit value="Suchen">
                          </form>
                          </center>

                          So sieht die URL der Seite details.php aus (bis hierhin klappt auch alles):
                          h**p://localhost/details.php?jahrvon=1978&jahrbis=1980&interpret%5B%5D=Beatles]

                          Jetzt schaffe ich es einfach nicht, die Daten aus der URL in der Seite details.php anzuzeigen, weil ich nicht weiß, wie ich die Daten aus der URL in die Selectabfrage bekommen soll (weil ja auch "jahrvon" und "jahrbis" nicht in jeder Suchabfrage auftauchen (jenachdem nach welchen Kriterien gesucht wird):

                          SELECT * FROM langspielplatten WHERE (jahrvon >= '1978' AND jahrbis <= '1980') AND ((interpret ='Beatles'))
                          Danke und Gruß
                          Gismo

                          Comment


                          • #14
                            prüfst einfach, ob die daten angegeben sind
                            --> isset()

                            und fügst sie dann ggf an das Query an, oder auch nicht.

                            Comment


                            • #15
                              Ich weiß ehrlich gesagt immer noch nicht, was der Sicherheits-Unterschied zwischen den beiden Methoden ist. Mir wurde bisher nur vorgeworfen, dass ich es nicht weiß, aber das weiß ich selbst. Vielleicht kann mir das jemand anders verdeutlichen. Oder ich frage mal in einem Forum...

                              Vielleicht kickt mich auch irgend ein Moderator, weil ich ihn einfach nicht verstehe...

                              Comment

                              Working...
                              X