Webbutveckling PHP - Servern förbjuder skrivning till filer?

Permalänk
Medlem

Webbutveckling PHP - Servern förbjuder skrivning till filer?

Jag har ett enkelt PHP-skript som skriver en POST-parameter till en fil:

<?php
session_start();

if(isset($_SESSION['username'])) {
$message = trim($_POST['message']);
if(strlen($message) > 0) {
$chatlog = fopen("../chatlog.html", "a");
fwrite($chatlog, "<div>{$_SESSION['username']}: {$message}</div>");
fclose($chatlog);
}
}
else echo "failed";

Det fungerar felfritt när jag kör det på localhost med XAMPP, men när jag laddar upp det till webbservern så lyckas jag inte få skriptet att skriva till filen. Kan det vara så att webbservern (som för övrigt ägs av min skola) förbjuder skrivning till filer, eller är det troligtvis något annat fel?

Permalänk
Medlem

filen den öppnar/skapar kanske läggs som skrivskyddad och måste cmoddas om?

Visa signatur

Min dator: Silent Base 600 | 1700X @ 3.9Ghz | MSI Gaming X 1080TI | RM750X | 512Gb M2 | 16Gb 3200mhz Ram | S34E790C @ 3440x1440
Tjejens dator: Define r4 | i5 3570k @ 4.2ghz | GTX Titan | 750w Supernova | 240gb SSD | 32gb ram
Citera/Tagga för svar!

Permalänk
Medlem
Skrivet av Christley:

filen den öppnar/skapar kanske läggs som skrivskyddad och måste cmoddas om?

Jag vet inte vad "cmoddas" innebär, men filen i fråga har jag skapat själv och laddat upp tillsammans med skriptet. Det enda den innehåller är div-element som har skrivits in i den med skriptet.

Permalänk
Medlem
Skrivet av Murloc:

Jag vet inte vad "cmoddas" innebär, men filen i fråga har jag skapat själv och laddat upp tillsammans med skriptet. Det enda den innehåller är div-element som har skrivits in i den med skriptet.

vet inte hur den ska se ut eller hur den ser ut, men http://www.maketecheasier.com/file-permissions-what-does-chmo...

jag hade gissat på att den är skrivskyddad. testa typ:
$fh = fopen($path, 'r') or die('Could not open file');

Visa signatur

Min dator: Silent Base 600 | 1700X @ 3.9Ghz | MSI Gaming X 1080TI | RM750X | 512Gb M2 | 16Gb 3200mhz Ram | S34E790C @ 3440x1440
Tjejens dator: Define r4 | i5 3570k @ 4.2ghz | GTX Titan | 750w Supernova | 240gb SSD | 32gb ram
Citera/Tagga för svar!

Permalänk
Medlem
Skrivet av Christley:

vet inte hur den ska se ut eller hur den ser ut, men http://www.maketecheasier.com/file-permissions-what-does-chmo...

jag hade gissat på att den är skrivskyddad. testa typ:
$fh = fopen($path, 'r') or die('Could not open file');

Jag kopierade din kodrad och ändrade argumentet 'r' till 'a' så den är i skrivläge:
$fh = fopen("log.html", 'a') or die('Could not open file');

'die' triggades och 'Could not open file' skrevs ut på sidan. Alltså borde det vara som jag trodde och servern tillåter inte att jag skriver till filer. Så vitt jag vet är det enda jag kan göra på skolans server att ladda upp filer, har ingen kontrollpanel eller liknande som jag skulle ha hos ett webbhotell. Är det här något som jag kan åtgärda med så pass begränsade rättigheter?

Permalänk
Medlem
Skrivet av Murloc:

Jag kopierade din kodrad och ändrade argumentet 'r' till 'a' så den är i skrivläge:
$fh = fopen("log.html", 'a') or die('Could not open file');

'die' triggades och 'Could not open file' skrevs ut på sidan. Alltså borde det vara som jag trodde och servern tillåter inte att jag skriver till filer. Så vitt jag vet är det enda jag kan göra på skolans server att ladda upp filer, har ingen kontrollpanel eller liknande som jag skulle ha hos ett webbhotell. Är det här något som jag kan åtgärda med så pass begränsade rättigheter?

Förutsätter att din server är en debian/ubuntu maskin.

Logga in på servern med hjälp av SSH och använd kommandot chmod för att ändra rättigheter på filen

Visa signatur

Main dator: i5 750 4Ghz, GTX 770 4GB, Intel SSD 80GB, 8GB Ram
Servern: Core 2 Duo, 4GB Ram, 4x2TB Lagring, Ubuntu Server 12.04