Ankündigung

Einklappen
Keine Ankündigung bisher.

[gelöst] php-Datei schreibt file_get_contents in Adessszeile anstatt in Body - Contao

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [gelöst] php-Datei schreibt file_get_contents in Adessszeile anstatt in Body - Contao

    Hallo zusammen,

    ich möchte gerne die "Google Distance Matrix API" nutzen, um u.a. die Distanz zwischen zwei Orten auszulesen.

    HTML:

    HTML-Code:
    <form name="form" action="{{file::maps_direction.php}}" method="post">
        <p>
            Start:
            <input type="text" name="start" size="40"/>
        </p>
    
        <p>
            Ziel
            <input type="text" name="ziel" size="40"/>
        </p>
        <input type="submit" name="submit" value="Strecke berechnen" />
    </form>
    PHP:

    PHP-Code:
    <?php

    $apiKey 
    "hierStehtMeinApiKey";

    $start = !empty($_POST["start"]) ? urlencode($_POST["start"]) : null;

    $ziel = !empty($_POST["ziel"]) ? urlencode($_POST["ziel"]) : null;

    $urlApi "http://maps.googleapis.com/maps/api/distancematrix/json?origins=".$start."&destinations=".$ziel."&key=".$apiKey;

    $result file_get_contents($urlApi);

    $data json_decode($resulttrue);

    ?>

    <p>
        Start:

        <?php echo $data["origin_addresses"][0?>
    </p>

    <p>
        Ziel:

        <?php echo $data["destination_addresses"][0?>
    </p>

    <p>
        Distanz:

        <?php echo $data["rows"][0]["elements"][0]["distance"]["text"?>
    </p>

    <p>
        Dauer:

        <?php echo $data["rows"][0]["elements"][0]["duration"]["text"?>
    </p>
    folgendes Problem:

    Wenn ich den Code so ausführe, dann sagt der Browser, dass der Link nicht gefunden wird. Grund ist, dass der Code in der Adresszeile aufgerufen wird.
    Dort steht dann z.B.: "http://meineDomain/Start:Ziel:.."

    Eigentlich sollte der Code die Daten in $result speichern und über $data auslesbar machen.

    Ist das Problem verständlich?
    Könnt ihr mir helfen?

    Vielen Dank und beste Grüße
    b-coach

  • #2
    Wenn ich den Code so ausführe, dann sagt der Browser, dass der Link nicht gefunden wird.
    Das hat weniger mit file_get_contents() zu tun, sondern (wahrscheinlich) mit deinem HTML Template. Ansonsten hätte sich PHP beschwert und nicht der Browser. => Schau mal, ob das HTML so erzeugt wird, wie du annimmst.

    Kommentar


    • #3
      Danke für die schnelle Antwort!

      Zwei Probleme stelle ich fest:
      - echo und <p> werden in der Adresszeile ausgegeben

      und
      PHP-Code:
      $start = !empty($_POST["start"]) ? urlencode($_POST["start"]) : null;

      $ziel = !empty($_POST["ziel"]) ? urlencode($_POST["ziel"]) : null
      $start und $ziel scheinen die Werte nicht übernommen zu haben.

      In dem Template habe ich nicht weiter eingestellt. Das ganze ist mir Contao erstellt.
      Was könnte denn im Template sein, dass die Ausgabe nicht im Body bzw. auf der Seite ausgegeben wird?

      Viel mehr Infos habe ich leider nicht.

      Viele Grüße
      b-coach

      Kommentar


      • #4
        Zuerst mal müsstest du die Frage beantworten, ob denn das HTML korrekt generiert wird, denn PHP schreibt nichts in die Adresszeile. => Quellcode im Browser anschauen.

        Kommentar


        • #5
          Zitat von Dormilich Beitrag anzeigen
          Zuerst mal müsstest du die Frage beantworten, ob denn das HTML korrekt generiert wird, denn PHP schreibt nichts in die Adresszeile. => Quellcode im Browser anschauen.
          Im Quellcode der HTML steht folgendes (bevor irgendwas ausgefüllt wird):
          HTML-Code:
               <form name="form" action=" <p> 	Start: 	</p>  <p> 	Ziel: 	</p>  <p> 	Distanz: 	</p>  <p> 	Dauer: 	</p> " method="post"> 	<p> 		Start: 		<input type="text" name="start" size="40"/> 	</p> 	 	<p> 		Ziel 		<input type="text" name="ziel" size="40"/> 	</p> 	<input type="submit" name="submit" value="Strecke berechnen" /> </form>
          Ich denke, dass der Fehler irgendwo hier liegt:
          HTML-Code:
            action="{{file::maps_direction.php}}"

          Kommentar


          • #6
            Okay. Es liegt an der Verlinkung.

            Ich versuche per Inserttag zu verweisen.
            Anscheinend ist das nicht richtig. Dadurch wird der Inhalt der PHP-Datei bei action="" eingefügt. Deshalb kommt es zu keiner sinnvollen Verarbeitung.

            Kommentar


            • #7
              Anscheinend ist das nicht richtig.
              In das action Attribut gehört die URL deines PHP-Scriptes.

              Kommentar


              • #8
                {{file::maps_direction.php}} ist jedenfalls kein PHP.

                Kommentar


                • #9
                  Zitat von Dormilich Beitrag anzeigen
                  In das action Attribut gehört die URL deines PHP-Scriptes.

                  Zitat von hellbringer Beitrag anzeigen
                  {{file::maps_direction.php}} ist jedenfalls kein PHP.
                  Richtig. Hatte die Beschreibung von {{file::}} missverstanden. War im glauben, dass dies die URL einfügt.
                  Dabei wird an dieser Stelle der Inhalt der verlinken Seite eingefügt. Das Programm hat also, logischerweise "Start:Ziel: Distanz: Dauer:" eingefügt.

                  Jetzt wird die Seite ../maps_direction.php geladen.

                  Hier kann geschlossen werden (falls das in dem Forum so gemacht wird), da dieses "Problem" gelöst ist.
                  Vielen Dank für die Hilfe / Hinweise von allen

                  Kommentar

                  Lädt...
                  X