fopen Problem

Acriss

Gesperrt
Guten Tag,
ich ahbe mir ein paar Sachen zu fopen usw. durchgelesen, und wollte das gleich mal für mein Forum ausprobieren:
PHP:
         $filename =$_POST['filename']; //$filename = "Kategorie";

         if (file_exists($filename))
         	{
                 echo 'Die Kategorie '.$filename.' existiert bereits!';
                 }
         elseif (!file_exists($filename))
         	{
                 $data = "../".$filename.".php";
                 fopen($data, 'w+');
                 }

         else echo 'Es ist ein Fehler aufgetreten';

Ich erhalte aber wieder einen achso verhassten weißen Bildschirm.
error_reporting bringt auch nichts :(
 
PHP:
         $filename =$_POST['filename']; //$filename = "Kategorie";

         if (file_exists($filename))
         	{
                 echo 'Die Kategorie '.$filename.' existiert bereits!';
                 }
         elseif (!file_exists($filename))
         	{
                 $data = "../".$filename.".php";
                 fopen($data, 'w+');
                 }

         else echo 'Es ist ein Fehler aufgetreten';

Erstmal: Der Part hinter else kann nie ausgefuehrt werden, denn entweder existiert die Datei (erster Block wird ausgefuehrt) oder eben nicht (zweiter Block wird ausgefuehrt).
Entsprechend kannst Du Deinen Code schonmal wie folgt kuerzen:
PHP:
         $filename =$_POST['filename']; //$filename = "Kategorie";

         if (file_exists($filename))
         	{
                 echo 'Die Kategorie '.$filename.' existiert bereits!';
                 }
         else
         	{
                 $data = "../".$filename.".php";
                 fopen($data, 'w+');
                 }

Zusaetzlich kannst Du nicht einfach fopen() alleinstehend nutzen, denn es gibt ein Filehandle zurueck was Du fuer weitere Schritte benoetigst.
Also brauchst Du z.B. sowas:
PHP:
$handle=fopen($data,'w+');
Weiterhin ueberpruefst Du ob $filename existiert, willst dann aber $filename.php erstellen, entsprechend wird hier wohl auch immer der else-Part ausgefuehrt werden, da auch nach Erstellung einer neuen Datei diese nicht von file_exists() gefunden wird, da ja nicht auf .php geprueft wird.
Besser waere also
PHP:
if (file_exists($filename.'.php'))
Wenn jetzt nun der else-Part ausgefuehrt wird, gibt es keine Ausgabe, denn dort wird ja nur was gemacht, aber nichts ausgegeben, entsprechend solltest Du auch hier, zumindest waehrend der Entwicklung, eine Ausgabe einbauen damit Du siehst dass dieser Teil ausgefuehrt wurde.
 
Zurück