Warum läuft dieses ding nur auf lycos servern?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Doc2k; 29-09-2004, 18: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

    Comment


    • #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

      Comment


      • #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...
        Last edited by NielsRunge; 29-09-2004, 18:33.
        [Test] MySQL cli Emulator

        Comment


        • #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.

          Comment


          • #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
            Last edited by Doc2k; 29-09-2004, 18:39.

            Comment


            • #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

              Comment


              • #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?

                Comment


                • #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

                  Comment


                  • #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

                    Comment


                    • #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

                      Comment


                      • #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
                        Last edited by Doc2k; 29-09-2004, 20:46.

                        Comment


                        • #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
                          Last edited by NielsRunge; 29-09-2004, 21:03.
                          [Test] MySQL cli Emulator

                          Comment


                          • #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

                            Comment


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

                              Comment

                              Working...
                              X