Script geht auf Unix-Server, aber nicht auf Linux

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

  • Script geht auf Unix-Server, aber nicht auf Linux

    Howdie Folks,

    ich habe ein Script gecoded, das ein Verzeichnis öffnet und den Inhalt mit Checkboxen in ein Formular schreibt. Man gibt seine Daten ein und bekommt das ausgewählte als eMail-Attachment zugeschickt.
    Das funktioniert auf meinem Localhost unter Windows, auf meinem Webspace unter Unix und Apache, aber nicht da wo es eigentlich soll:
    Webspace mit Linux und Apache. Die PHP-Seite wird zwar angezeigt, aber Versand, bzw. Abschicken des Formulars ist nicht möglich.
    Es gibt auch keine Fehlermeldung, z.B. wegen einer fehlenden Imap-Extension oder so.

    Was auch nicht funktioniert ist das Aufrufen des Formulars von einer HTML-Seite aus, von wo ein Dateiname als Parameter mit übergeben wird.
    Code:
     
    <form action="formular.php" method="post">
    <input type="hidden" name="datei" value="Info_als_PDF.pdf">
    <input type="submit" value="Ja, die will ich haben!">
    </form>
    Das funktioniert hier bei mir und auch auf meinem Webspace. Nur auf dem Linux-Apache-Server nicht.
    Leider hab´ ich null Plan, wo man jetzt nach Fehlern suchen kann oder sollte. Könnt Ihr mir ein bischen auf die Sprünge helfen?

    So long,
    Cowboy

  • #2
    was steht denn in formular.php
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      PHP-Info verglichen?

      Kommentar


      • #4
        Hallo,

        Beim vergleichen der phpinfo is mir eigentlich ausser dem Unterschied der PHP-Versionen nix nachteiliges aufgefallen. Bei mir daheim hab ich 4.3.1, auf meinem Webspace ist 4.2.3 (da geht´s). Auf dem Linux-Server ist 4.0.6 (da geht´s nicht.)

        Das ist der Bereich der formular.php, wo die Checkboxen erzeugt werden.
        Wie gesagt, die werden angezeigt, aber die Geschichte mit der Übergabe von einer HTML-Seite funktioniert nicht. Die Variable $zeig_alles bestimmt, ob der ganze Ordner angezeigt wird, oder nur die übergebene Datei.
        PHP-Code:
        $folder opendir($ordner);
        while(
        $_file readdir($folder)) {
            if(!
        is_dir($_file) && $_file != "." && $_file != ".." && $_file != ".htaccess" && $_file != ".htpasswd") {
                if  (
        $_file == $_POST["datei"])  {
                    
        $file substr$_file0strrpos$_file'.' ) );  // Name vor Punkt abschneiden
                    
        $file ereg_replace("_" " " $file);              // Unterstrich ersetzen
                    
        $file str_pad($file20 "*" );                    // Name mit Zeichen auffüllen
                    
        $file str_replace("*""&nbsp;" $file );          // Zeichen durch &nbsp; ersetzen
                    
        echo " <nobr><input type=checkbox name='datei[]' checked  value="$_file .">";
                    echo 
        " &nbsp;"$file ."&nbsp;&nbsp;&nbsp;</nobr>";

                } else {
                  if ( 
        $zeig_alles == "1"){
                    
        $file substr$_file0strrpos$_file'.' ) );  // Name vor Punkt abschneiden
                    
        $file ereg_replace("_" " " $file);              // Unterstrich ersetzen
                    
        $file str_pad($file20 "*" );                    // Name mit Zeichen auffüllen
                    
        $file str_replace("*""&nbsp;" $file );          // Zeichen durch &nbsp; ersetzen
                    
        echo " <nobr><input type=checkbox name='datei[]' value="$_file .">";
                    echo 
        " &nbsp;"$file ."&nbsp;&nbsp;&nbsp;</nobr>";
                  }
               }
            }
        }

        closedir($geheim); 
        Was meint Ihr, wo der Hase begraben liegt?

        So long,
        Cowboy

        Kommentar


        • #5
          in php Version 4.0.6 gibt es noch keine global arrays wie $_POST, $_GET, etc
          Da musst Du $HTTP_POST_VARS benutzen
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Hi MelloPie,

            aha, das erklärt natürlich einiges. Dann liegts also an der PHP-Version und nicht am Linux.
            $_POST hab ich öfters eingesetzt.
            Was empfiehlst Du? Kann man das einfach ersetzen oder muss das komplett umgeproggt werden.
            Dann liegts

            Kommentar


            • #7
              Meine Empfehlung: ne neue php version auf den linux setzen, wenns net Deiner ist Deinen Provider mal vorsichtig fragen ob er noch in der Steinzeit lebt :-)
              Ansonsten einfach umbenennen aus $_POST wird $HTTP_POST_VARS allerdings musst Du aufpassen die $HTTP_*_VARS arrays sind nicht autoglobal in Funktionen
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Hi MelloPie,

                das mit dem steinzeitlichen Provider werde ich wohl lieber sein lassen, sonst krieg ich noch die Keule .
                Ich glaube nicht, daß die von heute auf morgen eine andere PHP-Version aufsetzen, oder?
                Ich werde mal die Variablen umbenennen und schauen was passiert.
                Hoffe nur, die Sache ist dann auch aufwärtskompatibel.
                Notfalls muß halt ein anderer Provider her.

                Jedenfalls vielen Dank für Deine Hilfe,
                So long,
                Jack

                Kommentar


                • #9
                  Naja ein Provider sollte darauf bedacht sein zumindest ne einigermassen aktuelle Version zu haben 4.0.6 is nun wirklich schon alt und wirklich nicht ausreichend, bzw. direkt hemmend.
                  MAch ihn mal drauf aufmerksam.
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Is ja Gott sei Dank nicht mein Provider, aber ich werd´s mal ausrichten lassen. Vielleicht nützt´s ja was. Dann brauch ich wenigstens mein Formular nicht umstellen.
                    Ich denke solange da keiner was meckert, wird sich auch in dieser Hinsicht nix tun. Also schaun mer mal...

                    So long,
                    Cowboy

                    Kommentar


                    • #11
                      Such einfach mal nach Security bugs in 4.0.6 und stell dem Provider die vor...
                      Das is imemr ein gutes Argument :-)
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        Guter Tip,
                        Danke.
                        Bin mal gespannt. Werd´s gleich mal ansprechen.

                        Ergebnis kommt.

                        Kommentar


                        • #13
                          Hallo MelloPie,

                          die Sache mit dem Provider war nicht erfolgreich:
                          Da schiebt es einer auf den anderen. Angeblich funktioniert deren confixx nicht mehr, wenn Sie php updaten. bzw. php wird vielleicht mal geupdated, wenn auch ein confixx update gemacht wird.
                          Alles Bla Bla. Da lob ich mir meinen Hoster, der Support-Anfragen wirklich ernst nimmt und mir diesbezüglich auch schon oft geholfen hat.
                          Gehört zwar nicht hierher, aber formativ.net ist zwar nicht der billigste, aber ich finde der beste, mit dem ich bis jetzt zu tun hatte. Da wird ein Kundenwunsch persönlich genommen und nicht anhand einer Promille-Rechnung entschieden, ob das geändert wird.

                          Zur Lösung meines Problems: Ich hab mit meinem Editor alle $_POST mit $HTTP_POST_VARS ersetzen lassen. Jetzt geht es.
                          Danke für den Tip.

                          So long,
                          Cowboy
                          EDIT:
                          Hab sicherheitshalber den Link zum Hoster rausgenommen.
                          Zuletzt geändert von TobiaZ; 15.04.2003, 12:41.

                          Kommentar


                          • #14
                            Wem auch immer Du das Script gemacht hast, rate ihm den Provider zu wechseln, wer unfähig ist eine neue PHP version einzuspielen, ist bestimmt super fähig an allen anderen Ecken.
                            Servicewüste läßt grüßen.
                            Beantworte nie Threads mit mehr als 15 followups...
                            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                            Kommentar


                            • #15
                              Raten und empfehlen kann ich viel.
                              Nur möchte nicht jeder ständig seinen Provider wechseln. Das geht mir ja genauso. Das ist immer mit OFF-Zeiten und immer wieder neuen Überraschungen verbunden. Arbeit macht´s auch. Deshalb scheuen viele davor zurück.
                              Die Provider würden auf diese Art aber vielleicht mal wachgerüttelt.
                              So is das halt: Wenn du mal nen guten Provider empfiehlst, wird mit dem Preis gekontert. Details lassen sich alle erst beurteilen, wenn man mal mit jemandem gearbeitet hat und sich ein Bild über Service, Support und Leistungsfähigkeit gemacht hat.
                              Und verlockend sind manche Angebote schon und solange sie neu sind, wahrscheinlich auch echt ok. Aber erst wenn dann mal Updates fällig werden, merkt man wo man hingeraten ist.

                              Kommentar

                              Lädt...
                              X