Autor Zpráva
wNi'
Profil *
Uf no, vytvoril som stranky u seba, s EasyPHP ako virtualnou databazou, pouzival som notepad++, vsetko fungovalo. Prakticky aj s vasou pomocou lebo sa nepytam prvykrat.. No akonahle som ich hodil na net, vypisalo mi typicky ze session_start odoslalo hlavicku stranky.. tak som sa spytal skusenejsich programatorov ze co s tym? ked mam session_start ako prve a aj tak to pise.
Nasiel som na php.net prikaz session_start, nastudoval to a vsimol si stranku

http://people.w3.org/rishida/utils/bomtester/index.php

Otestoval som svoj index. Prirodzene problem je v UTF 8, pretoze pred session_start napcha este par znakov, ktore ptm session_start odosle, vypise error a rozhadze mi layout.
Tak som sa snazil najst v notepad++ kde nastavim spravny format, ak nastavim ANSI, mozem mat dole zaskrtnute Without BOM, akurat mi nezobrazuje znaky ako "ž š č ť", namiesto nich da stvorceky, ale problem sa vyriesi.. ked mu dam UTF 8, tak mi vypise tamten problem.. Skusal som aj napr. PSpad, ktory ale ma iba UTF 8, UTF 8 - LE a UTF 8 - BE co znamena myslim azijske jazyky cizeto mi je naprd. Skusal som aj HTMLpad, ktory to pri kladani spravi.. ale nespravil nic ine ako ze to nastavil na ANSI + without BOM.. Takze tapam v tme, stranky mi nefunguju, zly layout a nechcu mu behat scripty :/.. pls help. Dakujem moc

Moderátor Davex: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Om
Profil *
V tom notepadu++, zkoušel jsi dát formát->Konvertovat do UTF8 bez BOM?
Davex
Profil
wNi':
Tak som sa snazil najst v notepad++ kde nastavim spravny format, ak nastavim ANSI, mozem mat dole zaskrtnute Without BOM
BOM má smysl pouze v kombinaci s UTF. Jeho přítomnost v souboru v jiném kódování může některé prohlížeče zmást.

PSpad, ktory ale ma iba UTF 8, UTF 8 - LE a UTF 8 - BE co znamena myslim azijske jazyky cizeto mi je naprd.
PsPad má UTF-8, UTF-16 LE a UTF-16 BE. V běžných podmínkách se používá UTF-8 bez BOMu. Vypnutí ukládání BOMu je popsáno v PHP FAQ.
wNi'
Profil *
@Om - v Notepad ++ Je hore format, kde sa dá UTF 8 vybrať.. Potom je ešte Preferences - New document - Utf 8 = without bom... Ale i tak mi to nejde :(...
@Davex - Nevšimol som si to vo Faq, uz vidím, ďakujem, ale nepomohol som si, skúšal som aj v PSpade to, čo je tam popísané, ale i tak nič.. Pre priblíženie pridám aj chybovú hlášku, aj posialajúci súbor:
Súbor:
<?
include "db.php";
print_r($_POST);

echo check_input($_POST['username']).'<br/>';
echo check_input($_POST['password']).'<br/>';
echo check_input($_POST['password_reply']).'<br/>';
echo check_input($_POST['email']).'<br/>';
	if ($_POST['reg_code']!="w421b3a")
	{
		header("Location: reg_form_error.php");
		die();
	}
	if (($_POST['username']=="") || ($_POST['password']=="") || ($_POST['email']==""))
	{
		header("Location: reg_form_error.php");
		die();
	}
	if ($_POST['password'] != $_POST['password_reply'])
	{
		header("Location: reg_form_error.php");
		die();
	}
	if ((!check_input($_POST['username'])) || (!check_input($_POST['password'])))
	{
		header("Location: reg_form_error.php");
		die();
	}

$username = oprav($_POST['username']);
$password = oprav($_POST['password']);
$email = oprav($_POST['email']);

$a = "INSERT INTO members (username, password, email) VALUES ('".$username."', '".$password."', '".$email."')";
mysql_query($a);

header("Location: index.php");
die();
function check_input($data)
{
    if (strlen($data) == 0)
    {
		return false;
    }
    return true;
}
function oprav($data)
{
    $data = trim($data);
    $data = htmlspecialchars($data);
	return $data;
}
?>

Hláška:
Array ( [username] => aa [password] => aa [password_reply] => aa [email] => aa [reg_code] => w421b3a [x] => 73 [y] => 25 ) 1
1
1
1

Warning: Cannot modify header information - headers already sent by (output started at /users/zalohovane/hy.cz/artofsurvival/reg_add.php:1) in /users/zalohovane/hy.cz/artofsurvival/reg_add.php on line 37


Line 37 je
header("Location: index.php");

Ako vidíte, pri tom výpise, kedy sa mi za prvé sekne script a za druhé hodí pred Array znaky ..
wNi'
Profil *
Btw viem, že to PHP čo píšem nieje všetko správne, som začiatočník, tak som rád, že to ide.. Ono, on to pridá do Databázy, akurát vypíše tamto. Mne by to nevadilo ak by to nebol vypisoval, ak to pridá tak je mi jedno čo píše ;-)..
wNi'
Profil *
Podarilo sa mi nejakým zázrakom odstrániť to , ale i tak mi to vypisuje.. Hmm :( (btw ešte vždy som neprišiel na to, ako tu upravím príspevok... )
panther
Profil
wNi':
ano, vypisuje, protože před headerem (přesměrováním) nesmí být žádný výstup. Ty tam máš dump z POSTu.

ešte vždy som neprišiel na to, ako tu upravím príspevok
nejprve se musíš zaregistrovat.
wni'
Profil *
Myslíš tým to hore
print_r($_POST);
?

Alebo to musím prepísať všetky POSTy v celom dokumente?O_o.. Uf, čudné s týmto som sa ešte nestretol.
Ale i tak veľmi Ďakujem, pretože aspon viem kde mám chybu, že už nie v UTF 8 ale v dokumente ;-)...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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