Eroare failed to open stream - In exemplu din carte PHP 4
Scris: Vin Aug 01, 2014
Salutări
Sunt începător în PHP şi mă confrunt cu problema de mai sus. Este vorba despre un contor pentru numărul de deschideri ale unei pagini, şi este luat din cartea lui Bill McCarty - PHP 4, Editura Teora, 2002. Codurile sunt următoarele:
Primul fişier denumit "contor" salvat cu extensia .php:
Şi al doilea denumit "contor-test", salvat cu extensia .php:
În carte se specifică, crearea unui fişier ".dat", pe care l-am creat dintr-un fişier text, schimbându-i extensia în .dat şi pe care l-am plasat în acelaşi folder, denumindu-l "contor-test".
Când execut al doilea fişier în webserver primesc următoarul avertisment:
De asemenea în carte este ascuns acest avertisment prin intermediul caracterului @ la linia: , în faţa lui fopen.
Aşadar îmi rămâne:
Întrebarile mele sunt : De ce nu poate deschide fişierul? Îi trebuie o permisiune specială PHP-ului? Cum verific dacă are permisiune sau nu? Din ce am înteles i-ar trebui o permisiune 755 (rwxr-xr-x).
Mulţumesc anticipat pt. ajutor!
Sunt începător în PHP şi mă confrunt cu problema de mai sus. Este vorba despre un contor pentru numărul de deschideri ale unei pagini, şi este luat din cartea lui Bill McCarty - PHP 4, Editura Teora, 2002. Codurile sunt următoarele:
Primul fişier denumit "contor" salvat cu extensia .php:
Cod: Selectaţi tot
<?php
$PHP_SELF=$_SERVER['PHP_SELF']; //Declararea variabilei am făcut-o eu, pt. că în carte nu era, sper că e bine
$cfile= basename($PHP_SELF) . ".dat";
$fh= fopen($cfile, "r+");
if (!$fh) {
die ("<br/>Nu a fost deschis fisierul <i>$cfile</i>.");
}
$s= fgets($fh, 6);
$count= (int) $s;
$count= $count + 1;
$count= str_pad($count, 6);
rewind ($fh);
fwrite($fh, $count);
echo "$count";
fclose($fh);
?>
Cod: Selectaţi tot
<html>
<head>
<title>Contor-test.php</title>
</head>
<body>
Aceasta pagina a fost deschisa de <b>
<?php include "contor.php"?>
</b> ori.
</body>
</html>
Când execut al doilea fişier în webserver primesc următoarul avertisment:
Cod: Selectaţi tot
Warning: fopen(contor-test.php.dat): failed to open stream: No such file or directory in (calea fişierului)\contor.php on line 4
Cod: Selectaţi tot
$fh= fopen($cfile, "r+");
Aşadar îmi rămâne:
Cod: Selectaţi tot
Aceasta pagina a fost deschisa de
Nu a fost deschis fisierul contor-test.php.dat.
Mulţumesc anticipat pt. ajutor!