Probleme mit einem Formular

mogmog

Erfahrenes Mitglied
Hallo alle zusammen.


Ich habe ein Problem wenn ich ein Formular auf meinen server hochlade dann bekomme ich diese Fehlermeldung:

Warning: fopen(text1.txt) [function.fopen]: failed to open stream: Permission denied in /is/htdocs/wp1022457_FK2WCDSLEL/www/pokerliga-nordhessen.de/text/text-datei.php4 on line 19

Warning: fwrite(): supplied argument is not a valid stream resource in /is/htdocs/wp1022457_FK2WCDSLEL/www/pokerliga-nordhessen.de/text/text-datei.php4 on line 20

Warning: fclose(): supplied argument is not a valid stream resource in /is/htdocs/wp1022457_FK2WCDSLEL/www/pokerliga-nordhessen.de/text/text-datei.php4 on line 21
Der Text wurde in der Datei gespeichert

An dieser stelle steht im Code:
PHP:
{
	$fhd = fopen("text1.txt", "w");
	fwrite($fhd, $text);
	fclose($fhd);
	echo "Der Text wurde in der Datei gespeichert"; 
}

was ist daran Falsch?

gruß Ralf
 
Hat die Datei die richtigen Zugriffsrechte? Setze es einmal auf 755 zum testen, bzw. 775 falls 755 nicht ausreicht (was es aber sollet).

Das ganze kann auch überprüft werden mit [phpf]is_writable[/phpf] und geändert werden mit [phpf]chmod[/phpf].
 
ich denke schon da wenn ich auf http://www.pokerliga-nordhessen.de/text/text-datei.php4
da sagt er mir das er verbunden ist und wenn ich dann sage senden bakomme ich die fehlermeldung?


das skript sieht so aus:
PHP:
<?php

$conn_id = ftp_connect("----server-----");															// Serverdaten eintragen!
$login_result = ftp_login($conn_id, "-----user-----", "-----pwd-----");	// Bei user den Login für die FTP-Verbindung, bei PWD das zugehörige Passwort eintragen
if($login_result==true)
{
  echo "Verbindung hergestellt<br />&nbsp;<br />";
}
else
{
  echo "Verbindung gescheitert<br />&nbsp;<br />Versuchen Sie es bitte später erneut.";
}

$text=$_POST['text'];
$status=$_POST['status'];

if($status=="speichern")
{
	$fhd = fopen("text1.txt", "w");
	fwrite($fhd, $text);
	fclose($fhd);
	echo "Der Text wurde in der Datei gespeichert"; 
}

$fhd = fopen("text1.txt", "r");
$inhalt=fread($fhd, filesize("text1.txt"));
fclose($fhd);

ftp_quit($conn_id);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<body>
<div>
  <p>
	 <form action="text-datei.php4" method="post">
   Text:<br />
	 <textarea cols="30" rows="15" name="text"><?php echo $inhalt; ?></textarea><br />
	 <input type="submit" name="status" value="speichern" tabindex="0" />
   </form>
	 <br />
	</p>
</div>
</body>
</html>

aber wo soll ich da die werte einstellen?


gruß ralf
 
Ich würde das dann schon gern nur in php machen.

Also wenn ich das richtig vertanden habe muss ich den code:
PHP:
chmod("text1.txt", 755);  
chmod("text1.txt", "u+rwx,go+rx"); 
chmod("text1.txt", 0755);

unter die login daten einfügen aber das funktioniert leider nicht. wo ist denn dann die richtige stelle?

gruß mogmog
 
Sorry, ich bin total verwirrt.

Du kannst leider nicht direkt in der FTP Session per fopen eine Datei öffnen.

Du musst sie erst runterladen ([phpf]ftp_fget[/phpf]), lokal öffnen und verändern, speichern und dann wieder hochladen ([phpf]fput[/phpf]).
 
Jetzt stehe ich auf dem schlauch.

also ich wollte bezwecken per php in eine Datei zu schreiben. Ich komme aber nicht weiter.


:confused:


gruß mogmog
 
Also der Felix hat schon Recht.
Das ist definitiv ein Rechte Problem. Du solltest dich bitte schlaumachen in wie fern deine Rechte auf der Datei im PHP aussehen und dann ggf mal testen. Ggf. sind es manchmal auch deine Ordnerrechte die ein Schreiben in die Datei verhindern.
Also mein Vorschlag : FTP gehen -> Rechte Ändern ;)

dann sollte auch alles gehen.
 
Warum öffnest du deine FTP Verbindung, wenn du nur etwas in eine Datei schreiben willst :confused:

Ansonsten probier es mal so:

PHP:
$file = 'datei.txt';
if($status == 'speichern') {
  if(!is_writable($file)) {
    chmod($file, 0755);
  } else {
    $fp = fopen($file, "w+");
    fwrite($fp, $text);
    echo "Schreiben erfolgreich";
  }
}
if(!isset($fp)) {
  fopen($file, "r");
}
# und so weiter
 
Zuletzt bearbeitet:
Zurück