| 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: 17 let
|
|||
0