Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Speichern einer URL in SQL

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Speichern einer URL in SQL

    Heya,

    ich nutze einen Form auf meiner Seite, mit der ich zig unterschiedliche Daten abfrage, unter anderem auch URLs.

    PHP-Code:
    <form action='index.php' method='get'>
    <
    input type='text' name='alternativelinkde1'size='50' maxlength='255' value='".$content['alternativelinkde1']."'
    das Format in der Datenbank ist varchar(255)

    In diesem Beispiel gebe ich die URL

    PHP-Code:
    http://www.amazon.de/gp/product/B0011FDUV4?ie=UTF8&tag=ndnw-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=B0011FDUV4 
    in das Feld ein.
    In der URL steht daraufhin
    PHP-Code:
    http%3A%2F%2Fwww.amazon.de%2Fgp%2Fproduct%2FB0011FDUV4%3Fie%3DUTF8%26tag%3Dndnw-21%26linkCode%3Das2%26camp%3D1638%26creative%3D6742%26creativeASIN%3DB0011FDUV4 
    PHP-Code:
    $alternativelinkde1$_GET["alternativelinkde1"]; 
    daraufhin folgt unmittelbar der Update/Insert Code

    in der Datenbank bleibt übrig:

    PHP-Code:
    http://www.amazon.de/gp/product/B0011FDUV4?ie=UTF8 
    also sauber beim ersten & abgetrennt.

    Ich nehme an, dass das Problem beim auslesen der URL mit $_GET besteht oder im Format des Datenbankfeldes. Ich habe in dem Zusammenhang auch schon etwas von urldecode gelsen, was aber in diesem Fall wohl flachfällt, da es sich mit $_GET zerschießen würde.

    Wär super wenn mir da jemand weiterhelfen könnte.


  • #2
    Nutze POST als Übertragungsmethode.
    http://hallophp.de

    Kommentar


    • #3
      POST funktioniert leider nicht. So recht verstehe ich das zwar auch nicht, aber soweit ich es gelesen habe, liegt es an den Forenskripten die mehr oder weniger im Hintergrund laufen.

      Kommentar


      • #4
        Was heißt den "funktioniert nicht"? Was genau den nicht? Was für ne Fehlermeldung usw.?

        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Es passiert recht genau nichts. ^^
          Also die Seite ist so aufgebaut, dass es eine index.php gibt, die ganzen Unterseiten sind mit action=irgendwas aufgeteilt.
          die Seite, in der Hier die Aktionen durchgeführt werden ist action=movies zB. (zum einen das formular, aber auch alle verarbeitenden vorgänge diesbezüglich)
          Beim drücken des Form buttons ruft sich bei "get" diese seite selber auf, und übergibt sich selber die entsprechenden parameter.
          Wenn ich schlicht get durch post ersetze, dann lande ich auf meiner Indexseite. Ich hatte da auch schon mit einer anderen zier url und ähnliches rumprobiert, aber ohne erfolg. Und soweit funktioniert es ja auch mit get eigentlich.

          Die URL Manuell in die DB eintragen funktioniert auch.

          Kann es sein, dass $_GET die URL zerschießt?

          Kommentar


          • #6
            Naja... "zerschiessen" heisst in diesem Kontext, die Daten werden URL-encoded...
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Wenn ich schlicht get durch post ersetze, dann lande ich auf meiner Indexseite.
              zeig vielleicht amal dein Formular her, was für einen Action-Parameter hast du denn angegeben ..?
              PHP-Code:
              if ( $humans >= ) {
                 
              war ();

              Kommentar


              • #8
                Zitat von PhillKill12 Beitrag anzeigen
                zeig vielleicht amal dein Formular her, was für einen Action-Parameter hast du denn angegeben ..?
                PHP-Code:
                    echo "
                    <center>
                    <form action='index.php' method='get'>
                    <table style='background-color:#999999'>
                    <tr><td>
                    German Title: <input type='text' name='name_de'size='21' maxlength='22' value='"
                .$content['name_de']."'>
                    English Title: <input type='text' name='name_en'size='21' maxlength='22'value='"
                .$content['name_en']."'>
                    </td></tr><tr><td>
                    German Genre: <input type='text' name='genre_de'size='16' maxlength='15'value='"
                .$content['genre_de']."'>
                    English Genre: <input type='text' name='genre_en'size='16' maxlength='15'value='"
                .$content['genre_en']."'>
                    </td></tr><tr><td>
                    Release Date: <input type='text' name='releasedate'size='4' maxlength='4'value='"
                .$content['releasedate']."'>
                    </td></tr><tr><td>
                    Folder Name: <input type='text' name='titledir'size='20' maxlength='50'value='"
                .$content['titledir']."'>
                    </td></tr><tr><td>
                    Amazon DE <input type='checkbox' name='amazonde' value='1'"
                ;if ($content['amazon_de'] == 1) echo "checked='checked'";echo "><br>
                      Amazon CO.UK <input type='checkbox' name='amazoncouk' value='1'"
                ;if ($content['amazon_couk'] == 1) echo "checked='checked'";echo "><br>
                       Amazon US <input type='checkbox' name='amazonus' value='1'"
                ;if ($content['amazon_com'] == 1) echo "checked='checked'";echo ">
                    </td></tr><tr><td>
                    Review 1 DE | Name: <input type='text' name='reviewde1name'size='10' maxlength='10' value='"
                .$content['reviewde1name']."'> TopicID: <input type='text' name='reviewde1link'size='5' maxlength='10' value='".$content['reviewde1link']."'> Rating: <input type='text' name='reviewde1rating'size='1' maxlength='1' value='".$content['reviewde1rating']."'><br>
                    Review 2 DE | Name: <input type='text' name='reviewde2name'size='10' maxlength='10' value='"
                .$content['reviewde2name']."'> TopicID: <input type='text' name='reviewde2link'size='5' maxlength='10' value='".$content['reviewde2link']."'> Rating: <input type='text' name='reviewde2rating'size='1' maxlength='1' value='".$content['reviewde2rating']."'><br>
                    Review 3 DE | Name: <input type='text' name='reviewde3name'size='10' maxlength='10' value='"
                .$content['reviewde3name']."'> TopicID: <input type='text' name='reviewde3link'size='5' maxlength='10' value='".$content['reviewde3link']."'> Rating: <input type='text' name='reviewde3rating'size='1' maxlength='1' value='".$content['reviewde3rating']."'><br>
                    Review 1 EN | Name: <input type='text' name='reviewen1name'size='10' maxlength='10' value='"
                .$content['reviewen1name']."'> TopicID: <input type='text' name='reviewen1link'size='5' maxlength='10' value='".$content['reviewen1link']."'> Rating: <input type='text' name='reviewen1rating'size='1' maxlength='1' value='".$content['reviewen1rating']."'><br>
                    Review 2 EN | Name: <input type='text' name='reviewen2name'size='10' maxlength='10' value='"
                .$content['reviewen2name']."'> TopicID: <input type='text' name='reviewen2link'size='5' maxlength='10' value='".$content['reviewen2link']."'> Rating: <input type='text' name='reviewen2rating'size='1' maxlength='1' value='".$content['reviewen2rating']."'><br>
                    Review 3 EN | Name: <input type='text' name='reviewen3name'size='10' maxlength='10' value='"
                .$content['reviewen3name']."'> TopicID: <input type='text' name='reviewen3link'size='5' maxlength='10' value='".$content['reviewen3link']."'> Rating: <input type='text' name='reviewen3rating'size='1' maxlength='1' value='".$content['reviewen3rating']."'><br>
                    </td></tr><tr><td>
                    Alt. German-Source 1 | Name: <input type='text' name='alternativecapde1'size='26' maxlength='26' value='"
                .$content['alternativecapde1']."'> Link: <input type='text' name='alternativelinkde1'size='50' maxlength='255' value='".$content['alternativelinkde1']."'><br>
                    Alt. German-Source 2 | Name: <input type='text' name='alternativecapde2'size='26' maxlength='26' value='"
                .$content['alternativecapde2']."'> Link: <input type='text' name='alternativelinkde2'size='50' maxlength='255' value='".$content['alternativelinkde2']."'><br>
                    Alt. English-Source 1 | Name: <input type='text' name='alternativecapen1'size='26' maxlength='26' value='"
                .$content['alternativecapen1']."'> Link: <input type='text' name='alternativelinken1'size='50' maxlength='255' value='".$content['alternativelinken1']."'><br>
                    Alt. English-Source 2 | Name: <input type='text' name='alternativecapen2'size='26' maxlength='26' value='"
                .$content['alternativecapen2']."'> Link: <input type='text' name='alternativelinken2'size='50' maxlength='255' value='".$content['alternativelinken2']."'>
                    </td></tr><tr><td>
                    <input type='hidden' name='action' value='movies'>
                    <input type='hidden' name='edit'"
                ;
                    if  (
                $edit=="edit")
                    {
                    echo 
                "value='editready'><input type='hidden' name='objectID' value='".$object."'";
                    }
                    else
                    {
                    echo 
                "value='insert'";
                    }
                    echo 
                "
                    ><input type='submit' name='Submit' value='OK'>
                    </td></tr></table>
                    </form>
                    </center>
                    "

                Die Action wird also als hidden value mitübergeben. Ich nehme mal nicht an, dass das form action und meine variable action da durcheinanderkommen.

                Wenn ich als Ziel des Formulars index.php?action=movies eingebe, dann komme ich zwar auf die richtige Seite, aber dann tut sich da trotzdem nichts.

                Kommentar


                • #9
                  PHP-Code:
                  <form action='index.php?action=movies' method='post'
                  so würd ichs machen, schau mal mit
                  PHP-Code:
                  echo "<pre>";
                  var_dump$_POST );
                  echo 
                  "</pre>"
                  was in Post so drinnen is!!

                  EDIT: aber gleich am anfang in der index.php
                  PHP-Code:
                  if ( $humans >= ) {
                     
                  war ();

                  Kommentar


                  • #10
                    PHP-Code:
                    array(37) {
                      [
                    "name_de"]=>
                      
                    string(7"Titelde"
                      
                    ["name_en"]=>
                      
                    string(7"Titelen"
                      
                    ["genre_de"]=>
                      
                    string(5"Spiel"
                      
                    ["genre_en"]=>
                      
                    string(4"Game"
                      
                    ["releasedate"]=>
                      
                    string(4"2000"
                      
                    ["titledir"]=>
                      
                    string(11"Verzeichnis"
                      
                    ["amazonde"]=>
                      
                    string(1"1"
                      
                    ["amazoncouk"]=>
                      
                    string(1"1"
                      
                    ["reviewde1name"]=>
                      
                    string(6"Kordor"
                      
                    ["reviewde1link"]=>
                      
                    string(2"12"
                      
                    ["reviewde1rating"]=>
                      
                    string(1"1"
                      
                    ["reviewde2name"]=>
                      
                    string(0""
                      
                    ["reviewde2link"]=>
                      
                    string(0""
                      
                    ["reviewde2rating"]=>
                      
                    string(0""
                      
                    ["reviewde3name"]=>
                      
                    string(0""
                      
                    ["reviewde3link"]=>
                      
                    string(0""
                      
                    ["reviewde3rating"]=>
                      
                    string(0""
                      
                    ["reviewen1name"]=>
                      
                    string(0""
                      
                    ["reviewen1link"]=>
                      
                    string(0""
                      
                    ["reviewen1rating"]=>
                      
                    string(0""
                      
                    ["reviewen2name"]=>
                      
                    string(0""
                      
                    ["reviewen2link"]=>
                      
                    string(0""
                      
                    ["reviewen2rating"]=>
                      
                    string(0""
                      
                    ["reviewen3name"]=>
                      
                    string(0""
                      
                    ["reviewen3link"]=>
                      
                    string(0""
                      
                    ["reviewen3rating"]=>
                      
                    string(0""
                      
                    ["alternativecapde1"]=>
                      
                    string(23"Amazon.de (German Only)"
                      
                    ["alternativelinkde1"]=>
                      
                    string(123"http://www.amazon.de/gp/product/B0011FDUV4?ie=UTF8&tag=ndnw-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=B0011FDUV4"
                      
                    ["alternativecapde2"]=>
                      
                    string(0""
                      
                    ["alternativelinkde2"]=>
                      
                    string(0""
                      
                    ["alternativecapen1"]=>
                      
                    string(0""
                      
                    ["alternativelinken1"]=>
                      
                    string(0""
                      
                    ["alternativecapen2"]=>
                      
                    string(0""
                      
                    ["alternativelinken2"]=>
                      
                    string(0""
                      
                    ["action"]=>
                      
                    string(6"movies"
                      
                    ["edit"]=>
                      
                    string(6"insert"
                      
                    ["Submit"]=>
                      
                    string(2"OK"

                    Das scheint soweit zu funktionieren (und selbst die URL ist da korrekt drin.

                    Jetzt frag ich mich aber, wieso ich das Ding nicht bei "post" ausgelesen bekomme.

                    Im Fall von action=insert ist der code

                    PHP-Code:
                    if ($edit== "insert")
                        {
                        
                    $name_de $_GET["name_de"];
                        
                    $name_en $_GET["name_en"];
                        
                    $genre_de $_GET["genre_de"];
                        
                    $genre_en $_GET["genre_en"];
                        
                    $releasedate $_GET["releasedate"]; 
                        
                    $amazonde $_GET["amazonde"];
                        
                    $amazoncouk $_GET["amazoncouk"];
                        
                    $amazonus $_GET["amazonus"];
                        
                    $titledir $_GET["titledir"];

                        
                    $reviewde1name $_GET["reviewde1name"];
                        
                    $reviewde1link $_GET["reviewde1link"];
                        
                    $reviewde1rating $_GET["reviewde1rating"];

                        
                    $reviewde2name $_GET["reviewde2name"];
                        
                    $reviewde2link $_GET["reviewde2link"];
                        
                    $reviewde2rating $_GET["reviewde2rating"];

                        
                    $reviewde3name $_GET["reviewde3name"];
                        
                    $reviewde3link $_GET["reviewde3link"];
                        
                    $reviewde3rating $_GET["reviewde3rating"];    

                        
                    $reviewen1name $_GET["reviewen1name"];
                        
                    $reviewen1link $_GET["reviewen1link"];
                        
                    $reviewen1rating $_GET["reviewen1rating"];

                        
                    $reviewen2name $_GET["reviewen2name"];
                        
                    $reviewen2link $_GET["reviewen2link"];
                        
                    $reviewen2rating $_GET["reviewen2rating"];
                        
                        
                    $reviewen3name $_GET["reviewen3name"];
                        
                    $reviewen3link $_GET["reviewen3link"];
                        
                    $reviewen3rating $_GET["reviewen3rating"];

                        
                        
                    $alternativecapen1 $_GET["alternativecapen1"];
                        
                    $alternativelinken1$_GET["alternativelinken1"];

                        
                    $alternativecapen2 $_GET["alternativecapen2"];
                        
                    $alternativelinken2$_GET["alternativelinken2"];

                        
                    $alternativecapde1 $_GET["alternativecapde1"];
                        
                    $alternativelinkde1$_GET["alternativelinkde1"];

                        
                    $alternativecapde2 $_GET["alternativecapde2"];
                        
                    $alternativelinkde2$_GET["alternativelinkde2"];

                        
                    $command="INSERT INTO movies (
                        name_de,name_en,
                        genre_de,genre_en,
                        releasedate,
                        titledir,
                        amazon_de,amazon_couk,amazon_com,
                        reviewde1name,reviewde1link,reviewde1rating,
                        reviewde2name,reviewde2link,reviewde2rating,
                        reviewde3name,reviewde3link,reviewde3rating,
                        reviewen1name,reviewen1link,reviewen1rating,
                        reviewen2name,reviewen2link,reviewen2rating,
                        reviewen3name,reviewen3link,reviewen3rating,
                        alternativecapen1,alternativelinken1,
                        alternativecapen2,alternativelinken2,
                        alternativecapde1,alternativelinkde1,
                        alternativecapde2,alternativelinkde2
                        
                        ) VALUES (
                        '
                    $name_de','$name_en',
                        '
                    $genre_de','$genre_en',
                        '
                    $releasedate',
                        '
                    $titledir',
                        '
                    $amazonde','$amazoncouk','$amazonus',
                        '
                    $reviewde1name','$reviewde1link','$reviewde1rating',
                        '
                    $reviewde2name','$reviewde2link','$reviewde2rating',
                        '
                    $reviewde3name','$reviewde3link','$reviewde3rating',
                        '
                    $reviewen1name','$reviewen1link','$reviewen1rating',
                        '
                    $reviewen2name','$reviewen2link','$reviewen2rating',
                        '
                    $reviewen3name','$reviewen3link','$reviewen3rating',
                        '
                    $alternativecapen1','$alternativelinken1',
                        '
                    $alternativecapen2','$alternativelinken2',
                        '
                    $alternativecapde1','$alternativelinkde1',
                        '
                    $alternativecapde2','$alternativelinkde2'


                        )"
                    ;
                        
                    $bool=mysql_query($command);
                        if(
                    $bool==1) echo "<center><b>INSERTED</b></center>";
                        if(
                    $bool<>1) echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Error while inserting')</SCRIPT>";    
                        
                        } 

                    Kommentar


                    • #11
                      Jetzt frag ich mich aber, wieso ich das Ding nicht bei "post" ausgelesen bekomme.
                      wie wärs mit
                      PHP-Code:
                      $alternativelinkde1 $_POST["alternativelinkde1"]; 

                      EDIT: Und dein Javascript.alert würde mich stören !!!
                      ich würd einfach nur eine ausgabe machen, und kein Dialogfenster!!!
                      PHP-Code:
                      if ( $humans >= ) {
                         
                      war ();

                      Kommentar


                      • #12
                        Okaaay...das war wohl etwas ungünstig zusammen gebastelt. ^^

                        hab nun alles relevante in POST umgeschrieben und siehe da, es funktioniert.

                        Sogar mit der URL.

                        Das mit dem javascript stammt lediglich so aus meinem Lehrbuch (vorher war da auch beim inserten eines). Im Prinzip sollte der Fehler aber ja nie auftreten (es sei denn ich habe was im code zerstört), von daher stört es mich nicht so wirklich.

                        Vielen Dank!

                        Kommentar


                        • #13
                          na dann nimm das komplett raus, die überprüfung ...

                          dann is gut, wenns funktioniert
                          PHP-Code:
                          if ( $humans >= ) {
                             
                          war ();

                          Kommentar

                          Lädt...
                          X