Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Datei schreiben (https://www.delphipraxis.net/82334-%5Bphp%5D-datei-schreiben.html)

Chrissi91 11. Dez 2006 13:53


[PHP] Datei schreiben
 
Hi,

ich möchte in PHP eine Datei überschreiben mit folgendem Code:

$handle = fopen("../news.php","w");
fwrite($handle, $text);
fclose($handle);

Aber der Server gibt immer folgende Fehler aus:

Zitat:

Warning: fopen(../news.php) [function.fopen]: failed to open stream: Permission denied in /srv/www/vhosts/pyrgo.de/httpdocs/admin/news.php on line 15

Warning: fwrite(): supplied argument is not a valid stream resource in /srv/www/vhosts/pyrgo.de/httpdocs/admin/news.php on line 16

Warning: fclose(): supplied argument is not a valid stream resource in /srv/www/vhosts/pyrgo.de/httpdocs/admin/news.php on line 17
Ich habe diesen Code so zig mal bei Google gefunden. Aber warum zeigt er bei mir einen Fehler an. Der Code schaut doch ganz gut aus, oder nicht?

Grüße aus Berlin

Chrissi91

alcaeus 11. Dez 2006 13:54

Re: [PHP] Datei schreiben
 
Ja, sieht er. Bist du dir aber sicher, dass der Web-Benutzer Schreibrechte in dem Ordner hat? Meistens musst du mit Hilfe von chmod die Rechte des Ordners auf 777 setzen, damit du was schreiben kannst. Dies sollte mit jedem halbwegs faehigem FTP-Programm moeglich sein.

Greetz
alcaeus

Chrissi91 11. Dez 2006 14:33

Re: [PHP] Datei schreiben
 
Nein, bin ich nicht. :shock:

Ich bin aber gerade nicht zu Hause. Bin bei einem Freund, der etwas zurückgeblieben ist und kein FTP - Programm auf dem Rechner hat. Ich teste es aber mal zu Hause. Danke für deine Hilfe.

Chrissi91

Chrissi91 11. Dez 2006 17:58

Re: [PHP] Datei schreiben
 
Hi,

es klappt. Nur ist mir noch ein Fehler aufgefallen, der den Schreib- und Lesevorgang betrifft.

Ich bastel mir ja gerade ein kleines CMS für mich. Es wird z.B. die Datei "news.php" eingelesen und in ein Textfeld geladen. Dann kann ich den Programmiercode verändern und speichern. Aber es gibt ein Problem:

Ich habe den Code beim Laden so bekommen:

Code:
<?php include_once(\"header.php\"); ?>
<h3>News</h3>


[b]01.01.2007[/b]



Die Seite <a href=\"http://www.pyrgo.de/\">Pyrgo.de</a> hat jetzt ein neues Design, ein verbessertes CMS (Content Management System) und ein ausgefeiltes Newslettersystem. Ich finde, dass das neue Design von Cordobo mehr her macht und durch die hellere Farbwahl ansprechender wirkt. Außerdem lassen sich in diesem Template leichter Menüumstrukturierungen vornehmen.


<?php include_once(\"footer.php\"); ?>
Und nach mehrmaligem Verändern sieht es so aus (DAmit meine ich, ich habe geladen, gespeichert, geladen, gespeichert, etc.):

Code:
<?php include_once(\\\\\\\"header.php\\\\\\\"); ?>
<h3>News</h3>


[b]01.01.2007[/b]



Die Seite <a href=\\\\\\\"http://www.pyrgo.de/\\\\\\\">Pyrgo.de</a> hat jetzt ein neues Design, ein verbessertes CMS (Content Management System) und ein ausgefeiltes Newslettersystem. Ich finde, dass das neue Design von Cordobo mehr her macht und durch die hellere Farbwahl ansprechender wirkt. Außerdem lassen sich in diesem Template leichter Menüumstrukturierungen vornehmen.


<?php include_once(\\\\\\\"footer.php\\\\\\\"); ?>
Woran könnte es liegen. Der Code schaut wie folgt aus:

Code:
<?php
  session_start();
  include_once("header.php");
?>

<h3>Administration</h3>


<?php
  if ($_SESSION['password'] == "11c1fbc072d4c56e51b88049845af052"){
    $filename = "../news.php";
    $handle = fopen ($filename, "rb");
    $inhalt = fread ($handle, filesize ($filename));
    fclose ($handle);
    echo("[b]Hier k&ouml;nnen Sie die News &auml;ndern.[/b]

<form action=\"$PHP_SELF\" method=\"post\"><textarea rows=\"20\" cols=\"50\" name=\"text\">".$inhalt."</textarea>

<input type=\"submit\" value=\"Speichern\" name=\"save\"></form>");
   if ($_POST['save']!=""){
      $handle = fopen("../news.php","w");
      fwrite($handle, $text);
      fclose($handle);
    }
  } else {
   echo("[b]Sie sind nicht berechtigt auf diese Seite zuzugreifen.[/b]

<form action=\"<?php $PHP_SELF ?>\" method=\"post\">[b]Login:[/b]<input type=\"password\" name=\"pw\" size=\"20\"><input type=\"submit\" name=\"submit\" value=\"Login\"></form>");
 
    if(md5($pw) == "11c1fbc072d4c56e51b88049845af052"){
      $_SESSION['password'] = md5($pw);
      echo("<script LANGUAGE=\"JavaScript\">top.location.href='index.php'</script>");
    }
  }

include_once("footer.php"); ?>
Ich finde den Fehler nicht ganz logisch. Oder ihr?

alcaeus 12. Dez 2006 00:12

Re: [PHP] Datei schreiben
 
Den Code tu ich mir heute Abend nicht mehr an, aber morgen dafuer. Ich weiss schon was das Problem ist, aber ich brauch momentan Schlaf :P

Greetz
alcaeus

alcaeus 12. Dez 2006 15:37

Re: [PHP] Datei schreiben
 
Moin,

mit Verlaub...das ist der wohl schrecklichste Code, den ich in den letzten Jahren gesehn hab.
Du weisst hoffentlich dass du sowas:
Code:
echo("<input type=\"text\" name=\"foo\" value=\"$foo\" />");
nicht machen musst, sondern auch das:
Code:
echo('<input type="text" name="foo" value="'. $foo .'" />');
oder sogar das:
Code:
>?
<input type="text" name="foo" value="<?php echo $foo ?>" />
<?php
schreiben kannst? Vor allem letzteres waere fuer deinen Code nicht schlecht.

Zitat:

Zitat von Chrissi91
Ich bastel mir ja gerade ein kleines CMS für mich. Es wird z.B. die Datei "news.php" eingelesen und in ein Textfeld geladen. Dann kann ich den Programmiercode verändern und speichern. Aber es gibt ein Problem:

Guck mal ob bei deinem Server magic_quotes_gpc an ist. Ich geh mal von ja aus, aber ich dachte dass " nicht escaped wird.
Weiters, verwendest du $text direkt als autoglobal, oder setzt du das auch irgendwo? Wenn du jetzt sagst "ich weiss nicht was autoglobals sind, aber ich setz es nirgends", dann sag gleich "autoglobals" und du kriegst die Belehrung bezueglich register_globals.
Und bitte, wenn du das naechste Mal Code postest, bitte denk dran dass er von Leuten gelesen wird. Bei solchem Code wundern mich echt keine Bugs mehr...

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz