Autor Zpráva
Coompiik
Profil
Dobrý den,
Trošku jsem se koukl na php a splácal dohromady tohle: Nevíte kde je v tom chyba? nefunguje mi to:
Zpracuj.php
<?php
if(isset($_POST['send'])) {
$banner = $_POST['banner'];  
$bcg = $_POST['bcg'];
$name = $_POST['name'];
$vodoznak = $_POST['vodoznak'];
$mail = $_POST['mail'];
$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$v3 = $_POST['v3'];
$v4 = $_POST['v4'];
$v5 = $_POST['v5'];
$c1 = $_POST['c1'];
$c2 = $_POST['c2'];
$c3 = $_POST['c3'];
$c4 = $_POST['c4'];
$v5 = $_POST['c5'];
$vodoznakp = $_POST['vodoznakp'];
$souhlasim = $_POST['souhlasim'];
 
if($souhlasim!='A') { 
echo"Někde se vyskytla chyba, omlouváme se!";
die();
}
 
$path = 'prukaz-wanted''/'.$name.'.html';
 
if(!is_dir($nick)) {
mkdir('prukaz-wanted', 0777); # chmod 777
$file = fopen($path, 'a+');
fwrite($file, 'Server: '.$name.'<br>Miniatura: '.$banner.'<br>Pozadí: '.$bcg.'<br>VodoznakPos '.$vodoznak.'<br>E-mail: '.$mail.'<br>1 Řádek: '.$v1.'<br>2 Řádek: '.$v2.'<br>3 Řádek: '.$v3.'<br>4 Řádek: '.$v4.'<br>5 Řádek: '.$v5.'<br>Barva 1 Řádek: '.$c1.'<br>Barva 2 Řádek: '.$c2.'<br>Barva 3 Řádek: '.$c3.'<br>Barva 4 Řádek: '.$c4.'<br>Barva 5 Řádek: '.$c5.'<br>Smazat vodoznak: '.$vodoznakp.'');
fclose($file);
} else { 
if(!file_exists($path)) {
$file = fopen($path, 'a+');
fwrite($file, 'Server: '.$name.'<br>Miniatura: '.$banner.'<br>Pozadí: '.$bcg.'<br>VodoznakPos '.$vodoznak.'<br>E-mail: '.$mail.'<br>1 Řádek: '.$v1.'<br>2 Řádek: '.$v2.'<br>3 Řádek: '.$v3.'<br>4 Řádek: '.$v4.'<br>5 Řádek: '.$v5.'<br>Barva 1 Řádek: '.$c1.'<br>Barva 2 Řádek: '.$c2.'<br>Barva 3 Řádek: '.$c3.'<br>Barva 4 Řádek: '.$c4.'<br>Barva 5 Řádek: '.$c5.'<br>Smazat vodoznak: '.$vodoznakp.'');
fclose($file);
} else { 
echo' Někde se vyskytla chyba, omlouváme se!';
  } 
}
}
?>
<p>Pokud nad tímto textem teď zrovna nevidíš errorovou zprávu očekávej mail od media@coompiik.jecool.net!
Předem děkuji za odpověď
Adam16
Profil
skús napísať akú chybu ti to vypisuje a na akom riadku....
Tori
Profil
ř.26: $path = 'prukaz-wanted''/'.$name.'.html'; - ty dva apostrofy jsou navíc, syntaktická chyba.
ř.28: odkud berete proměnnou $nick?
Funkce mkdir a fopen mohou vracet false v případě, že nepůjde vytvořit složku nebo soubor, to byste mohl případně taky ošetřit nějakou podmínkou.
Coompiik
Profil
Adam16:
Žádnou mi to nevypisuje stránka nelze zobrazit, nevím kde ty chyby zjistit promiň.

