Ankündigung

Einklappen
Keine Ankündigung bisher.

Leerzeichen in Variable

Einklappen

Neue Werbung 2019

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

  • Leerzeichen in Variable

    Hi,

    kann es zu irgendwelchen Problemen führen, wenn ich wie folgt vorgehe?
    (Beispielhaft beschrieben)

    Die Variable wird definiert
    PHP-Code:
    <?php
    $Variable 
    "Test Variable mit Leerzeichen";
    ?>
    an einen Link angehängt
    PHP-Code:
    [url="http://testurl.tld/verzeichniss/script.php?Variable=<?php echo $Variable?>"]Link[/url]
    und bildet dann einen Teil des Dateinamens
    PHP-Code:
    <?php
    include("verzeichniss/$Variable.php");
    ?>

    Bei meiner Frage geht es mir sowohl um Sicherheit als auch darum, ob die Leerzeichen ein Problem für PHP oder das Unix Dateisystem oder irgend einen Browser darstellen.

    Viele Grüße

    Andreas

  • #2
    Dateinamen mit leerzeichen?

    Versuch es doch mal mit Sonderzeichen, wie es doch so gern mac user machen, kommt genauso gut an.

    und zum thema sicherheit.

    Lass den schmarn , eine variabel als dateinamen zu benutzen.
    http://www.inside-phpfriend.de/tutor...rarbeiten.html

    Kommentar


    • #3
      Leerzeichen im Dateinamen sind bööse.
      http://de.php.net/rawurlencode wird dir helfen..

      Kommentar


      • #4
        Zitat von Clan
        und zum thema sicherheit.

        Lass den schmarn , eine variabel als dateinamen zu benutzen.
        http://www.inside-phpfriend.de/tutor...rarbeiten.html
        aber das Problem umgehe ich doch dadurch:
        include("verzeichniss/$Variable.php");

        So kann ein fremdes Dokument nur aufgerufen werden, wenn es auf dem gleichen Server liegt.

        Zitat von Chr!s
        Leerzeichen im Dateinamen sind bööse.
        http://de.php.net/rawurlencode wird dir helfen..

        Das man es nicht machen soll und in der Regel auch nicht macht, ist schon klar. Aber es funktioniert komischerweise selbst mit mehereren aufeinander folgenden Leerzeichen im Namen. Weder PHP noch der Server noch irgendeiner der getesteten Browser meckert irgendetwas an.


        Davon abgesehen, habt Ihr evtl noch nen Denkansatz, wie ich mein eigentliches Problem besser lösen kann.
        Ich habe von einem Shop eben diese eine Variable, die blöderweise bis zu drei aufeinander folgende Leerzeichen beinhaltet.
        Jetzt sollen die Artikel mit einem externen System verlinkt werden.
        Ich hab wie gesagt nur diese Variable und kann nur bedingt PHP-Code in den Shop einfügen, da der Link über eine Funktion definiert wird (oscommerce)
        Ideen?

        Schon mal vielen Dank...

        Viele Grüße

        Andreas

        Kommentar


        • #5
          wenn es zuviele artikel sind ,
          würde ich die array abfrage durch eine db abfrage ersetzen.


          PHP-Code:
          <?
          $get= "var mit leerzeichen";
          $inludes = array( "var mit leerzeichen" => 'test.php', 
                            "var mit leerzeichen1"        => 'test2.php'
          ); 

          if (array_key_exists($get, $inludes )) {
          //artikel einbinden
          echo $inludes[ $get ];

          }else{
          echo "Bööööse";
          exit;
          }
          ?>

          Kommentar


          • #6
            Leerzeichen im Dateinamen sind bööse.
            Nönö, wenn die Variable per GET übertragen werden soll, einfach die Leerzeichen mit einen + Zeichen ersetzen.

            Kommentar


            • #7
              Zitat von Clan
              wenn es zuviele artikel sind ,
              würde ich die array abfrage durch eine db abfrage ersetzen.


              PHP-Code:
              <?
              $get= "var mit leerzeichen";
              $inludes = array( "var mit leerzeichen" => 'test.php', 
                                "var mit leerzeichen1"        => 'test2.php'
              ); 

              if (array_key_exists($get, $inludes )) {
              //artikel einbinden
              echo $inludes[ $get ];

              }else{
              echo "Bööööse";
              exit;
              }
              ?>


              funktioniert super, danke!

              jetzt hab ich nur noch eine Frage.
              Der Link in meinem Shop sieht wie folgt aus
              PHP-Code:
              <?php

              $lc_text 
              '[url="javascript:Popup(\'' tep_href_link(FILENAME_CONTRACT_INFO'Variable=' $listing['manufacturers_name']) . '\')"]' $listing['products_name'] . '*[/url]';
              ?>
              was folgendes ergibt...
              javascript:Popup('http://irgendeinedommain.tld/verzeichniss/script.php?Variable=Variable%20mit%20mehreren%20%2 0%20Leerzeichen')

              Muss ich hier noch etwas ändern? Die Leerzeichen werden ja schon als %20 angegeben. Also ist soweit alles i.O. oder?

              Viele Grüße

              Andreas

              Kommentar


              • #8
                PHP-Code:
                <?
                $get="Variable%20mit%20mehreren%20%20%20Leerzeichen";

                $get      = urldecode( $get ); //<- Wichtig
                $inludes     = array( "Variable mit mehreren   Leerzeichen" => 'test.php',  
                                  "var mit leerzeichen1"        => 'test2.php' 
                );

                if (array_key_exists($get, $inludes )) { 
                    echo $inludes[ $get ];  
                }else{ 
                    echo "Bööööse"; 
                    exit; 


                //Ausgabe : test.php
                ?>
                Gruß
                C. M.

                Kommentar


                • #9
                  urlencode und rawurlencode gehen auch, aber der macht sowieso beim übergeben des links aus leerzeichen %20 und beim weiterbenutzen wieder leerzeichen, was das mit den dateinamen angeht wurde schon von Clan gesagt
                  keine

                  Kommentar

                  Lädt...
                  X