Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Notizzettel

  1. #1
    Thonixx
    Gast

    Standard Notizzettel

    Ich hab mal ne Frage. Ich möchte einen Online Notizzettel mithilfe von PHP erstellen.

    Aber irgendwie krieg ich was nicht auf die Reihe.

    Jetzt zum Problem:

    Mit !isset sage ich ja, dass wenn Variable soundso leer ist ein Formular kommt. Das wäre ein Textfeld. Dort schreibe ich meine Notizen. Jetzt will ichs abschicken. Dann ist die Variable soundso ja nicht mehr leer, deshalb solls jetzt speichern.

    Mein Problem ist aber, dass ich wohl die Notizen am Anfang auslesen kann und anzeigen kann. Aber wenn ich auf speichern klicke, dann löschts mir den vorherigen Text nicht. Es geht nicht mehr.
    Ich hab natürlich einiges ausprobiert, aber schliesslich geht nichts mehr.

    Hier mein Code: (HIER ZUR DEMONSTRATION)
    Code:
    <?php
    
    $nn = $_GET&#91;'new_notice'&#93;;
    
    $file = fopen&#40;"notizen.txt", "r+"&#41;;
    
    $notiz = fgets&#40;$file, 100000&#41;;
    
    if&#40;!isset&#40;$nn&#41;&#41; &#123; echo '<form action="notiz.php" method="get"><textarea style="height&#58; 420px; width&#58; 500px;" name="new_notice">'.$notiz.'</textarea>
    
    <input type="submit" value="Speichern..."></form>';&#125;
    else&#123; if&#40;$notiz != ""&#41; &#123;$notiz = ""; fwrite&#40;$file, $nn&#41;; fclose&#40;$file&#41;; echo 'GESPEICHERT
    
    Wieder zur&uuml;ck!';&#125;;&#125;
    
    ?>
    Wer hätte mir ne Lösung die geht?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Du begibst dich gleich auf mehreren Schlitten aufs Glatteis.

    Zunächst einmal solltes du Method POST verwenden, da sonst jeder, der die URL kennt etwas schreiben könnte und jegliche Sicherheitsabfragen des Systgems umgeht.

    Des weiteren solltest du für das Auslesen und für das Schreibe getrennte Methoden verwenden, also mit unterschiedlichen rechten.

    Mit isset überprüfst du nur , ob die Variable gesetzt ist, so wird selbst wenn der Inhalt "leer" ist true zurückgegeben, du meinst wohl eher empty() - überprüft ob die Variable mit Content gefüllt ist.

    Zur Not immer echo aller Variablen.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  3. #3
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard

    also ich kenn mich mit php zwar nicht aus, aber is ja in anderen programmiersprachen au net anners.... (außer vom syntax)

    also je nach wunsch ob du ne neue message auf den zettel setzen magst oder die nachricht (wie bei foren oder gästebüchern unten dranhängen willst)
    kannste doch dann auch die methode entsprechend schreiben...

    einmal checkste ob der wert für deinen notizzettel gesetzt is, also ob was drin steht (kann man auch mit ner boolean-flag machen) und wenn ja löschen, wenn nein einfach so reinschreiben..

    zum anhängen:
    in java wäre es nen Stringbuffer.append() um was dranzuhängen...

    also so viel zur theorie^^
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  4. #4
    Thonixx
    Gast

    Standard

    Also ich möchts so:

    Ich rufe die Seite auf. Dann möchte in einem Textarea die Notiz anzeigen, die ich in einer Datei (notiz.txt) gespeichert habe. Ist die Datei leer, wird auch nichts angezeigt.
    Jetzt gebe ich was ein. Nach dem Klick auf "Speichern..." wird in die Datei notiz.txt das geschrieben, was ich im Textarea geschrieben habe. Wenn ich die Seite nochmals aufrufe, wird jetzt das eingegebene angezeigt. Das heisst es wird im Textarea mein vorherig geschriebener Text angezeigt. Wenn ich jetzt zum Beispiel ein Wort daraus lösche und etwas hinzuschreibe und wieder auf Speichern geklickt habe und dann nochmal die Seite aufrufe, dann soll jetzt das neue Eingegebene angezeigt werden.

    Und zu POST/GET:
    Der Server kann nur GET lesen. Denn die POST (register_globals) Fuktion ist deaktiviert. Und dass mans nicht lesen kann, hab ichs in einem Frame versteckt. Ich weiss aber, dass mans umgehen kann. Aber das ist mir egal.

  5. #5
    Bandit
    Gast

    Standard

    Hallo,

    Denn die POST (register_globals) Fuktion ist deaktiviert.
    Das kann nicht sein, da vermute ich einen fehler in deinem script.
    Code:
    <?php 
    
      $nn = isset&#40;$_POST&#91;'new_notice'&#93;&#41; ?  $_POST&#91;'new_notice'&#93; &#58; "";
      
      if &#40;file_exists&#40;"notizen.txt"&#41;&#41;
      &#123;
         $file = fopen&#40;"notizen.txt", "r+"&#41;; 
    
         $notiz = fgets&#40;$file, 100000&#41;; 
    
         fclose&#40;$file&#41;;
      &#125;
      else
        $notiz = "";
      
      if&#40;$nn != ""&#41; 
      &#123; 
        echo '<form action="notiz.php" method="get">
              <textarea style="height&#58; 420px; width&#58; 500px;" name="new_notice">'
              . $notiz .
              '</textarea>
              
    
    
              <input type="submit" value="Speichern...">
              </form>';
      &#125; 
      else
      &#123;    
           $file = fopen&#40;"notizen.txt", "w"&#41;;
           fwrite&#40;$file, $nn&#41;; 
           fclose&#40;$file&#41;;
           
           echo 'GESPEICHERT
    
    
           Wieder zur&uuml;ck!';
      &#125;
    ?>
    Gruß
    bandit

  6. #6
    Thonixx
    Gast

    Standard

    Nöööö: http://firefox.bplaced.net/ds/notiz.php
    Geht nicht. Aber hatte ich auch erwartet.

    Und wegen POST: Stimmt nicht. Ist deaktiviert. Ich hab ja extra nachgefragt. Aber sie haben gesagt, dies sei deaktiviert.
    Und weil eben register_globals off ist, gehts nicht.

  7. #7
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ähm, ja ... ^^ du verstehst register globals da falsch -> sieh hier

    Du kannst ja mal Post so verwenden und testen ob bei echo etwas ausgegeben wird.

    Superglobals stehen ja extra wegen dem off zur verfügung.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  8. #8
    Thonixx
    Gast

    Standard

    Achso. Da wurde ich falsch informiert.

    edit: Kann ich dann für meinen Benutzerlogin doch POST verwenden?

    Also so:

    $POST_[username]

    Oder nicht?

  9. #9
    gelöschter User
    Gast

    Standard

    Jaja POST müsste eigendlich ohne Probleme funktionieren...
    Ich hab hier auch noch eine Lösung für dein Notiz Dinge geschrieben:
    Code:
    <?php
    if&#40;$_SERVER&#91;'REQUEST_METHOD'&#93; == 'POST'&#41;
    &#123;
      extract&#40;$_POST&#41;;
      $file = fopen&#40;"./notizen.txt", "w"&#41;;
      fwrite&#40;$file, $new_notice&#41;;
      fclose&#40;$file&#41;;
      echo 'GESPEICHERT
    
    
            Wieder zur&uuml;ck!';
    &#125;
    else
    &#123;
      if &#40;file_exists&#40;"./notizen.txt"&#41;&#41;
      &#123;
        $notiz = file &#40;"./notizen.txt"&#41;;
      &#125;
      echo '<form action="'.$_SERVER&#91;'PHP_SELF'&#93;.'" method="POST">
      <textarea style="height&#58; 420px; width&#58; 500px;" name="new_notice">';
      foreach &#40;$notiz as $zeile_num => $zeile&#41; &#123; echo $zeile; &#125;
      echo '</textarea>
      
    
    
      <input type="submit" value="Speichern...">
      </form>';
    &#125; 
    ?>
    Gruß crAzywuLf

  10. #10
    Thonixx
    Gast

    Standard

    Danke...

    Funtkioniert. Könntest du mir bitte die einzelnen Befehle erklären, was PHP genau macht? Ich werd nicht so ganz schlau draus.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •