php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.06.2006, 11:47  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard Hilf bei Fehlersuche --> failed to open stream

Mmmm...
habe ein Script geschrieben, mit dem ich Grafiken in die Db speichere. Dieses Local auch am laufen (d.h. keine Fehler).
Nun hab ichs auf Lc gehostet und bekomme da unten aufgeführte Fehler?
Habe nun versucht von meiner Localen Hdd die Grafik auge.gif in die Db zu übertragen.

Hat jemand ne Ahnung, warum diese kommen und was ich abändern müste.
Hier mal Teile des Scripts:

case "zufuegen":
....
141... $data = addslashes(fread(fopen($_POST['form_data'], "r"), filesize($_POST['form_data'])));
142... $result=mysql_query("INSERT INTO binary_data(beschreibung,bin_data,filename,filesiz e,filetype)VALUES(\"". $_POST['beschreibung']. "\",\"". $data. "\",\"". $form_data_name. "\",\"". $form_data_size. "\",\"". $form_data_type. "\")");
....

case "eingabe":
...
echo"
<form method=\"POST\" action=\"$_SERVER[PHP_SELF]?do=zufuegen&act=ok\" enctype=\"multipart/form data\">
<input type=\"file\" name=\"form_data\" style=\"width:450\" value=\"Datei\">
<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000\">
<input type=\"submit\" name=\"zufuegen\" style=\"width:100\" value=\"zufügen\">
</form>";
...



Warning: fopen(): Unable to access O:\\Hp_sicher_aktuell\\hp_neu\\Images\\auge.gif in /home/webpages/lima-city/pit62/html/Wissenstest/wtest_admin.php on line 141

Warning: fopen(O:\\Hp_sicher_aktuell\\hp_neu\\Images\\auge. gif): failed to open stream: No such file or directory in /home/webpages/lima-city/pit62/html/Wissenstest/wtest_admin.php on line 141

Warning: filesize(): Stat failed for O:\\Hp_sicher_aktuell\\hp_neu\\Images\\auge.gif (errno=2 - No such file or directory) in /home/webpages/lima-city/pit62/html/Wissenstest/wtest_admin.php on line 141

Warning: fread(): supplied argument is not a valid stream resource in /home/webpages/lima-city/pit62/html/Wissenstest/wtest_admin.php on line 141
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.06.2006, 11:57  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

Problem erkannt! bzw. gefunden. In der Phpini ist der Wert off bei allow_url_fopen gesetzt.
Dann ist es auch kein Fehler, den ich ändern kann!
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 22.06.2006, 12:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard Re: Hilf bei Fehlersuche --> failed to open stream

Zitat:
Zitat von pit62
case "zufuegen":
....
141... $data = addslashes(fread(fopen($_POST['form_data'], "r"), filesize($_POST['form_data'])));

...

<input type=\"file\" name=\"form_data\" style=\"width:450\" value=\"Datei\">

Warning: fopen(): Unable to access O:\\Hp_sicher_aktuell\\hp_neu\\Images\\auge.gif in /home/webpages/lima-city/pit62/html/Wissenstest/wtest_admin.php on line 141

restliche Warnings sind uninteressant.
Dazu mal ein paar Anmerkungen.
1. Der Zugriff auf die Datei ist riesengroßer Mist. Bevor Du den Rückgabewert von fopen() in fread() stopfst solltest Du mal auf Fehler prüfen. Das spart die Berge von Folgefehlern.
Gleiches gilt natürlich für filesize().
Es soll ja nicht nur ein SchönwetterScript sein.

2. Außerdem solltest Du mal in der Doku nachgucken, wie normalerweise auf hochgeladene Dateien zugegriffen wird. Statt $_POST dürfte da $_FILES besser geeignet sein.

3. Ist das ein lokaler Dateiname auf Deinem Client-Rechner oder ein Name auf dem Server? Ist das der gleiche Rechner? Läuft der Server unter mit Windows oder Linux?

4. Was hat das Öffnen einer Datei im lokalen Filesystem (des Servers) mit allow_url_fopen zu tun? Unabhändig davon, ob der Name für den Rechner richtig ist, bleibt es ein lokaler Filename.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.06.2006, 13:18  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard Re: Hilf bei Fehlersuche --> failed to open stream

Zitat:
Zitat von Der_Gerhard
2. Außerdem solltest Du mal in der Doku nachgucken, wie normalerweise auf hochgeladene Dateien zugegriffen wird. Statt $_POST dürfte da $_FILES besser geeignet sein.
So wie ich das sehe, steht in $_POST['form_data'] ja nur der Pfad bzw. der URL zu der gewünschten Datei drin. Insofern ist die Verwendung von $_POST anstatt von $_FILES schon richtig. Warum das Eingabefeld dann allerdings vom Typ file ist, verstehe ich nicht.