Tori:
' smažu, napíšu co to udělá a proměnou nick jsem nejprve plánoval ale pak jsem jí předělal na prukaz-wanted, děkuji na upozornění předělám a napíšu co se bude dík
Update:
Tak sem to udělal, nový kód:
<meta charset="UTF-8">
<?php
# Zpracuj.php
if(isset($_POST['send'])) {
$banner = $_POST['banner'];  
$bcg = $_POST['bcg'];
$name = $_POST['name'];
$vodoznak = $_POST['vodoznak'];
$mail = $_POST['mail'];
$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$v3 = $_POST['v3'];
$v4 = $_POST['v4'];
$v5 = $_POST['v5'];
$c1 = $_POST['c1'];
$c2 = $_POST['c2'];
$c3 = $_POST['c3'];
$c4 = $_POST['c4'];
$v5 = $_POST['c5'];
$vodoznakp = $_POST['vodoznakp'];
$souhlasim = $_POST['souhlasim'];
$nick = $_POST['nick'];
 
if($souhlasim!='A') { 
echo"Někde se vyskytla chyba, omlouváme se!";
die();
}
 
$path = .$nick.'/'.$name.'.html';
 
if(!is_dir($nick)) {
mkdir($nick, 0777); # chmod 777
$file = fopen($path, 'a+');
fwrite($file, 'Server: '.$name.'<br>Miniatura: '.$banner.'<br>Pozadí: '.$bcg.'<br>VodoznakPos '.$vodoznak.'<br>E-mail: '.$mail.'<br>1 Řádek: '.$v1.'<br>2 Řádek: '.$v2.'<br>3 Řádek: '.$v3.'<br>4 Řádek: '.$v4.'<br>5 Řádek: '.$v5.'<br>Barva 1 Řádek: '.$c1.'<br>Barva 2 Řádek: '.$c2.'<br>Barva 3 Řádek: '.$c3.'<br>Barva 4 Řádek: '.$c4.'<br>Barva 5 Řádek: '.$c5.'<br>Smazat vodoznak: '.$vodoznakp.'');
fclose($file);
} else { 
if(!file_exists($path)) {
$file = fopen($path, 'a+');
fwrite($file, 'Server: '.$name.'<br>Miniatura: '.$banner.'<br>Pozadí: '.$bcg.'<br>VodoznakPos '.$vodoznak.'<br>E-mail: '.$mail.'<br>1 Řádek: '.$v1.'<br>2 Řádek: '.$v2.'<br>3 Řádek: '.$v3.'<br>4 Řádek: '.$v4.'<br>5 Řádek: '.$v5.'<br>Barva 1 Řádek: '.$c1.'<br>Barva 2 Řádek: '.$c2.'<br>Barva 3 Řádek: '.$c3.'<br>Barva 4 Řádek: '.$c4.'<br>Barva 5 Řádek: '.$c5.'<br>Smazat vodoznak: '.$vodoznakp.'');
fclose($file);
} else { 
echo' Někde se vyskytla chyba, omlouváme se!';
  } 
}
}
?>
<p>Pokud nad tímto textem teď zrovna nevidíš errorovou zprávu očekávej mail od media@coompiik.jecool.net!
Vyřešil jsem to tak že jsem dal do formuláře input hidden s value prukaz-wanted, to samí, prázdná stránka a nic se negenerovalo.
peta
Profil
$banner = $_POST['banner'];...
Jestli by to treba nebylo jednodussi prepsat jako...
$arr = explode(",",'banner,bcg,...');
foreach ($arr as $value)  {$$value = $_POST[$value];}
Tori
Profil
Coompiik:
to samí, prázdná stránka
Pokud je úplně prázdná stránka, tak nejspíš došlo k syntaktické (nebo jiné fatální) chybě. Máte zapnuté zobrazování chyb? viz Nejčastější potíže s PHP (FAQ) » Zapnutí výpisu všech chyb a varování Je toto jediný skript na té stránce, nebo tam jsou i jiné? (tenhle totiž vypadá v pořádku, tak jestli není chyba jinde)
Coompiik
Profil
Tori:
Je to jediné, klidně pošlu celý soubor, podávám se na ten výpis chyb.
peta:
Ano bylo, dík ale teď už je to jedno kdyš sem to napsal.

