Markuz Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 Mam taki skrypt : if($playerFunctions -> checkIssetPost("nazwa")) { try { $playerFunctions -> checkPassword($_POST['haslo']); $playerFunctions -> checkEmail($_POST['email']); $playerFunctions -> checkLogin($_POST['nazwa']); $playerFunctions -> registerNewUser($_POST['nazwa'],$_POST['haslo'],$_POST['email']); } catch (Exception $error) { $info = $error -> getMessage(); } } Oto niektore funckje w klasie playerFunctions : function checkPassword($pass) { $pass = trim($pass); if(!empty($pass)) { return true; } else { throw new Exception('Nie uzupełniłeś pola hasła'); } } function checkEmail($email) { $email = trim($email); if(!empty($email)) { if(ereg("^[a-z0-9_\\.-]+@([a-z0-9_-]+\\.)+[a-z]{2,}$",$email)) { return true; } else { throw new Exception('Podałeś nieprawidłowy email'); } } else { throw new Exception('Nie uzupełniłeś pola email'); } } function checkLogin($login) { $login = trim($login); if(!empty($login)) { $check = mysql_query("SELECT * FROM `player` WHERE `login` = '$login'"); if(mysql_num_rows($check) == 0) { return true; } else { throw new Exception('Ten login jest już zajęty'); }; } else { throw new Exception('Nie uzupełniłeś pola loginu'); } } function registerNewUser($login,$haslo,$email) { $login = addslashes($login); $haslo = addslashes($haslo); $email = addslashes($email); echo $haslo; $query = mysql_query("INSERT INTO `player` (`id`,`login`,`haslo`,`email`,`zycie`,`energia`) VALUES ('','".$login."','".$haslo."','".$email."','100','100') ") or die ("error".mysql_error()); throw new Exception('Poprawnie dodano nowego gracza'); } I mam problem, poniewaz przy rejestracji login zapisuje ok, ale haslo i email maja tylko po 3 znaki. W bazie te rekordy maja char(100) , wiec na pewno by sie zmiescily. Proszę o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 Char czy varchar? E: po co dałeś trim przy hasle i emailu? Trim przycina znaki, pewnie to przez to. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markuz Opublikowano 20 Sierpnia 2010 Autor Udostępnij Opublikowano 20 Sierpnia 2010 Usunąłem trim i nadal to samo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 W ogóle bez sensu używać char skoro w tabeli pojawiają się pola o zmiennej długości, np. varchar czy text. Swoją drogą, dla pewności zrób debug, po prostu wywal na ekran lub do pliku zawartość, z $_POST i argumentów funkcji registerNewUser. Swoją drogą, zobacz sobie mysql_real_escape_string. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 E: po co dałeś trim przy hasle i emailu? Trim przycina znaki, pewnie to przez to. HIBA NIE WIESZ JAK DZIAŁA TRIM :sp_ike: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 Trim przycina znaki...ale nie powiedziałem jakie, hohoho. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 20 Sierpnia 2010 Udostępnij Opublikowano 20 Sierpnia 2010 pewnie to przez to. :sleep1: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się