• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit fopen -.-

__max

Neues Mitglied
Hallo Leute :)

Ich arbeite gerade an einem "Webinterface" für meinen DLNA-Server.
Ich möchte dass die PHP-Datei für jeden Radiobutton eine eigene .txt Datei erstellt welche leer ist.
Aber ich hänge gerade am fopen Befehl...
Geht der Pfad vom www Verzeichnis aus oder vom / Verzeichnis des Ubuntus?

Könnte mir jemand den PHP-Code so anpassen, dass eine eigene Textdatei für jeden Radiobutton erstellt wird ?

HTML:
<html>
<head>
<title> DLNA-Server Shutdown </title>
</head>
<body>



<h1>DLNA-Server Shutdown</h1>

<br />
<form action="test.php" method="post" >


<input type="radio" name="auswahl" value="1"/> In 30 Minuten    <br />
<br />               
<input type="radio" name="auswahl"  value="2"  /> In 60 Minuten<br />
<br />               
<input type="radio" name="auswahl"  value="3" /> In 90 Minuten <br />
<br />               
<input type="radio" name="auswahl" value="4"  /> In 120 Minuten <br />
<br />
<input type="radio" name="auswahl" value="5"  /> Shutdown-Befehl abbrechen <br />
<br />
<input type="submit" name="absenden" value="OK" />

PHP:
<?php

if($_POST["auswahl"] == "1"){
echo 'CHECKED';

}

if($_POST["auswahl"] == "2") {
echo 'CHECKED 2';
}

if($_POST["auswahl"] == "3"){
echo 'CHECKED 3';
}

if($_POST["auswahl"] == "4") {
echo 'CHECKED 4';
}

if($_POST["auswahl"] == "5") {
echo 'Vorgang wird abgebrochen';
}
?>
 
Werbung:
Könnte mir jemand den PHP-Code so anpassen, dass eine eigene Textdatei für jeden Radiobutton erstellt wird ?
Können schon, aber wollen nicht. Das ist hier nämlich kein "Wer macht mir mal"-Forum. Versuche es zuerst einmal selber und zeige uns deinen Lösungsansatz, dann können wir korrigieren
 
Werbung:
Ok, wenn ich jetzt beispielsweise eine neue .php Datei erzeuge nur um zu überprüfen ob es überhaupt klappt mit folgendem Code:

PHP:
<?php
$fp=fopen("datei.txt","r+");

fwrite($fp,"Hallo, ich bin ein String und stehe in der Datei!");

fclose($fp);
?>

Funktioniert es nicht.

Ich versteh den Code so, dass die Variable fp definiert welche in diese datei.txt im www Ordner mit Lesen & Schreiben kann? Und diese auch tut

Wenn ich die Datei ausführe steht in der datei.txt aber nichts...warum?
 
Versuche es mal hiermit
PHP:
<?php
  error_reporting(E_ALL);
  ini_set("display_errors", true);

  $fp = fopen("datei.txt","r+")
      or die ("Can't open file");

  fwrite($fp, "Hallo, ich bin ein String und stehe in der Datei!")
    or die ("Can't write");

  fclose($fp);
?>
 
Warning: fopen(datei.txt): failed to open stream: Permission denied in /var/www/fopen.php on line 5 Can't open file

Ich verwende Ubuntu 12.04
 
Werbung:
Warning: fopen(datei.txt): failed to open stream: Permission denied in /var/www/fopen.php on line 5 Can't open file
Das sagt doch alles aus, oder? Du hast keine Rechte, eine Datei zu öffnen. Entweder liegt es an einer alten datei.txt, die die falschen Rechte hat und/oder das Verzeichnis, in dem die Datei angelegt werden soll, hat nicht die entsprechenden Rechte.
 
Nein, wenn Du das denkst hast Du das Linux-Rechtesystem nicht verstanden. Du rufst die Datei über den Dienst Apache auf, der läuft wiederum mit eigenen Rechten. Wenn das Verzeichnis root gehört, hat der Apache keine Rechte dort irgendetwas anzulegen. Du hast also 2 Lösungsmöglichkeiten:

a) Du schreibst die Datei in ein Verzeichnis auf welches der Apache Schreibrechte hat.
b) Du passt die Zugriffsrechte des Verzeichnisses so an, dass der Apache ein Schreibrecht hat.

Welche Schreibrechte der Apache hat steht in der Apache-Konfiguration, meist ist es ein Nutzer wie apache oder www-data oder www-user.
 
Werbung:
Ok, habe dem www Verzeichnis jetzt dem User www-data zugewiesen & lese&schreibrechte gegeben, klappt aber trotzdem nicht.
 
Gibt es eine alte datei.txt? Wenn nicht, stimmen die Rechte immer noch nicht, ansonsten auch mal den Eigentümer kontrollieren
 
Werbung:
So hier ein Bildschirmfoto der Rechte...
Die .php & HTML-Dateien sind allerding root..ist das normal?

Edit: Wenn ich die Datei.txt auf user-data setze klappt es in die existierende Textdatei zu schreiben.
Erzeugen kann er sie jedoch nicht...
 

Anhänge

  • Bildschirmfoto vom 2013-10-20 17:23:19.png
    Bildschirmfoto vom 2013-10-20 17:23:19.png
    49,8 KB · Aufrufe: 6
Nun ja ich hatte vorher sehr viel verstellt, und so konnte ich Daten nur als root in das www Verzeichnis schieben , also habe ich in Nautilus als root die .php & .html-Dateien erzeugt.

Okey ich habe mir jetzt alles nochmal angesehen und gemerkt das das Datei erstellen mit r+ nicht funktionieren kann :)
Jetzt klappt es, & ich versuche es in meine php Datei zu integrieren.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben