Warum läuft dieses ding nur auf lycos servern?

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

  • Warum läuft dieses ding nur auf lycos servern?

    Ich hab da nen riese Problem.
    Ich hab mir mit php ne Seite zum editieren von Textdateien erstellt.
    schön und gut aber das ganze funktioniert nur auf nem free lycos server den ich hab. Ich habe das ganze auf isgesammt 3 webservern getestet und es hat immer nicht gefunzt. Habe ich da vielleicht nen Fehler drinne den nur lycos nicht kratzt , oder was stimmt da nicht? Habe mir jetzt sogar ne apache-Server installiert und hab da php draufgezogen aber das gleiche spiel wie mit allen anderen servern auch. Die Textdatei wird ganz normal eingelesen etc. aber sie wird nicht gespeichert.
    Hier ist erstmal die Seite:

    <head>

    </head>
    <body bgcolor="#000099">
    <?php
    $filename="news1a.txt";
    $tokill="news1b.txt";
    $tokill2="news1c.txt";
    $tokill3="news1d.txt";
    $tokill4="news1e.txt";
    $tokill5="news1f.txt";
    if($action=="Speichern"){
    $n_content = stripslashes($n_content);
    $fpn = @fopen($filename, "b");
    if ($fpn) {
    fwrite($fpn, $n_content);
    fclose($fpn);
    @unlink($tokill);
    @unlink($tokill2);
    @unlink($tokill3);
    @unlink($tokill4);
    @unlink($tokill5);
    }
    }
    $fpo = @fopen($filename, "r");
    if ($fpo) {
    $o_content = fread($fpo, filesize($filename));
    $o_content = htmlspecialchars($o_content);
    fclose($fpo);
    }
    echo ' <div align="center"><table><tr><td>
    <br>
    <form action="'.$_SERVER[PHP_SELF].'" method="POST">
    <p align="center"><font color="#FFFFFF" face="Arial" style="font-size: 10pt"><b>Bitte geben sie Ihren neuen Text ein und klicken sie auf "Speichern</b></font></p>
    <input type="submit" name="action" value="Speichern" >
    <input name="n_content" size="30"bgcolor="#6699FF" style="border: 1px solid #000080" maxlength="30" value="'.$o_content.'">
    </form>';
    echo '</table></td></tr></table></div>';
    ?>

    hat irgenjemand eine idee wie ich das hinbekomme?
    Iin ein absoluter Anfänger was php Angeht.
    Muss ich das Script umstellen oder etwas an den php einstellungen meines apache-webserver ändern damit es funktioniert???
    Werde langsam irre mit diesem script.
    Währe echt cool wenn mir schnell jemand helfen könnte.
    greets Doc2k
    Zuletzt geändert von Doc2k; 29.09.2004, 19:23.

  • #2
    fopen(,'a') wäre evt richtiger und deine ganzen @verhjindern irgendne fehlerausgabe
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ja die sollen die Fehlerausgabe von unlink verhindern da von den 5 zu löschenden Texten immer nur max. einer da ist.
      Aber schonmal danke für die schnelle antwort werde es sofort probieren.
      d.h welches fopen soll ich den auf a stellen? Das erste oder das Zweite?

      greets Doc2k

      Kommentar


      • #4
        Suche nach "register_globals", hier oder Google.

        bzw. ersetze einfach
        PHP-Code:
        if($action=="Speichern"){ 
        durch
        PHP-Code:
        if ($_POST['action'] == 'Speichern') { 
        EDIT:
        und die anderen Variablen natürlich auch...
        Zuletzt geändert von NielsRunge; 29.09.2004, 19:33.
        [Test] MySQL cli Emulator

        Kommentar


        • #5
          darüber hinaus ist wohl stark anzunehmen, dass lycos register_globals newbee-"freundlich" eingestellt hat.

          ("freundlich" in anführungszeichen, weil das eben gar nicht so freundlich ist, wenn man die leute damit in ihrer bequemlichkeit unterstützt, anstatt sie gleich in der lernphase schon zum sauberen programmieren zu zwingen ...)
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ähm ja meine ich auch

            aber wie hilft mir dat ganze jetzt?
            Aber fettes Merci das sich so viele gleich melden!
            mit dem post befehl komme ich nicht ganz mit un´d as was sich mir da so bei globals register auftut verstehe ich auch noch nicht
            Zuletzt geändert von Doc2k; 29.09.2004, 19:39.

            Kommentar


            • #7
              Re: Ähm ja meine ich auch

              Original geschrieben von Doc2k
              aber wie hilft mir dat ganze jetzt?
              Aber fettes Merci das sich so viele gleich melden!
              mit dem post befehl komme ich nicht ganz mit un´d as was sich mir da so bei globals register auftut verstehe ich auch noch nicht
              wahsaga war sogar so freundlich und hat Dir nen direkten Link zum Suchergebnis gemacht, hier bekommst Du nochmal Google von mir register_globals (sogar auf deutsch... ) aber lesen mußt Du schon selber
              [Test] MySQL cli Emulator

              Kommentar


              • #8
                ich glaube ich habs langsam aber welche der variablen muss ich mit dem _Post ausstatten?
                also ich meine jetzt wirklich auf meinen fall bezogen.
                Ich kenne mich doch absolut nicht aus. Ich weiss halt jetzt aus einem Beitrag das zum Beispiel ein textfeld auch nur mit _post[$textfeld] verfügbar ist aber wie steht es mit den beschreibungen wie &filename= "bla.txt" etc?
                welche muss ich umschreiben und welche nicht?

                Kommentar


                • #9
                  alles was übers Formular kommt muß umgeschriben werden!
                  Bei Dir wäre es dann "action" und "n_content", mehr Formularfelder hast Du ja nicht.
                  [Test] MySQL cli Emulator

                  Kommentar


                  • #10
                    Also jetzt geht nix mehr

                    Also ich habe das jetzt so geändert wie ihr sagtet und hab im oberen teil das _POST eingefügt. Jetzt kommt aber garnix mehr.
                    Weiss echt nicht was das nicht stimmt hatte global register sogar schon bei meinem apache angestellt gehabt doch es hat trotzdem nicht funktioniert.
                    hier nochmla die Seite:

                    <head>

                    </head>
                    <body bgcolor="#000099">
                    <?php
                    $filename='news1a.txt';
                    $tokill='news1b.txt';
                    $tokill2='news1c.txt';
                    $tokill3='news1d.txt';
                    $tokill4='news1e.txt';
                    $tokill5='news1f.txt';
                    if ($_post[action]=='Speichern'){
                    $_POST[n_content] = stripslashes$_POST[n_content];
                    $fpn = @fopen($filename, "a");
                    if ($fpn) {
                    fwrite($fpn, $n_content);
                    fclose($fpn);
                    @unlink($tokill);
                    @unlink($tokill2);
                    @unlink($tokill3);
                    @unlink($tokill4);
                    @unlink($tokill5);
                    }
                    }
                    $fpo = @fopen($filename, "r");
                    if ($fpo) {
                    $o_content = fread($fpo, filesize($filename));
                    $o_content = htmlspecialchars($o_content);
                    fclose($fpo);
                    }
                    echo ' <div align="center"><table><tr><td>
                    <br>
                    <form action="'.$_SERVER[PHP_SELF].'" method="POST">
                    <p align="center"><font color="#FFFFFF" face="Arial" style="font-size: 10pt"><b>Bitte geben sie Ihren neuen Text ein und

                    klicken sie auf "Speichern</b></font></p>
                    <input type="submit" name="action" value="Speichern" >
                    <input name="n_content" size="30"bgcolor="#6699FF" style="border: 1px solid #000080" maxlength="30" value="'.$o_content.'">
                    </form>';
                    echo '</table></td></tr></table></div>';
                    ?>

                    kann mir das jemand so korregieren das es endlich funzt???
                    Ich bin leider echt zu ahnungslos

                    greets Doc2k

                    Kommentar


                    • #11
                      Bitte benutze PHP-Tags hier im Forum!

                      was ist hiermit denn los
                      PHP-Code:
                      $_POST[n_content] = stripslashes$_POST[n_content]; 
                      Du meinst sicherlich
                      PHP-Code:
                      $_POST[n_content] = stripslashes($_POST[n_content]); 
                      außerdem lieber "$_POST['n_content']" als "$_POST[n_content]".
                      PHP schaut sonst erstmal ob die Konstante "n_content" definiert ist und da error_reporting wohl nicht auf E_ALL ist, bekommst Du das nicht mit.
                      Mache also auch immer "error_reporting(E_ALL);" am Anfang Deiner Scripte wenn Du testest.
                      [Test] MySQL cli Emulator

                      Kommentar


                      • #12
                        was habe ich denn nu noch falsch gemacht?
                        Sehe zwar die seite jetzt wieder und fehler wurden mir auch keine ausgegeben. Aber die textfile wird immernoch nicht gespeichert.
                        Hier nochmal die seite
                        PHP-Code:
                        <?php
                        error_reporting
                        (E_ALL);
                        $filename='news1a.txt';
                        $tokill='news1b.txt';
                        $tokill2='news1c.txt';
                        $tokill3='news1d.txt';
                        $tokill4='news1e.txt';
                        $tokill5='news1f.txt';
                        if (
                        $_post[action]=='Speichern'){
                        $_POST['n_content'] = stripslashes($_POST['n_content']); 
                        $fpn = @fopen($filename"a"); 
                        if (
                        $fpn) { 
                        fwrite($fpn$n_content); 
                        fclose($fpn);
                        @
                        unlink($tokill);
                        @
                        unlink($tokill2);
                        @
                        unlink($tokill3);
                        @
                        unlink($tokill4);
                        @
                        unlink($tokill5); 


                        $fpo = @fopen($filename"r"); 
                        if (
                        $fpo) { 
                        $o_content fread($fpofilesize($filename)); 
                        $o_content htmlspecialchars($o_content); 
                        fclose($fpo); 

                        echo 
                        ' <div align="center"><table><tr><td>
                        <br> 
                        <form action="'
                        .$_SERVER[PHP_SELF].'" method="POST">  
                        <p align="center"><font color="#FFFFFF" face="Arial" style="font-size: 10pt"><b>Bitte geben sie Ihren neuen Text ein und 

                        klicken sie auf "Speichern</b></font></p>
                        <input type="submit" name="action" value="Speichern" >
                        <input name="n_content" size="30"bgcolor="#6699FF" style="border: 1px solid #000080" maxlength="30" value="'
                        .$o_content.'"> 
                        </form>'
                        ;
                        echo 
                        '</table></td></tr></table></div>';
                        ?>
                        was stimmt hier noch nicht?
                        grets doc2k
                        Zuletzt geändert von Doc2k; 29.09.2004, 21:46.

                        Kommentar


                        • #13
                          irgendwer hatte auch schon gesagt dass Du die @s weg nehmen sollst, also z.B.
                          PHP-Code:
                          $fpn fopen($filename"a"); 
                          anstatt
                          PHP-Code:
                          $fpn = @fopen($filename"a"); 
                          EDIT:
                          und hier "fwrite($fpn, $n_content);" wo soll den $n_content herkommen???


                          EDIT:
                          und hier "$_post[action]" dort kann natürlich auch wohl besser "$_POST['action']" stehen
                          Zuletzt geändert von NielsRunge; 29.09.2004, 22:03.
                          [Test] MySQL cli Emulator

                          Kommentar


                          • #14
                            das unterdrückt doch nur die Fehlermeldung falls ein Text nicht da ist
                            (dachte das muss so sein damit er im Zweifelsfall erstellt wird)
                            Geht aber auch so noch nicht

                            Kommentar


                            • #15
                              @doc: bitte [PHP]-Tags benutzen!

                              Kommentar

                              Lädt...
                              X