Gästebuch...da klappt nichts!

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

  • #31
    Also, es gibt 2 Arten von Anführungszeichen " und '.
    In den doppelten sucht der Parser nach Variablen um diese zu ersetzen, deshalb sollte man wenn möglich sofort die Variablen außerhalb von Anführungszeichen notieren, damit der Parser nichts ersetzen muss und damit er gar nicht erst suche muss, notiert man den String am Besten gleich in ', weil die einfach so genutzt werden wie sie da stehen.
    D.h.
    PHP-Code:
    $message "$text"
    würde $message = Inhalt von $text
    PHP-Code:
    $message '$text'
    $message = String $text, weil keine Ersetzung in einfachen Anführungszeichen
    PHP-Code:
    $message $text
    wäre perfekt.

    So, um das mit dem rausnehmen von Variablen verständlich zu machen nochmal ein Beispiel:
    PHP-Code:
    $text 'Dies ist ein Test';
    // gewollte Ausgabe der Variablen $text
    echo $text;
     
    // geht auch, ist aber schlecht
     
    echo "$text";
     
    //geht nicht, weil keine Durchsuchung statt finden
     
    echo '$text'//wenn du aber $text ausgeben willst, ist das richtig ^^"

    //Einbinden der Variablen $text in einen String:
    //schlecht:
    echo "$text für Anführungszeichen"//Ausgabe = Dies ist ein Test für Anführungszeichen
    echo '$text für Anführungszeichen'// Ausgabe = $text für Anführungszeichen
    // richtige Lösung für die Ausgabe wäre:
    echo $text 'für Anführungszeichen'// der Punkt ist ein Verbindungsoperator, zum Verbinden von Strings/Variablen usw. 
    Ich hoffe, es war jetzt verständlich?


    [edit]
    Faktum = Variablen in Strings ~ schlecht
    Nutzung der ' fast immer angebracht (behalt im Hinterkopf, dass da auch keine \n oder \r ersetzt werden, bis du es brauchst!)
    Nutzung der " eigentlich sinnlos ^^

    d.h. Variablen niemals in " oder ' schreiben!!!...das ist das Beste
    Zuletzt geändert von ghostgambler; 13.12.2004, 15:32.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #32
      Original geschrieben von ghostgambler

      Nutzung der " eigentlich sinnlos ^^
      OffTopic:
      für alle, die sich über diese Aussage aufregen: bitte keine Diskussion drüber anzetteln. Alles wurde schon diskutiert. Also jeder für sich allein, PHP für uns alle. Danke.

      Kommentar


      • #33
        Okay das habe ich mir schon denken können und habe darum auch das schon gestern irgendwann mal alles ausprobiert also mit " mit ' und ohne...

        Trotzdem Speichert er den Inhalt von $text nicht.

        Kommentar


        • #34
          Original geschrieben von Aufraeumkomando
          Okay das habe ich mir schon denken können und habe darum auch das schon gestern irgendwann mal alles ausprobiert also mit " mit ' und ohne...

          Trotzdem Speichert er den Inhalt von $text nicht.
          da kommst du dann zum nächsten Punkt->Register_Globas/Superglobale-Variablen usw. Links dazu s.o.

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #35
            ist etwas komplexer als das andere...


            Vorab ne frage: Müssen denn die variablen registriert werden ?

            Kommentar


            • #36
              Re: Gästebuch...da klappt nichts!

              btw. (ich hab mir mal den Code angeguckt und noch nen Fehler gefunden ^^):
              PHP-Code:
              \\\\\\\\\\\\\\\ Und die  save.php \\\\\\\\\\\\\\

              <?php

              $message 
              '$text';
              $fp fopen ("gb.txt","w");
              fwrite($fp,$message,100000);
              fclose($fp);

              {
               echo 
              "Erfolgreich eingetragen" ;
              }

              ?>
              Der Block da unten, wo nur das echo drin ist, wird immer ausgeführ...das weißt du aber, oder?
              Es sollte eher lauten:
              PHP-Code:
              <?php
              $message 
              $text//hatten wir ja geklärt, warum hier keine Anführungszeichen!
              if (!$fp fopen ('gb.txt''w')) //auch bei der Parameter-Übergabe einfache Anführungszeichen nutzen!
              {
               echo 
              'Fehler beim Öffnen der Datei'//Ja, einfache Anführungszeichen ^^
               
              die();
              }
              if (!
              fwrite($fp$message100000))
              {
               echo 
              'Fehler beim Schreiben';
               
              fclose($fp);
               die();
              }
              if (!
              fclose($fp))
              {
               echo 
              'Fehler beim Schließen der Datei';
               die();
              }

              echo 
              "Erfolgreich eingetragen" ;
              ?>
              Sobald eine der Funktionen ein False zurückgibt (man kann statt
              PHP-Code:
              if (!fclose($fp)) 
              auch schreiben
              PHP-Code:
              if (fclose($fp)==false
              ), dann wird eine entsprechende Fehlermeldung ausgegeben und die weitere Nutzung des Skriptes abgebrochen. (Beim Schreiben der Datei wird einfach provisorisch nochmal versucht die Datei zu schließen, aber der Rest ist auch nur provisorisch, da fält das dann nicht auf XD
              Der Fehler ist immernoch drin mit den register_Globals/Superglobalen-Variablen, den musst du schon selber ausmerzen (was nicht weiter kompliziert ist ^.^, musst nur nachlesen, so wie alle anderen vor dir auch!)


              @question coming up while writing:
              Vorab ne frage: Müssen denn die variablen registriert werden ?
              Nö, die werden automatisch registriert. Praktisch, was

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #37
                Original geschrieben von Aufraeumkomando
                ist etwas komplexer als das andere...
                Nö, das mit den Superglobalen ist IMHO einfacher....du weißt ja noch nicht alles vom anderen Thema (*auf die \r und \n's deutet die du im Hinterkopf behalten solltest* )

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #38
                  Ej weisste was:


                  Ich bin noch nen absoluter Noob im php programmieren.

                  Und imme rhier reinzuschreiben nimmt haufen Ziet in anspruch, wäre es nciht besser das über ICQ zu klären ?

                  Kommentar


                  • #39
                    hmm,

                    imho wärs besser, sich erstmal grundlagen anzueignen, bevor man ständig dumme fragen stellt ...
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #40
                      Grundlagen was genau soll ich darunter verstehen??

                      Was gehört dazu ?

                      Kommentar


                      • #41
                        Original geschrieben von Aufraeumkomando
                        Ej weisste was:


                        Ich bin noch nen absoluter Noob im php programmieren.

                        Und imme rhier reinzuschreiben nimmt haufen Ziet in anspruch, wäre es nciht besser das über ICQ zu klären ?
                        1. Hab ich keine Flatrate und ich werd bestimmt nicht meine (sowieso schon hohe Telefonrechnung noch weiter) in die Höhe treiben ^^"
                        und 2. ist hier ein schönes PHP-Highlighting, was wesentlich mehr hilft als das schnelle Austauschen von kurzen Sätzen.

                        btw. kann es eigentlich keine Fragen mehr geben....du hast dir die Seiten durchgelesen zum Thema Superglobale Variablen? Dann setze sie in das Skript ein und das Skript ist fertig. Damit wäre dann doch auch das Thema erledigt.
                        Und für weitere Fragen, bin ich jederzeit offen, aber nicht 24 Stunden am Tag, immer wenn du mich brauchst.
                        Eigentlich müsste ich jetzt grade hier sitzen und ne Menge Hausaufgaben machen, dazu hab ich zwar keinen Bock, aber das war nur eine Anspielung darauf, dass ich auch anderes zutun habe als mich mit sowas "rumzuärgern".
                        Was meinst du woher ich das alles kann? Ich hab nur seeehr wenige Fragen in Foren gestellt (10 vielleicht, 7 kleine 3 größere) und den Rest hab ich per Google, Tutorials und der PHP-Manual selbst gelernt. Man muss nur gucken, wie man sich zu helfen weiß, natürlich wäre mir jemand, der mir immer das Richtige gesagt hätte wenn ich nicht weiter wusste mit Sicherheit sehr nützlich gewesen, dann hätte es vielleicht nicht ein 3/4 Jahr gedauert um soweit zu kommen, sondern ich wäre noch nicht soweit, weil ich absolut keinen Schimmer hätte, wie ich das Zeug von meinem kleinen persönlichen Mann im Ohr auf andere Situationen übertragen könnte.

                        Es geht halt alles über persönliche Erfahrungen und die Arbeit die du da rein steckst!


                        btw. würde ich in diesem Fall für den Text das Array $_POST verwenden, und nicht $_REQUEST. Immerhin kann in $_REQUEST später viel mehr drin sein, und du weißt ja sicher, dass der Text aus einem Post-Formular kommt.

                        Und als kleinen Zusatz (weil ich es grade vergessen hatte):
                        PHP-Code:
                        if (!fclose($fp))
                        // das Ausrufezeichen negiert den Ausdruck der dahinter steht
                        if (!isset($variable))
                        {
                         
                        Anweisung();
                        }
                        // wäre dann, "Wenn die Variable NICHT gesetzt ist, dann tue Anweisung();", einfach, oder?
                        // Ich wollt's nur nochmal schriftlich mitreichen XD 

                        btw. im Anhang findest du die Lösung.
                        Jenachdem, wann du sie anguckst und OB du sie anguckst, kannst du für dich persönlich herausfinden, ob es sich überhaupt lohnt weiter zu lernen....

                        Angucken ohne selbst gefunden zu haben: Aufhören zu lernen hat eh keinen Sinn
                        Angucken ohne Lösung: nochmal alles lesen, was ich oben gepostet hab und dann weitergucken
                        Angucken mit Lösung: Wenn du willst
                        nicht angucken mit Lösung: Schau es dir trotzdem an, vielleicht hab ich was genutzt, was du noch nicht kanntest ^^


                        Grundlagen was genau soll ich darunter verstehen??

                        Was gehört dazu ?
                        z.B. Superglobale Variablen, ein Haufen Funktionen, Unterschied zwischen " und ' usw. je nach Bedarf unterschiedlich. Kontrollstrukturen (if, switch) Schleife (While, For, Foreach), und so weiter und sofort...
                        Angehängte Dateien

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #42
                          Jo Danke

                          es funktioniert, also ich habe das mit den globals davor vollkommen falsch gesetzt. Und das mit dem echo und if und so hab ich auch halbwegs drauf aber werde mir das alles noch gnauer angucken .

                          Aber Danke ich versuch ab sofort nicht mehr ganz soviel Fragen Stellen damit deine Wertvolle Zeit nicht so Sinnlos verglodet wird.


                          THX BYE

                          Kommentar


                          • #43
                            Original geschrieben von Aufraeumkomando
                            Aber Danke ich versuch ab sofort nicht mehr ganz soviel Fragen Stellen damit deine Wertvolle Zeit nicht so Sinnlos verglodet wird.
                            Du kannst Fragen stellen, aber keine die du dir auf doch relativ einfache Art und Weise selbst aneignen kannst. Außerdem lernst du mehr, wenn du selbst rausfindest, warum es so ist und nicht anders.
                            Da bringt vorsagen im Endeffekt nichts.

                            Und noch eines: Solche Aufrufe wie "Lass uns das über ICQ regeln" sind nicht so gerne gesehen, weil dir dann nur einer helfen kann. Hier im Forum kann sich jeder mit dem Problem beschäftigen, außerdem wird es gespeichert, damit der nächste Verwirrte...äh, Verirrte *räusper* nicht wieder die gesamten Fragen neu stellen muss


                            btw. ist nicht schlimm, wenn du nicht alles von dem Code verstehst, hauptsache du hast die Antworten auf deine Fragen und kannst das in anderen Skripten einsetzen. Sobald du besser wirst, guckst du irgendwann auf das Skript und denkst dir nur: "Das kann ich aber besser"

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X