Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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

Předmět Autor Datum
prosím autora o změnu přístupových údajů zda se jedná o pravé. dále, chcete zapisovat na daný hosti…
tomas.kulhanek 12.03.2012 12:52
tomas.kulhanek
Přesně jsem Vás nepochopil, ale jestli myslíte přístupové údaje k FTP účtu, tak jsem to napravil (om…
Vlk89 12.03.2012 15:45
Vlk89
nefunguje to zjevně asi kvůli super globálním parazitům :) ... jinak ty údaje si změňte nuceně na IC…
tomas.kulhanek 12.03.2012 16:02
tomas.kulhanek
No asi jo :-) Jj, údaje jsou v bezpečí.
Vlk89 12.03.2012 16:26
Vlk89
Co vrací funkce fopen ( stačí echo ) nebo potom fwrite ?
hynajs 12.03.2012 13:08
hynajs
Bohužel nechápu co tím myslíte, co vrací fuknce? fopen otevře soubor ke čtení, fread uloží data ze s…
Vlk89 12.03.2012 15:51
Vlk89
fopen vrátí v případě tohoto skriptu proměnnou $fp. To má být pointer na soubor, ale v případě chyby…
hynajs 12.03.2012 15:58
hynajs
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 t…
Vlk89 12.03.2012 16:02
Vlk89
Promena $jmeno neni ve zdrojovem kodu nikde definovna, proto to ani fungovat nemuze. Dale $datum tak…
ERASER 12.03.2012 15:10
ERASER
Zde jsem script trochu poupravil. Nevím ale co s tímto if ($datum!="" && $datum!=""): $www = "$jmeno…
Vlk89 12.03.2012 15:56
Vlk89
Jestli to mohu předělat třeba takhle? if $www = "$jmeno2 bb"; endif; Ano i Ne. http://cz2.php.net/m…
ERASER 12.03.2012 19:08
ERASER
Osobně bych to ve volném čase i klidně přepsal, ale ten člověk jeví trochu zájem, tak ho v tom nechá…
tomas.kulhanek 12.03.2012 19:31
tomas.kulhanek
Jen mě nechte ať se topím :-)
Vlk89 12.03.2012 20:03
Vlk89
radši tě nakopnu správným směrem než to dělat za tebe ;) .. hlavně je to pro mne výhodnějšší časově…
tomas.kulhanek 12.03.2012 20:06
tomas.kulhanek
Nechci dělat po bitvě machra, ale takhle jsem si to taky myslel: $www = "$jmeno2 bb"; rubriky.dat…
Vlk89 12.03.2012 19:42
Vlk89
podívej se na dokumentaci ;) ... file_put_contents("../$jmeno2",$obsah_co_se_ma_do_ tohoto_souboru_…
tomas.kulhanek 12.03.2012 19:44
tomas.kulhanek
Dík moc, mrknu na to. To kódování se nastavuje pouze tahkle? Použitím metatagů? <meta http-equiv="C…
Vlk89 12.03.2012 20:09
Vlk89
také, ale zároveň musíš nastavit i pro všechny soubory. co používáš za program?
tomas.kulhanek 12.03.2012 20:14
tomas.kulhanek
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 PSP…
Vlk89 12.03.2012 20:21
Vlk89
blbě mne chápeš.. v příloze to máš ;) .. toto musíš udělat u všech skriptů (raději)
tomas.kulhanek 12.03.2012 20:24
tomas.kulhanek
Aha, tak to jsem nevěděl, že to k něčemu je :-)
Vlk89 12.03.2012 20:35
Vlk89
No tak jsem něco vymyslel, a je to super, ale ještě jedna maličkost. $cozapsat = "<li><a href='inde…
Vlk89 12.03.2012 21:04
Vlk89
myslím že na to je potřeba nastavit chmod(775), ale to si nejsem jistý, možná bude stačit i 755
tomas.kulhanek 12.03.2012 22:35
tomas.kulhanek
Je tento skript $cozapsat = "<li><a href='index.php?page=$jmeno2'>$jmeno</a></li>"; file_put_conten…
ERASER 13.03.2012 12:39
ERASER
Ano, tento script je v podsložce "prihlaseni" Toto mi funguje: $cozapsat = "<li><a href='index.php?…
Vlk89 13.03.2012 16:28
Vlk89
ano to dává smysl.. / /prihlaseni/muj_skript.php /uloziste/ ty provádíš file_put_contents("a.txt"…
tomas.kulhanek 13.03.2012 16:39
tomas.kulhanek
Heuréka, už to funguje :)) Nakonec jsem to upravil na (a samozřejmě jsem ručně nastavil práva) file… poslední
Vlk89 13.03.2012 19:11
Vlk89
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 Servic…
Vlk89 12.03.2012 16:10
Vlk89

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.

