Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP - Parse error: syntax error, unexpected ';'

dobry den .. snazim se udelat MySQL registraci na moje stranky v PhP ale jakmile tu registraci vlozim na stranky tak mi to napise toto :

Parse error: syntax error, unexpected ';' in /www/clanteam.com/b/e/e/beethacks/htdocs/index.php on line 12

nevite co stim delat ?
Zmena predmetu, pôvodne: PhP (los)
Změna kategorie, původně: Internet (martin.developer)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Určitě chybí dvojitá uvozovka v mysql_query . Zkus nakopírovat tohle (neodzkoušeno) : mysql_query("…
hynajs 01.09.2011 08:13
hynajs
tazatel by se měl asi naučit uvozovky :) mysql_query("INSERT INTO `users`.`user_info` (`username`,…
tomas.kulhanek 01.09.2011 08:26
tomas.kulhanek
S addslashes & htmlspecialchars souhlasím. Jenom postřeh : já jsem tam ponechal md5 z původního náv…
hynajs 01.09.2011 08:43
hynajs
já jsem začal plně využívat SQL, jelikož mé postřehy jsou že sql mi zatím pracovala vždy rychleji ja…
tomas.kulhanek 01.09.2011 08:49
tomas.kulhanek
Pokud se bavíme o MySQL tak ta nemá problém s: SELECT SHA1('test'); SELECT MD5('test'); Tudíž tyt… nový
martin.developer 01.09.2011 13:06
martin.developer
Nechtěl jsem zde reagovat, jelikož tazatel očividně o to nevede zájem, ale tohle mi nedalo. addslash… nový
martin.developer 01.09.2011 12:58
martin.developer
To heslo do SQL je verejne? :-D nový
virus 01.09.2011 09:37
virus
je to trochu blbé no :D nový
tomas.kulhanek 01.09.2011 09:44
tomas.kulhanek
Pamatuj kdyz davas otazky a zadas tam i heslo, nevis nikdy ktery blbec to zneuzije, tak si to radeji… nový
virus 02.09.2011 10:45
virus
dekuju vsem za odpovedi..... asi bych se mel naucit psat stredniky :) nový
bedar 01.09.2011 19:28
bedar
jo a jeste otazka ... kdyz tento prikaz pouziju na vebu .. tak mam tabulku s registraci vse vyplnim… nový
bedar 01.09.2011 19:35
bedar
A máš v souboru index.php, který je nastaven jako action formuláře také nějaké zpracování? Nebo co s… nový
Kráťa 01.09.2011 22:36
Kráťa
Zalezi take jak tu promennou z formulare prevezmes napriklad ve formulari bude <form action="?" met… nový
virus 02.09.2011 10:50
virus
takze uz je to vyreseno :) poslední
bedar 02.09.2011 11:56
bedar

Určitě chybí dvojitá uvozovka v mysql_query . Zkus nakopírovat tohle (neodzkoušeno) :

mysql_query("INSERT INTO `users`.`user_info`
          (`username`, `password`, `email`, `user_admin_level`)
          VALUES ('".$username."', '".md5($password)."', '".$email."', '1') ; ") ;

tazatel by se měl asi naučit uvozovky :)

mysql_query("INSERT INTO `users`.`user_info` (`username`, `password`, `email`, `user_admin_level`) VALUES ('$username', MD5('$password'), '$email', '1');");

ovšem osobně bych to ještě ošetřil proti injection aspol...
při zápisu do DB všechny hodnoty ošetřit addslashes a při výpisu je ošetřovat pomocí htmlspecialchars

a ještě by mne zajímalo co využívá tazatel za program v kterém skripty píše... doporučuji pspad, či až budeš dělat velké projekty pročti toto

já jsem začal plně využívat SQL, jelikož mé postřehy jsou že sql mi zatím pracovala vždy rychleji jak php...
zkus si udělat 2 skripty s tisícovkami záznamů a tam dej i md5 a porovnej.. php používám pro hash hesla následovně

sha1(md5($username.sha1($password)).$username) 

jelikož nevím jak to sesmolit v SQL :D

je to složitějšší, ale na bezpečnost údajů si potrpím.. když už uživateli někdo ukradne heslo, tak to není moje vina.. ale jeho.. odposlech? ukradnutá cookie? chápeš? :)

Pokud se bavíme o MySQL tak ta nemá problém s:

SELECT SHA1('test');
SELECT MD5('test');

Tudíž tyto funkce podporuje.

BTW: Na můj vkus mi to hashování hesla přijde zbytečné.
Copak nestačí heslo a troška soli?

<?php
$password = "hele254";
$salt = "nejaky-staticky-retezec-pro-cely-web-ktery-bude-pouzit-jako-sul"; //případně username, ale při jeho změně se musí vygenerovat nové heslo
$passwordHash = hash_hmac('sha256', $password, $salt);

Pokud jste paranoidní (bez urážky), můžete používat třeba ripemd320 algoritmus. Solení hesel pomáhá proti rainbow tabulkám, nemá smysl dělat takové velké hashe, které jsou na jednu stranu osolené, ale i tak zbytečně "přehashované". Proti brute-force je Vám to prd platné.

Nechtěl jsem zde reagovat, jelikož tazatel očividně o to nevede zájem, ale tohle mi nedalo.
addslashes() NE! NE! (včetně stripslashes()).

Proměnné se mají escapovat podle daného kontextu. Tzn. pokud se jedná o textová data tak do databáze ukládat a prohánět přes například mysql_real_escape_string(). Pokud třeba o celá čísla tak přes intval(), či pro čísla s plovou des. čárkou floatval() (případně pomocí přetypování (int) (float) ...).

A htmlspecialchars() používat až ve Viewu/šabloně při výpisu z databáze.

Případně používat jiné filtry na daný kontext - třeba pro url rawurlencode() a tak dále.
Každopádně na addslashes() a stripslashes() zapomenout.

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