PHP přepisování souboru
Zdravím, používám přiložený soubor jako zpracování dat z formuláře, jedná se o proměnou $jmeno, celý proces se provede jakoby bez chybi, ale když kouknu do souboru rubriky.dat nic se nezmění. Tento script jsem kdysi používal na několika webech, ale teď mi prostě nechce fungovat. Nevíte čím by to mohlo být? Používám jej na ic.cz, všechny potřebné soubory mám ve složce prihlaseni, nevím jestli třeba není možné aby v tom byl problém. Všem souborům a adresářům jsem nastavil 777. Nedivte se kódu, nejsem 100% PHPéčkář, tudíž ho neumím pěkně vyhladit. Prosím poraďte. Kuba
prosím autora o změnu přístupových údajů zda se jedná o pravé.
dále, chcete zapisovat na daný hosting do dané složky co je vedle tohoto skriptu? zda ano, nepoužívejte ftp, ale funkci file_put_contents()
Přesně jsem Vás nepochopil, ale jestli myslíte přístupové údaje k FTP účtu, tak jsem to napravil (omylem jsem je tam zanechal). Přikládám nový soubor. A ještě jednou lépe popíši, v hlavním kořenovém adřesáři mám složku "prihlaseni", ve které je formulář "vytvorrubriku.php" ten pošle proměnou "$jmeno" do souboru "vytvorrubriku1.php", zde se to všechno zpracuje a vytvoří mi to složku v hl. adresáři podle proměnné "$jmeno" poté ještě chci aby mi uložila do souboru "../prihlaseni/rubriky.dat" proměnou např. $www = "$jmeno2 bb"; zde vzniká problém v souboru se nic nezmění. Složka bez diakritiky se vytvoří, to je OK. Ale v souboru nic. A tento script mi kdysi fungoval.
nefunguje to zjevně asi kvůli super globálním parazitům :) ... jinak ty údaje si změňte nuceně na IC.cz jelikož v hlavním příspěvku ty údaje stále jsou ;)
No asi jo Jj, údaje jsou v bezpečí.
Co vrací funkce fopen ( stačí echo ) nebo potom fwrite ?
Bohužel nechápu co tím myslíte, co vrací fuknce? fopen otevře soubor ke čtení, fread uloží data ze souboru do proměnné $data, fwrite zapíše do souboru, konkrétně to mám z toho důvodu abych nový text měl navrchu.
fopen vrátí v případě tohoto skriptu proměnnou $fp.
To má být pointer na soubor, ale v případě chyby false. Viz
function.fopen.php
No a o to mi šlo - ověřit, zda nevrací z nějakých důvodů false.
Obdobně fwrite. Nevrací false ?
No nevrací nic, normálně se po odeslání formuláře, ukáže nová bílá stránka a potěch 5 vteřinách co tam mám se refreshne zpět, žádná chyba neproblikne.
Promena $jmeno neni ve zdrojovem kodu nikde definovna, proto to ani fungovat nemuze. Dale $datum taktez neni nikde definovano. Jinak ten zdrojak je hnus
Zde jsem script trochu poupravil. Nevím ale co s tímto
if ($datum!="" && $datum!=""):
$www = "$jmeno2 bb";
endif;
Jestli to mohu předělat třeba takhle?
if
$www = "$jmeno2 bb";
endif;
Zde jsem přidal "bb" to také nefuguje, ikdyž proměnná nebude s tejně mi to tam musí připsat "bb", je to tak ne?
$www = "$jmeno2 bb";
Ano i Ne.
http://cz2.php.net/manual/en/control-structures.if .php
Místo tohohle:
Tam dejte:
Existuje ve stejném adresáři, kde je daný skript i soubor rubriky.dat
Jinak bych se měl ještě zastavit u dalších věcí ve zdrojovém kódu protože je to prasečina, ale hledám jen chyby
Přesně jak říkal Kulis91, ale to by to chtělo asi celý ten kód překopat
Osobně bych to ve volném čase i klidně přepsal, ale ten člověk jeví trochu zájem, tak ho v tom necháme lehce "topit" ať se to naučí...
rozdíl v tom jak jsem říkal je ten, že file_put_contents přistupuje přímo k souborům a né přes FTP apod.. tudíž žádná bezp. díra....
Jen mě nechte ať se topím
radši tě nakopnu správným směrem než to dělat za tebe ;) .. hlavně je to pro mne výhodnějšší časově :)
Nechci dělat po bitvě machra, ale takhle jsem si to taky myslel:
rubriky.dat a formulář a script jsou v tom samém adresáři.
Určitě by to za překop stálo, ale k tomu třeba dojdu, někdy.
No a tuhle tu funkci file_put_contents() nevím přesně jak tam zařadit
Tak nějak?
podívej se na dokumentaci ;) ...
využívej prosím php.net
následně stáhni si nějaký program co ti bude napovídat, např. netbeans
pošli mi sem oba ty soubory, kouknu na to co s tím dokážu udělat ;) (následně ti to i okomentuju aby ses něco naučil)
p.s.: prosím využívej kódování UTF-8, osobně jsem měl s Windows-1250 samé problémy
Dík moc, mrknu na to. To kódování se nastavuje pouze tahkle? Použitím metatagů?
také, ale zároveň musíš nastavit i pro všechny soubory. co používáš za program?
V tuto chvíli žádnej, používám WebFTP co mají na IC.cz, nic moc ale dá se. Jinak asi se vrátím k PSPad, ten se mi velice líbil. Nastavit pro všechny soubory? Konkrétně to mám teď tak že prihlaseni.php (něco jako index.php) je hlavní, má nějaký menu a prostor:
pro otevírání jiných odkazů, třeba právě vytvorrubriku.php
Toto je jako taková moje uživatelská sekce formulářů, atd. pro to abych mohl přidávat odkazy, rubriky na hlavní web (index.php). Ten netbeans je něco jako PSPad?
blbě mne chápeš.. v příloze to máš ;) .. toto musíš udělat u všech skriptů (raději)
Aha, tak to jsem nevěděl, že to k něčemu je
No tak jsem něco vymyslel, a je to super, ale ještě jedna maličkost.
No ale teď zase mám problém, při založení $jmeno2.php, mě vypisuje chybu, že nemá práva, a ted bych asi měl něco přidat do file_put_contents("../$jmeno2.php",$cozapsat2,FILE _APPEND); Že jo?
A ten soubor se ani nezaloží.
Nějakej chmod tam nějak přidat, pač do souboru budu chtít někdy přidávat další text.
myslím že na to je potřeba nastavit chmod(775), ale to si nejsem jistý, možná bude stačit i 755
Je tento skript
v:
?
Pokud ano, tak skript nemůže fungovat. Můžete sem opsat přesně to chybové hlášení?
A tento skript ti funguje:
?
Ano, tento script je v podsložce "prihlaseni"
Toto mi funguje:
Tohle už ne:
A tento základ funguje:
Takže teď řeším něco takového:
To nejde a píše mi to co je v přiloženém souboru.
ano to dává smysl..
ty provádíš
tak soubor se ukládá do /prihlaseni/a.txt
ale
se ukládá do /a.txt
tudíž musíš nastavit práva na zápis pro / (kořenový adresář) a nebo to upravit na
Heuréka, už to funguje Nakonec jsem to upravil na (a samozřejmě jsem ručně nastavil práva)
Pač tady nějak nevím jak nastavit práva, to mi nějak nejde, ale to už bych neřešil.
Chtěl bych všem moc poděkovat, že mi pomohli to vyřešit a přiučit mě
Ještě bych možná měl připomenout, že občas jak to tak zkouším třeba na 10 pokus se mi ukazuje
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Myslím si teda, že jde spíš o to, že už ten hosting asi štvu.