Promena $jmeno neni ve zdrojovem kodu nikde definovna, proto to ani fungovat nemuze. Dale $datum taktez neni nikde definovano. Jinak ten zdrojak je hnus:-/

Jestli to mohu předělat třeba takhle?
if
$www = "$jmeno2 bb";
endif;

Ano i Ne.
http://cz2.php.net/manual/en/control-structures.if .php

Místo tohohle:

if ($datum!="" && $datum!=""):
$www = "$jmeno2 bb";
endif;

nebo tohohle:

if
$www = "$jmeno2 bb";
endif;

Tam dejte:

$www = "$jmeno2 bb";

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

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()

Nechci dělat po bitvě machra, ale takhle jsem si to taky myslel:

$www = "$jmeno2 bb";

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?

  file_put_contents(../$jmeno2)

podívej se na dokumentaci ;) ...

file_put_contents("../$jmeno2",$obsah_co_se_ma_do_ tohoto_souboru_ulozit,FILE_APPEND);

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

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:

<?
$filename = $_GET['prihlas'].".php"; 
if (file_exists("$filename")) { 
    include "$filename"; 
} else {include "hlav.php";}
?>

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?

No tak jsem něco vymyslel, a je to super, ale ještě jedna maličkost.

$cozapsat = "<li><a href='index.php?page=$jmeno2'>$jmeno</a></li>";
file_put_contents("rubriky.dat",$cozapsat,FILE_APPEND);
$cozapsat2 = "<h2>$jmeno<h2>";
file_put_contents("../$jmeno2.php",$cozapsat2,FILE_APPEND);

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.

Je tento skript

$cozapsat = "<li><a href='index.php?page=$jmeno2'>$jmeno</a></li>";
file_put_contents("rubriky.dat",$cozapsat,FILE_APPEND);
$cozapsat2 = "<h2>$jmeno<h2>";
file_put_contents("../$jmeno2.php",$cozapsat2,FILE_APPEND);

v:

v hlavním kořenovém adřesáři mám složku "prihlaseni"

?
Pokud ano, tak skript nemůže fungovat. Můžete sem opsat přesně to chybové hlášení?
A tento skript ti funguje:

<?php
file_put_contents("a.txt","vkladany text");
?>

?

Ano, tento script je v podsložce "prihlaseni"
Toto mi funguje:

$cozapsat = "<li><a href='index.php?page=$jmeno2'>$jmeno</a></li>";
file_put_contents("rubriky.dat",$cozapsat,FILE_APPEND);

Tohle už ne:

$cozapsat2 = "<h2>$jmeno<h2>";
file_put_contents("../$jmeno2.php",$cozapsat2,FILE_APPEND);

A tento základ funguje:

<?php
file_put_contents("a.txt","vkladany text");
?>

Takže teď řeším něco takového:

<?php
file_put_contents("../a.txt","vkladany text");
?>

To nejde a píše mi to co je v přiloženém souboru.

ano to dává smysl..

/
/prihlaseni/muj_skript.php
/uloziste/

ty provádíš

file_put_contents("a.txt","vkladany text");

tak soubor se ukládá do /prihlaseni/a.txt
ale

file_put_contents("../a.txt","vkladany text");

se ukládá do /a.txt
tudíž musíš nastavit práva na zápis pro / (kořenový adresář) a nebo to upravit na

file_put_contents("../uloziste/a.txt","vkladany text");

Heuréka, už to funguje :)) Nakonec jsem to upravil na (a samozřejmě jsem ručně nastavil práva)

file_put_contents("../rubriky/a.txt","vkladany text");

Pač tady nějak nevím jak nastavit práva, to mi nějak nejde, ale to už bych neřešil.

file_put_contents("../a.txt","vkladany text");

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.

Zpět do poradny Odpovědět na původní otázku Nahoru