Skocz do zawartości

[PHP][SQL] Problem z dodawaniem danych do bazy


Markuz

Rekomendowane odpowiedzi

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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...