Chris: Datamailer will nicht

Hallo,

ich hab nen Dateimailer gebaut und erhalte ständig eine Fehlermeldung :)

Er scheint mir irgendwie die Datei die er versenden soll net zu finden, Problem ist aber das die Datei sich genau da befindet wo er sie sucht *grübel*

Ich hab euch mal die Fehlermeldung unten ran gehängt vieleicht könnt ihr mir genau sagen was diese zu bedeuten hat ?
Oder hat vieleicht jemand einen Tipp wo ich ne Sammlung über Fehlermeldungen finden kann?

Ich danke euch für eure Hilfe :)

Gruss

Chris

Fehlermeldung:

Warning: fopen(C:\Dokumente und Einstellungen\dwp\Eigene Dateien\Eigene Bilder\jl\042.jpg) [function.fopen]: failed to create stream: No such file or directory in /home/www/web9/html/dycare.de/adminc/client/module/mailer.inc on line 224

Warning: filesize() [function.filesize]: Stat failed for C:\Dokumente und Einstellungen\dwp\Eigene Dateien\Eigene Bilder\jl\042.jpg (errno=2 - No such file or directory) in /home/www/web9/html/dycare.de/adminc/client/module/mailer.inc on line 224

Warning: fread(): supplied argument is not a valid stream resource in /home/www/web9/html/dycare.de/adminc/client/module/mailer.inc on line 224

  1. Hallo!

    Fehlermeldung:

    Warning: fopen(C:\Dokumente und Einstellungen\dwp\Eigene Dateien\Eigene Bilder\jl\042.jpg) [function.fopen]: failed to create stream: No such file or directory in /home/www/web9/html/dycare.de/adminc/client/module/mailer.inc on line 224

    Was ist das? Du hast Das Script auf einem Unix-Server laufen und greifst darin auf einen Windows-Pfad zu? Wie geht das?

    Grüße
    Andreas

    1. Hi,

      Was ist das? Du hast Das Script auf einem Unix-Server laufen und greifst darin auf einen Windows-Pfad zu? Wie geht das?

      Das er aus dem Unix Pfad nen Windows Pfad macht versteh ich auch net:) Das macht er von selbst, frag mich aber nicht warum...

      Wenn ich den Pfad im <input...type=file> sehe nach dem ich die datei hochgeladen habe ist es ein Unixpfad sprich "C:\Eigen..."
      Erst bei der Fehlermeldung endtarnt sich das Teil als Unixpfad :)

      Hast du da vieleicht rat?

      Gruss

      Chris

      1. Hallo!

        Das er aus dem Unix Pfad nen Windows Pfad macht versteh ich auch net:) Das macht er von selbst, frag mich aber nicht warum...

        Das wird schon einen Grund  haben. Was verwenest Du denn auf dem Server? Unix  vermutlich, oder?

        Und was steht in Zeile 224? Hier müßte sowas stehen dass er C:... öffnen will. Poste mal die Zeile!

        Wenn ich den Pfad im <input...type=file> sehe nach dem ich die datei hochgeladen habe ist es ein Unixpfad sprich "C:\Eigen..."

        das ist _kein_ Unix-Pfad! Was hat das mit html zu tun? Naja, poste mal den Code.

        Erst bei der Fehlermeldung endtarnt sich das Teil als Unixpfad :)

        nenene, er macht nur was Du ihm sagst! Wenn Du sagst c: dann sucht er auch da.

        Grüße
        Andreas

        1. Hi,

          also auf dem Server ist linux installiert und auf dem Rechner von dem er den file Uploaden soll ist Windows installiert :)

          <input type="file" SIZE="20" name="datei"> <-- Die Zeile vom Formular

          Das ist die Zeile 224:

          /* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
          $datei_content = fread(fopen($datei,"r"),filesize($datei));

          Gruss
          chris

          1. Hi,

            also auf dem Server ist linux installiert und auf dem Rechner von dem er den file Uploaden soll ist Windows installiert :)

            <input type="file" SIZE="20" name="datei"> <-- Die Zeile vom Formular

            Das ist die Zeile 224:

            /* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
            $datei_content = fread(fopen($datei,"r"),filesize($datei));

            OK. eigentlich sollte es nicht so sein, aber wie es aussieht steht in $datei der _ursprüngliche_ Pfad der Datei! Das sollte nicht so sein. Ich denke dass es daran liegt dass Du im Upload HTML-Formular nicht

            <form action="script.php" method="post" enctype="multipart/form-data">
                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

            angegeben hast. Außerdem vermute ich dass Du die alte PHP3 Datei-Upload Variante verwendest, ich rate unbedingt den Datei-Upload wie in folgendem Beispiel zu programnmieren:
            http://www.php-faq.de/q/q-formular-upload-php4.html

            Grüße
            Andreas

            1. puhhh...

              jetzt hab ich nen Fehler :)

              enctype="multipart/form-data">

              ich depo hab vergessen die slashes wegzunehem :)

              die Fehlermeldung ist nun weg aber die datei kommt immer noch net an :)

              Danke für deine Hilfe ich

              Grüsse Chris

              1. Hallo!

                die Fehlermeldung ist nun weg aber die datei kommt immer noch net an :)

                Verwende die von mir verlinkte neue Variante, die ist erheblich sicherer und funktioniert noch langfristig!

                Grüße
                Andreas

                1. hi,

                  Verwende die von mir verlinkte neue Variante, die ist erheblich sicherer und funktioniert noch langfristig!

                  <? echo "<form action="index.php?funktion=mailer_1&tabsi=login&modul=mailer&logid=$logid&passwort=$passwort&update=$logid" method="post" enctype="multipart/form-data"> "; ?>

                  <input type="file" SIZE="20" name="datei">

                  <input border="0" height="17" src="images/bestaetigen.gif" type="image" vspace="1" width="87" name="image" value="Abschicken">

                  so hab ichs mir zusammen gestrickt is doch ok oder?

                  Nun zu meinem zweiten Problem :)

                  Irgendwie nimmt er mir nun die Datei nicht mit, ich habe versucht die $datei via echo auszugeben is aber nix drin :(

                  Zur materie ist zusagen das das Script in ein grosses Hauptscript (index.php) included wird ist also blos ein modul, im Hauptscript habe ich mit classen gearbeitet.

                  Kann es sein das ich in classen die Variable $datei anders holen muss da diese Temporär ist?
                  Ich habs bereits mit $this-datei versuch aber leider kein erfolg :)
                  Alle anderen variablen vom mailer sind erreichbar auch über z.B $absender ohne $this-> ...

                  1. hi,

                    $this-datei

                    Hm. Kurzer Blick drauf. Das Minuszeichen darf da wohl nicht vorkommen. Sonst versucht PHP irgendwas zu rechnen. Gabs den keine Fehlermeldungen?

                    fastix®

                  2. Hallo!

                    <? echo "<form action="index.php?funktion=mailer_1&tabsi=login&modul=mailer&logid=$logid&passwort=$passwort&update=$logid" method="post" enctype="multipart/form-data"> "; ?>

                    <input type="file" SIZE="20" name="datei">

                    <input border="0" height="17" src="images/bestaetigen.gif" type="image" vspace="1" width="87" name="image" value="Abschicken">

                    so hab ichs mir zusammen gestrickt is doch ok oder?

                    Naja, dieses Mixen von POST und GET, nicht gerade die "feine englische Art". Warum übergibst Du die Variablen nicht als Hidden-Fields?

                    Das Problem ist nicht das Forumlar, sondern das Script welches die Daten entgegen nimmt.

                    Darin greifst Du wie in dem von mir verlinkten Tutorial mt $_FILES auf die Datei zu, das geht so 100%ig und ist viel sicherer.  Außerdem kopiert man dann mit der speziellen Funktion move_uploaded_file(). Guck Dir die Anleitung an, dann hast Du keine Probleme!

                    Irgendwie nimmt er mir nun die Datei nicht mit, ich habe versucht die $datei via echo auszugeben is aber nix drin :(

                    Das geht sowieso nicht. In dieser Variabel szteh tnur der temporäre Name. Aber ich wiederhole mich, das ist schlecht, verwende die Methode mit $_FILES.

                    Kann es sein das ich in classen die Variable $datei anders holen muss da diese Temporär ist?

                    Ja, Du mußt sie der Klasse übergeben, aber wenn Du $_FILES verwendest brauchst Du das nicht, denn die sind supergobal.

                    Ich habs bereits mit $this-datei versuch aber leider kein erfolg :)

                    Wie auch? mit $this-datei ist ein Variablenname den es vermutlich nicht gibt, vermutlich meintest Du $this->datei, aber das funktionbiert nur wenn $datei eine Variabe im Namensraum der KLasse ist.

                    Wie gesagt, lies mal http://www.php-faq.de/q/q-formular-upload-php4.html und probiere es so!

                    Grüße
                    Andreas

                    1. Hi Andreas,

                      ich habe mir alle Ratschläge fein sauberlich durchgelsen und sie befolgt :)
                      Und siehe da alles läuft :)

                      Ich bin dir dankbar :)

                      Bis demnächst

                      Gruss

                      Chris