localhost-on nem tudok (a php script nem tud) .txt file-ba írni
Egy vendégkönyv müködését bogarászom, ami txt-be menti a bejegyzéseket. A php rész nem hajlandó beírni semmit a txt-be. Ha feltöltöm egy serverre, és a txt-nek irásjogot adok (777), akkor müködik.
DE ITTHON nem tudom mit csináljak. Widows (98) megy a gépen, itt nincs olyan, hogy 777.
Az nem buli, hogy minden egyes kódbeli változtatás után -kapcsolódás a szerverhez -feltöltés/felülírás -böngészöben megnézni/kipróbálni -megint változtatni -folytköv... Közben a kapcsolat is megszakad.
Itthon a htdocs-ban levö file-t nyugodtan szerkeszthetem, és egy mentés/böngészö-frissítés után látom, hogy mit rontottam el már megint(ami addig jó volt)!
Mit kell csinálni?
■ DE ITTHON nem tudom mit csináljak. Widows (98) megy a gépen, itt nincs olyan, hogy 777.
Az nem buli, hogy minden egyes kódbeli változtatás után -kapcsolódás a szerverhez -feltöltés/felülírás -böngészöben megnézni/kipróbálni -megint változtatni -folytköv... Közben a kapcsolat is megszakad.
Itthon a htdocs-ban levö file-t nyugodtan szerkeszthetem, és egy mentés/böngészö-frissítés után látom, hogy mit rontottam el már megint(ami addig jó volt)!
Mit kell csinálni?
nem azzal lesz gond...
VAGY: az fájl elérhetősége nem jól van megadva.
HA mutatnál részletet, hogy hogyan próbál írni a fájlba, akor többet tudnánk mondani.
Ha abszolút elérési utakat használ a script Win alatt akkor 'C:/valahol/itt/lista.txt' formában ad meg. Meg lehet adni így is: 'c:\\valahol\\itt\\lista.txt', de ilyenkor egyrészt figyelni kell arra, hogy a visszaperekből kettőt is rakni kell (tipikus hibaforrás), illetve nem ajánlot, mert igy a linux/win-es 'vegyeshasználatkor' figyelni kell a perek milyenségére, ha feldolgozod a változó tartalmát valahol...
Amúgy kapcsolat fenntartására lehet időnként parancsot kiadatni még a total commanderrel is, íy nem szakad meg, mert aktivitást mutatsz... ;)
A serveren müködik ugyanaz a script
(Amúgy az eredetit a netröl töltöttem le, most hirtelen nem tudom a címet)
http://localhost/vendegkonyv3/kiserlet.php -itt nem megy,
http://.../vendegkonyv3/kiserlet.php -itt megy.
Itt van egy részlet a kódból:
$f = "uzeno.txt";
...>egyéb<...
if ($_POST['uzenet'] !== "" && $_POST['nev']!== "" && $_POST['email'] !== "")
{//adatok ellenőrzése
$handle = fopen($f,"a+"); //ha igaz, ez nyitja meg írásra
$tomb = fread($handle,filesize($f));
$uzenetek = explode ("n",$tomb);
$aktualis = count($uzenetek);
$uzenet = $_POST['uzenet'];
$uzenet = htmlspecialchars($uzenet);
$uzenet = str_replace("n","<br />",$uzenet);
$row = $_POST['nev']."|";
$row .= $_POST['email']."|";
$row .= $uzenet."|";
$row .= date("Y-m-d H:i:s", time())."|";
$row .= $aktualis."n";
fwrite($handle,$row); //ha nem tévedek ez kellene beírjon
header ("location: kiserlet.php");
}...
igazából...
Mindenesetre ahol nem megy, ott ugye a php.ini-ben a következő beállítások vannak?
display_errors = On
error_reporting = E_ALL
register_globals = Off
Az első az, hogy mutassa-e a weboldalon a hibákat.
A második, hogy milyen típusú hibákat mutasson?
A harmadik meg bitzonsági beállítás, de mivel $_POST-tal dolgozol, a vendégkönyv tudja ezt.
Ha ezek így vannak, akkor próbáld meg:
=======================
Innentől kezdve csöppet más téma, én kötözködésben vagyok nagy ;)
A legegyszerűbb, (már ha maradni akarsz a síma szöveges fájloknál):
1.) Biztonság: A bejövő adatokra htmlentities(), vagy strip_tags() alkalmazása, hogy ne legyenek benne HTML-TAG-ok
2.) Adatok helyessége: ez csak azt nézi, hoyg nem üres-e a mező. Ha szóközt ütök be, már nem üres string, igaz a " " sem sokkal értékelhetőbb adat, pláne nem e-mailcímnél... ;)
2.) Egyszerűség: tárolásra tök fölösleges ilyen struktúrát alkalmazni. A var_export( $var, true); egy olyan stringet ad vissza, amelyik egy *.php fájlba mentve include()-olható.
Tehát egy gyors másik megoldás, nem ellenőrizve, csak begépelve:
Illetve: ha lapozós megjelenítést szeretnél, akkor is az összes bejegyzést be kell ovlasnod, akár tetszik, akár nem. (Persze lehet fájlba cache-elni, de ilyen szintű akalmazásnál ez kevésbé szempont)
Szintén probléma, ha egyidőben vársz több látogatót! Az adatbázisnak nem gond, de itt előfordulhat, hogy pl. két egyszerre írt bejegyzés elveszik. Igaz, normális szolgáltatóknál, normális körülmények között nem nagy az esély erre.
Velem lehet kötözködni!
2. Kb. két hónappal ezelött még azt se tudtam hogy néz ki egy php file!
Sokkal többet még most se tudok. Hogy öszinte legyek, nem a látogatóknak akarom kirakni (majd egyszer, ha már értek is hozzá), hanem meg szeretném érteni a php scriptek müködését, és megtanulni írni.
3. A kódot letöltöttem, az n-ek így voltak benne. Mivel már találkoztam máshol velük ebben a formában (\n), kicsit csodálkoztam, de nem bántottam. Arról nem beszélve, hogy feltöltve müködik, csak itthon nem.
Amit Te irtál azt is megpróbálom "elrontani", vagy alkalmazni.
A tesztfajt létrehozza. Kipróbáltam. Söt, ha nincs uzeno.txt, akkor azt is létrehozza, és az elsö üzenetet beleírja. Másodjára már nem ír bele semmit! Az "n" kontra "\n" lehet a hiba?
Zavarlak e-mailben is.