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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
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
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
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
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

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ě ;-)

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