Advertisement
Guest User

Untitled

a guest
Nov 10th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. <?php
  2. require_once('recaptchalib.config.php');
  3. require_once('recaptchalib.php');
  4. require_once('db.config.php');
  5.  
  6. $user_ip = $_SERVER['REMOTE_ADDR'];
  7. $username = isset($_POST['username']) ? mssql_escape_string(trim($_POST['username'])) : '';
  8. $password = isset($_POST['password']) ? mssql_escape_string(trim($_POST['password'])) : '';
  9. $password2 = isset($_POST['password2']) ? mssql_escape_string(trim($_POST['password2'])) : '';
  10. $email = isset($_POST['email']) ? mssql_escape_string(trim($_POST['email'])) : '';
  11. $errors = array();
  12. $success = false;
  13. if(isset($_POST) && !empty($_POST)){
  14. require_once('db.php');
  15.  
  16. // Validate user name.
  17. $result = @odbc_exec($conn,"SELECT UserID FROM PS_UserData.dbo.Users_Master WHERE UserID = '{$username}'") or die('Echec lors de la vérification du nom d\'utilisateur');
  18. if(empty($username)){
  19. $errors[] = 'MErci d\'entrer un nom d\'utilisateur.';
  20. }else if(strlen($username) < 3 || strlen($username) > 16){
  21. $errors[] = 'Le nom d\'utilisateur doit faire entre 3 et 16 caractères de long.';
  22. }else if(ctype_alnum($username) === false){
  23. $errors[] = 'Le nom d\'utilisateur ne peut seulement contenir des lettres et des chiffres.';
  24. }else if(odbc_num_rows($result)){
  25. $errors[] = 'Nom d\'utilisateur déjà utilisé, merci d\'en choisir un autre!';
  26. }
  27. // Validate user password.
  28. if(empty($password)){
  29. $errors[] = 'S\'il vous plait, veuillez indiquer un mot de passe.';
  30. }else if(strlen($password) < 3 || strlen($password) > 16){
  31. $errors[] = 'Le mot de passe doit faire entre 3 et 16 caractères de long.';
  32. }else if($password != $password2){
  33. $errors[] = 'Les deux mot de passe ne sont pas identiques.';
  34. }
  35. // Validate user email.
  36. if(empty($email)){
  37. $errors[] = 'Veuillez indiquer une adresse email';
  38. }
  39.  
  40. // Validate reCAPTCHA. This is to prevent someone botting account creation.
  41. $response = recaptcha_check_answer($recaptcha_private_key,$_SERVER['REMOTE_ADDR'],$_POST['recaptcha_challenge_field'],$_POST['recaptcha_response_field']);
  42. if(!$response->is_valid){
  43. if($response->error == 'incorrect-captcha-sol'){
  44. $errors['recaptcha'] = 'Mauvaise réponse au reCAPTCHA';
  45. }else{
  46. $errors['recaptcha'] = $response->error;
  47. }
  48. }
  49. // Persist the new account to the database if no previous errors occured.
  50. if(count($errors) == 0){
  51. $sql = "INSERT INTO PS_UserData.dbo.Users_Master
  52. (UserID,Pw,JoinDate,Admin,AdminLevel,UseQueue,Status,Leave,LeaveDate,UserType,Point,EnPassword,UserIp,Email)
  53. VALUES ('{$username}','{$password}',GETDATE(),0,0,0,0,0,GETDATE(),'N',0,'','{$user_ip}','{$email}')";
  54. // Remove the @ symbol here to see what the SQL error message is when running the above query in $sql.
  55. if($result = @odbc_exec($conn,$sql)){
  56. $success = "Le compte {$username} à été créer avec succès!";
  57. }else{
  58. // This means the insert statement is probably not valid for your database. Fix the query or fix your database, your choice ;)
  59. $errors[] = 'Echec lors de la création du compte, veuillez réessayer plus tard';
  60. }
  61. }
  62. }
  63. // Determine which view to show.
  64. if($success === false){
  65. require_once('register.view.php');
  66. }else{
  67. require_once('success.view.php');
  68. }
  69. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement