Autor | Zpráva | ||
---|---|---|---|
Pavel7789 Profil * |
#1 · Zasláno: 25. 11. 2009, 02:20:04
Dobry den,
chtel bych se zeptat, kde mam chybku (nebo spise jak toto resit) jsem s php celkem zacatecnik, ale tohle mi nejde do hlavy.. mam jednoduchy skript na registraci uzivatelu: <?php $tab_uzivatele = "uzivatele"; //registrace uzivatelu function user_register($username, $password) { // zasifruje heslo $encrypted = md5($password); // ulozi data do databaze $query = mysql_query("INSERT INTO ".$tab_uzivatele." (id, login, password) values ('','$username', '$encrypted')") or die("MySQL ERROR: ".mysql_error()); } ?> ovsem nefunguje mi tak jak by mel.. problem je s tabulkou.. hned na 1. radku muzete videt, ze promenou tab_uzivatele definji (ve skutecnosti ji definuji v jinem souboru, ktery includuji ale to neni zas tak podstatne) a neustale mi to vypisuje chybu: MySQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(id, login, password) values ('','tom', 'd9a54c1938d7a5ea1c95098182744bc3')' at line 1 kdyz v mysql dotazu zmenim ".$tab_uzivatele." na uzivatele (jak se tabulka jmenuje) tak mi to vse vykova v poradku... je tedy problem v definici tabulky predpokladam.. ale proc? nemuzu definovat nejakou promenou mimo funkci a pote ji ve funkci pouzit? jelikoz vsechny nazvy tabulek mam ulozene v config.php (i s pripojenim k db).. =o/ |
||
Pavel7789 Profil * |
#2 · Zasláno: 25. 11. 2009, 02:36:50
aha :) tak jsem to pochopil, ono staci definovat tu tabulku pri "volani fce".. tedy nejak takto:
user_register ($_POST['username'], $_POST['password'], $tab_uzivatele); a pote funkce bude samozrejme takto: function user_register($username, $password, $table) ale nastava problem, ze pri pri duplicitnim loginu (porovnavam vlozeny login z formulare se vsemi v databazi) jsem chtel definovat: <?php //registrace uzivatelu function user_register($username, $password, $table) { //zjistime, zda jiz tento login neni v databazi ulozen.. kdyz ano presmerujeme na stranku kde to sdelime $DuplicitaLoginu = mysql_query("SELECT `login` FROM `$table` WHERE `login`='$username'") or die("MySQL ERROR: ".mysql_error()); while ($vypis = mysql_fetch_array($DuplicitaLoginu)){ $DuplicitniLogin = stripslashes(htmlspecialchars($vypis['login']));} if($DuplicitniLogin==$username){ $chyba = "DuplicitniLogin"; }else{ // zasifruje heslo $encrypted = md5($password); // ulozi data do databaze $query = mysql_query("INSERT INTO `".$table."` (id, login, password) values ('','$username', '$encrypted')") or die("MySQL ERROR: ".mysql_error()); }} ?> a pote nekde jinde v kodu pouzit podminku, ze kdyz $chyba = DuplicitniLogin tak to vypise neco a neco... ovsem nefunguje mi to =o/ zase je ta promena chyba definovana jen v ramci funkce?? je nejaka moznost jak po volani funkce predat tuto promenou dal na stranku tak, abych s ni mohl pracovat? |
||
Kajman_ Profil * |
#3 · Zasláno: 25. 11. 2009, 08:42:48
je nejaka moznost jak po volani funkce predat tuto promenou dal na stranku tak, abych s ni mohl pracovat?
Např. může např. vrátit text. return $chyba; |
||
Časová prodleva: 14 let
|
0