Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
php programmierung für Einsteiger [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
php programmierung für Einsteiger


 
EricFa
05-07-2006, 14:28 
 
Ich arbeite gerade das Buch "PHP 4" von Thomas Theis
Webserver-Programmierung für Einsteiger durch.
Wenn ich die datei ug05.htm aus dem Kapitel G.4 Anhängen an eine Textdatei auf einen Server hochlade und starte, bekomme ich folgende Fehlermeldung:
Warning: fopen(ug05data.txt): failed to open stream: Permission denied in /home/vhosts/ericnorbertfalbe.liveline.de/ug05.php on line 4
Datei konnte nicht zum Schreiben geöffnet werdenZurück zur Eingabe
:( :mad: :confused: :confused:
Die Datei habe ich dort erstellt.
Das Programm müsste sie finden.

 
arkos
05-07-2006, 14:32 
 
mal vorweg: ich habe das buch weder gelesen noch greifbar ;) und ich denke, es geht mir nicht alleine so. :D

"Permission denied" klingt aber eher so, als wäre die datei schreibgeschützt. versuch doch mal ne chmod - änderung.

 
highrise
05-07-2006, 15:04 
 
mögliche gründe:

wie mein vorredner schon sagte: dateimaske falsch gesetzt (der user unter dem der php-prozess läuft hat keine schreibrechte entweder für die datei oder aber im gesamten dir). Lösung: Die schreibrechte mit chmod einstellen.

oder: php läuft im "safe-mode", die datei wurde per ftp erstellt, der user für ftp ist nicht der user für php. Im Safe mode können nur selbst erzeugte dateien wieder verändert werden. Lösung: die Datei nicht per ftp erstellen, sondern von einem anderen php-script erzeugen lassen. oder aber die datei hochladen und anschließend den eigentümer wechseln (chown).

wenn das alles nicht hilft, baseballschläger kaufen und zum provider fahren *sfg*

greetz, high

 
EricFa
05-07-2006, 15:08 
 
Das Buch findest du unter http://www.galileocomputing.de/openbook/php4/index.htm
Es ist dort komplett im Internet.

Du hattest recht.
Ich habe die Datei für freien Zugriff freigegeben.
Und mann kann jetzt Daten an sie senden.
Aber ich habe komischerweise nur ";" im file und keine ganzen Wörter.


Hier ist der Code:
<html>
<body>
<?php
$fp = fopen("ug05data.txt","a");
if ($fp)
{
flock($fp,2);
$nl = chr(13) . chr(10);
fputs ($fp, "$nn;$vn;$sr;$hn;$pz;$st$nl");
echo "Vielen Dank, $vn $nn<p>";
echo "Ihre Angaben wurden gespeichert<p>";
flock($fp,3);
fclose($fp);
}
else
{
echo "Datei konnte nicht zum";
echo " Schreiben geöffnet werden";
}
?>
Zurück zur <a href="ug05.htm">Eingabe</a>
</body>
</html>

 
hall
05-07-2006, 15:14 
 
stichwort: register globals

$_POST['nn'] etcpp

grüße

 
arkos
05-07-2006, 15:45 
 
$_POST['nn'] etcpp

und zu dem stichwort: ich würde dir empfehlen, vielleicht doch gleich mit einem php5-buch zu lernen. wie du an $_POST siehst, gab es doch die eine oder andere änderung.

 
TobiaZ
05-07-2006, 17:54 
 
und dein error_reporting hochschrauben. sieh Regeln.

 
EricFa
05-07-2006, 19:14 
 
Wenn ich $_POST['nn'] benutze, bekomme ich folgende Fehlermeldung:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/vhosts/ericnorbertfalbe.liveline.de/ug05.php on line 9

Wo finde ich etwas über den $_POST[''] Befehl?

 
Happy Nihilist
05-07-2006, 19:16 
 
Original geschrieben von EricFa

Wo finde ich etwas über den $_POST[''] Befehl?
Hier: http://de.php.net/manual/de/reserved.variables.php#reserved.variables.post

 
combie
05-07-2006, 19:18 
 
$_POST ist kein Befehl!!
Sondern ein superglobales Array!!

Suche mal nach "superglobal array post get"

 
Happy Nihilist
05-07-2006, 19:21 
 
Original geschrieben von combie
$_POST ist kein Befehl!!
Sondern ein superglobales Array!!
Das wollte ich auch noch schreiben, aber mit Höhrer am Ohr will man nicht so viel tippen ;)

 
EricFa
06-07-2006, 07:14 
 
Was genau ist ein superglobales Array? :confused: :confused:
Und wie bekomme ich die Variablen in das Textfile?

 
hall
06-07-2006, 09:19 
 
wie man strings richtig benutzt:

http://php3.de/manual/de/language.types.string.php

in deinem fall

fputs ($fp, "$_POST[nn];$vn;$sr;$hn;$pz;$st$nl");

lesen:

http://de2.php.net/manual/de/language.variables.predefined.php

 
arkos
06-07-2006, 10:20 
 
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'

das schreit aber nicht danach, dass dein $_POST['nn'] falsch ist. der ist richtig geschrieben. du hast in oder in der nähe von zeile neun einen einfachen syntax-fehler.

 
EricFa
08-07-2006, 12:24 
 
Wieso nur für die Variable nn?

 
hall
08-07-2006, 12:44 
 
Original geschrieben von EricFa
Wieso nur für die Variable nn?

natürlich für alle die du per post methode empfängst :rolleyes:

 
madmaurice
11-07-2006, 22:03 
 
Kleine Frage am Rande: Kann man so ein "superglobales" Array selber definieren? und wenn ja, wie?
thx im vorraus

 
combie
11-07-2006, 22:24 
 
Wieso ein neues superglobales Array,
:D du hast doch schon eins :D

$GLOBALS

Das reicht doch !!

PS:
Ja, wenn man php neu kompiliert, gibts da (meines Wissens) eine Erweiterung mit der man selbst solche Arrays anlegen kann. Das halte ich aber für völlig Sinnfrei wenn man portable Programme schreiben will.

 
madmaurice
15-07-2006, 09:13 
 
ich wollt eine eigenes machen, da ich ein CMS progge und da eine $CMS variable einfügen wollte, die Systeminfos und diverse pfadinfos speichert und $GLOBALS is mir dann net gut genug.

was is besser:
$CMS["rootpath"];
oder
$GLOBALS["CMS"]["rootpath"];

(denk mal scharf nach: das erste natürlich)

EDIT: geht das net irgendwie mit global $CMS = array(); oder so

 
combie
15-07-2006, 10:35 
 
evtl suchst du:
http://www.go-pear.org/package/Config
oder das Singleton Design Pattern:
http://www.php.net/manual/de/language.oop5.patterns.php

Weil, die Benuztung von Globalen Variablen, zählt in diesen Zeiten der OOP, zum schlechten Stil!!

- -

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