Außerdem tut sich so eine riesige Sicherheitslücke auf, da jeder nach Belieben Dateien auf dem Server aufrufen kann.
xabbuh ist offline  
Alt 22.06.2006, 13:21  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Wenn das der Dateiname auf dem Client-Rechner ist, kommt der Server doch sowieso nicht ran.
Das würde nur funktionieren, wenn der Server auf dem selben Rechner läuft. Sonst ist der Pfad wertlos.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.06.2006, 13:23  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Richtig, ich habe aber auch noch nicht verstanden, was der Op jetzt eigentlich genau vorhat: Eine Datei per HTML-Formular hochladen oder im Formular einen Pfad bzw. URL zu einer Datei angeben, um dann zu versuchen diese mit PHP zu öffnen.
xabbuh ist offline  
Alt 22.06.2006, 13:32  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Dem Formular nach zu urteilen sollte da was hochgeladen werden und dann in die DB eingetragen werden.
Wobei schon das Eintragen der ganzen Datei gruselig ist.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.06.2006, 13:42  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

Zitat:
Zitat von xabbuh
Richtig, ich habe aber auch noch nicht verstanden, was der Op jetzt eigentlich genau vorhat: Eine Datei per HTML-Formular hochladen oder im Formular einen Pfad bzw. URL zu einer Datei angeben, um dann zu versuchen diese mit PHP zu öffnen.
nun ich habe ein Frage - Antwort - Script geschrieben, wo es eine Administrative sowohl eine Anwenderseite gibt. Nur in der Admin Zone werden Fragen in die DB geschrieben mit dazugehörenden Antworten. Zu den Fragen zum B. Logikfragen ist es notwendig, Grafiken anzeigen zu lassen. die Grafiken liegen (bei meinem Problem) auf meinem Home-Rechner. Nun möchte ich im Internet, wo meine Scripte (php) gehostet werden und meine Db läuft Fragen eingeben und Grafiken dazu von meinem Homerechner in die DB (binär) speichern. Dazu habe ich auch eine Form, wo bei <input type=file ........ das Fenster aufgeht und ich die Datei auswählen kann. Deswegen auch type=File. Somit übergebe ich den Pfad per submit ( $_POST['form_data'] ).
Was die Sicherheit beträfe sehe ich keinerlei Probleme also es kann nicht jeder alles Hochladen!
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 22.06.2006, 13:44  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

Zitat:
Zitat von Der_Gerhard
Dem Formular nach zu urteilen sollte da was hochgeladen werden und dann in die DB eingetragen werden.
Wobei schon das Eintragen der ganzen Datei gruselig ist.

Warum?
es handelt sich zum einen um ein noch nicht entgülig fertiges Script und was steht dagegen bzw. was ist gruselig?
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 22.06.2006, 13:48  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Gruselig ist es, eine komplette Grafik-Datei in die DB zu packen.
Stattdessen kann man viel einfacher die hochgeladene Datei mit move_uploaded_file() an einen anderen Ort packen und nur den Dateinamen bzw. eine URL zu dem Bild in der DB speichern.

Jedesmal wenn die Seite, auf der das Bild dargestellt werden soll, muss das ganze Bild aus der DB gelesen werden statt nur den Link auszulesen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Warning: %v%v() [function.%v]: failed to open stream: FrozenFox PHP Tipps 2008 3 29.08.2007 19:54
failed to open stream: Permission denied PHP Tipps 2005-2 4 14.09.2005 19:34
fopen failed to create stream PHP Tipps 2005-2 9 14.09.2005 15:20
Warning: filesize(): SAFE MODE Restriction in effect. nicobischof PHP Tipps 2005-2 9 17.08.2005 19:05
Fehlermeldung: Warning: getimagesize ... failed to open DDogg PHP Tipps 2005-2 2 30.06.2005 11:13
failed to create stream PHP Tipps 2005-2 1 13.06.2005 08:11
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
frage zum arbeiten mit dateien PHP Tipps 2005 21 01.03.2005 13:22
Warning: Couldn't open stream { Soese PHP Tipps 2005 3 11.02.2005 13:49
Fehlermeldung: failed to open stream: Invalid argument in . Helmuth74 PHP Tipps 2005 4 17.01.2005 13:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
windows failed to open stream: url auslesen, lima-city.de pfad zu hochgeladenen dateien, failed to open stream: permission denied upload php getimagesize, php html grafik fehlerhaft stream, failed to open stream: no such file or directory in, failed to open stream php, getimagesize failed to open stream, warning: fopen failed to open stream: no such file or directory in, php failed to open stream fread, failed to open stream: no such file or directory addslashes(fread(fopen($datei, \r\), filesize($datei)));, php stream html to file, php getimagesize failed to open stream permission windows, \$form_data_name\ \$form_data_size\ \$form_data_type\ woher werte

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.