Ankündigung

Einklappen
Keine Ankündigung bisher.

eine Variable für alle Funktionen definieren

Einklappen

Neue Werbung 2019

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

  • eine Variable für alle Funktionen definieren

    Guten Morgen,

    ich habe einen ziemlich verschachtelten Code mit 4-5 Funktionen, die sich im Wechsel immer gegenseitig aufrufen.

    Jetzt ist es so, dass ich in eine der Funktionen einen Wert überprüfen will, der _immer gleich_ ist. Jetzt wäre es doch dumm, wenn ich den Wert von Funktion zu Funktion immer weitergebe. Ich dachte da eher an eine globale Variable, die ich am Anfang der Datei festlege und die dann in allen Funktionen vorhanden ist. Aber wie mach ich sowas?

    mfg Wing

  • #2
    Session, Cookie, global in den Funktionen definieren.

    Kommentar


    • #3
      hm ja stimmt, Session würde gehen.

      Danke dir

      mfg

      Kommentar


      • #4
        ich hab da noch ein Problem..

        wenn ich z.B. "C:\Kamera\Bilder+Videos" über einen AJAX-Link zum Server schicken will

        Code:
        function ajaxlink ( link ) {
        	linkrel = encodeURI(link);
        	document.getElementById("antwort").innerHTML = sendReq("kamerainhalt.php","dir=" + linkrel);
        }

        PHP-Code:
        <?php
            
        if (isset($_GET['dir']) AND $_GET['dir'] != "") {
                
        $dir rawurldecode($_GET['dir']);
                echo 
        $dir;
            }
        ?>
        wird das + gelöscht... Wie kann ich das mit übergeben?

        Kommentar


        • #5
          Die Löschung des "+" hängt damit zusammen, dass "+" im URL-Encoding (raw) als Leerzeichen decodiert wirde.
          Viele Grüße,
          Dr.E.

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          1. Think about software design [B]before[/B] you start to write code!
          2. Discuss and review it together with [B]experts[/B]!
          3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
          4. Write [I][B]clean and reusable[/B][/I] software only!
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Kommentar


          • #6
            hmm das ist schlecht.. wie kann ich das denn umgehen? Für einen Ordnerpfad braucht ich ja zwingend Leerzeichen und in diesem Fall auch das +

            Kommentar


            • #7
              Re: eine Variable für alle Funktionen definieren

              Zitat von Wing
              ich habe einen ziemlich verschachtelten Code mit 4-5 Funktionen, die sich im Wechsel immer gegenseitig aufrufen.

              Jetzt ist es so, dass ich in eine der Funktionen einen Wert überprüfen will, der _immer gleich_ ist. Jetzt wäre es doch dumm, wenn ich den Wert von Funktion zu Funktion immer weitergebe. Ich dachte da eher an eine globale Variable, die ich am Anfang der Datei festlege und die dann in allen Funktionen vorhanden ist. Aber wie mach ich sowas?
              Das schreit nach einer Klasse mit 4-5 Methoden.

              Kommentar


              • #8
                Hallo Wing,

                Für einen Ordnerpfad braucht ich ja zwingend Leerzeichen und in diesem Fall auch das +
                Das halte ich für einen Design-Fehler, den du schnellstens bereinigen solltest.
                Viele Grüße,
                Dr.E.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                1. Think about software design [B]before[/B] you start to write code!
                2. Discuss and review it together with [B]experts[/B]!
                3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                4. Write [I][B]clean and reusable[/B][/I] software only!
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                Kommentar


                • #9
                  @dr.e.

                  Hm also ratest du mir zu anderen Ordnernamen?

                  @Zergling

                  Ja hab ich mir auch schon überlegt. Allerdings bin ich mit Klassen nicht so geübt. Wie wäre denn dann der Aufbau der Klasse?

                  Eine Übergeordnete Klasse (ähnlich wie eine Datenbank) oder für jeden Ordner eine eigene Klasse und die Dateien dann als Objekte? Aber dann hat man ganz schön viele Klassen, wenn man viele Ordner und Unterordner hat...

                  Ich kann mir das gerade nicht ganz vorstellen.. vielleicht hat ja jemand Ahnung mit dem Analysieren von Dateisystemen und weiß was für ein Layout man machen könnte.

                  mfg

                  Kommentar


                  • #10
                    Zitat von Wing
                    Wie wäre denn dann der Aufbau der Klasse?
                    http://tut.php-q.net/klassen.html
                    Ganz kurz:
                    PHP-Code:
                    <?php
                    class Klasse
                    {
                      private 
                    $wert;
                      public function 
                    setzeWert($wert)
                      {
                        
                    $this->wert $wert;
                      }
                      public function 
                    holeWert()
                      {
                        return 
                    $this->wert;
                      }
                    }
                    //
                    $klasse = new Klasse();
                    $klasse->setzeWert(10);
                    echo 
                    $klasse->holeWert();
                    $klasse->setzeWert(8);
                    echo 
                    "
                    "
                    $klasse->holeWert();
                    ?>

                    Eine Übergeordnete Klasse (ähnlich wie eine Datenbank) oder für jeden Ordner eine eigene Klasse und die Dateien dann als Objekte? Aber dann hat man ganz schön viele Klassen, wenn man viele Ordner und Unterordner hat...
                    Nein das ist nicht nötig, ich dachte eher um deinen Code und diese "globale" Variable zu vereinen.

                    Kommentar


                    • #11
                      PHP-Code:
                      class Datenbank {
                          var 
                      $methode;

                          function 
                      getMethode() {
                              
                      $handle fopen("tmp_methode.txt","r");

                              
                      $methode fgets($handle);

                              
                      fclose($handle);

                              return 
                      trim($methode);
                          }

                          
                      // alle anderen funktionen
                      }

                          if (isset(
                      $_GET['dir']) AND $_GET['dir'] != "") {

                              
                      $DB =& new Datenbank();
                              
                      $DB->methode $DB->getMethode();

                              
                      // ... einleiten der funktionen
                          
                      }
                      ?> 
                      Ich hab das mit der Variable so gelöst.. also einfach die Funktionen in eine Klasse verschoben.. Jetzt wird eine übergeordnete Instanz $DB erstellt.. ansonsten wurde nichts geändert.

                      Kommentar


                      • #12
                        Zitat von dr.e.
                        Hallo Wing,

                        Für einen Ordnerpfad braucht ich ja zwingend Leerzeichen und in diesem Fall auch das +
                        Das halte ich für einen Design-Fehler, den du schnellstens bereinigen solltest.
                        Wo siehst Du denn den Designfehler?
                        Darin, dass Ordnernamen sich nicht an Regeln für URLs halten? Man kann einen Websitebesucher ja wohl kaum dazu verdonnern, seine Ornder umzubenennen. Vor allem, weil ja die Standard-Ordner schon Leerzeichen enthalten. So wie "Dokumente und Einstellungen\...\Eigene Dateien".

                        Oder eher darin, dass hier anscheinend ein lokaler Ordnername an den Server übertragen wird?
                        **********************************
                        Nein, ich bin nicht die Signatur.
                        Ich putze hier nur.
                        **********************************

                        Kommentar


                        • #13
                          Zitat von Der_Gerhard
                          Oder eher darin, dass hier anscheinend ein lokaler Ordnername an den Server übertragen wird?
                          Der Server und der Client befinden sich in dem Fall auf demselben Computer.


                          edit:

                          Das mit dem + hab ich nun hinbekommen. Ich ersetze einfach das Zeichen durch "///" vor encodeURI und später wieder zurück.

                          Kommentar


                          • #14
                            Hallo Der_Gerhard, hallo Wing,

                            ich sehe es als Problem an, dem Benutzer bei den Eingaben einer Datei zu viele Freiheiten bei der Benennung zu lassen. Idealerweise sollten Ordnernamen vom "Programm" vergeben werden und Dateinamen um problematische Sonderzeichen erleichtert werden.
                            Viele Grüße,
                            Dr.E.

                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            1. Think about software design [B]before[/B] you start to write code!
                            2. Discuss and review it together with [B]experts[/B]!
                            3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                            4. Write [I][B]clean and reusable[/B][/I] software only!
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                            Kommentar


                            • #15
                              Der Ordner, den ich genannt habe, wird ja gerade vom "Programm" vergeben.
                              Sehr viele Programme schreiben ihre Daten in ein Unterverzeichnis von "Eigene Dateien". Um die Leerzeichen kommst Du also nicht herum.

                              Und welches Programm rechnet schon damit, dass die damit erzeugten Dateien dann per Browser übertragen werden sollen?
                              **********************************
                              Nein, ich bin nicht die Signatur.
                              Ich putze hier nur.
                              **********************************

                              Kommentar

                              Lädt...
                              X