Update:
Tori: Napsal sem to tam, ale moc se v tom neviznám a ani nevim kam se ty chyby vypsaly :/
peta
Profil
Zkus na zacatek programu napsat tyhle 3 radky php kodu
@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on"); 
error_reporting(E_ALL);
Pokud se ani pak nevypise chyba, pak je treba zmenit nastaveni na serveru nebo pomoci souboru .htaccess. vetsinou prave na serveru byva potlacene vypisovani chyb, aby toho nemohl zneuzit hacker. Proto se ladi programy na svem kompu, kde si muzu nastaveni zmenit a treba ve Wamp balicku pro win to byva povoleno a staci tenhle kousek php kodu.

Dal jsem si kod z [#4] do souboru a pise mi to
Parse error: syntax error, unexpected '.' in C:\wamp\www\x\coomplik-php.php on line 33
coz odpovida tvemu radku 29 (protoze jsem tam pridaval error_reporting radky)
$path = .$nick.'/'.$name.'.html';
Schvalne, jestli prijdes na to, co je tam za chybu? Pripadne si preloz tu hlasku.
Coompiik
Profil
peta:
Dal jsem si kod z [#4] do souboru a pise mi to
Parse error: syntax error, unexpected '.' in C:\wamp\www\x\coomplik-php.php on line 33
coz odpovida tvemu radku 29 (protoze jsem tam pridaval error_reporting radky)
$path = .$nick.'/'.$name.'.html';
Hmm... Kéž bych tomu rozuměl, google mi toho moc neprozradil... no prostě řekeš mi to pls :-)) já se v tom opravdu vůbec neviznám.
PS: Myslím ten error a v tom $path sem chybu nevidel (ale to bude tim ze se v tom vubec neviznam)
han5vk
Profil
Ak chceš trochu lepšie programovať, angličtine sa nevyhneš. Ak by si ju trocha vedel, pochopíš hlášku :)

Chyba je v nadbytočnej bodke pred $nick, oprav si to na

$path=$nick.'/'.$name.'.html';
Coompiik
Profil
Výborně, dík han5vk a peta, už není bílá stránka ale nikde se mi nevygenerovala složka ani se soubor nikam volně nepochodil :/
peta
Profil
Coompiik:
Proc by mel soubor pochodovat?
Proc pises "neviznam" s i? Zaklad slova je znat, predpodpona vy.
Co ty chybove hlasky, co to pise? Pravdepodobne neco s pravy k zapisu. Zkousel jsi tam pouzit tu funkci chmod()? Zkousel jsi si udelat jednoduchy soubor, ktery jen vytvori tu slozku a soubor? Az pak bych to zkousel kombinovat s dalsim kodem. Zkousel jsi udelat echo vysledky funkci?
echo "mkdir = " . (mkdir($nick, 0777) * 1);
Tori
Profil
<offtopic>
peta:
Proc by mel soubor pochodovat? Proc pises "neviznam" s i?
A jste si jist, že vaše psaní bez diakritiky ostatním netrhá oči stejně jako i místo y?
</offtopic>

Coompiik:
Jen pár poznámek: Bylo by IMHO méně náchylné na chybu vytvářet jména složek a souborů bez diakritiky (tj. např. funkcí str_replace změnit znaky s háčky/čárkami/kroužky na znaky bez nich). Kromě rad od peta zkuste používat i absolutní cesty místo relativních:
$path = __DIR__ .'/'.$nick.'/'.$name.'.html';
 
if(!is_dir($nick)) {
mkdir(__DIR__.'/'.$nick, 0777);
Coompiik
Profil
peta, Tori:
Dík moc za rady, ale šlo by něco hodně jednodušího pro týpka co se v tom vůbec nevyzná? Já pouze upravuju už vytvořený kódy a snažim se je pochopit, a ohledně tý složky, název složky je input type hidden(prukaz-wanted) a soubor jsem dal žádost bez diakritiky do formuláře.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: