2014-06-21 9 views
-2

정말 내 검열에 그 검사가 필요합니다 :등록시 대소 문자 + 사용자 이름의 1/10을 확인하는 방법은 무엇입니까?

1) 문자가 크거나 작습니까? 그렇지 않으면 내가, 등록 후 내 시스템에 난 크고 작은 문자 :(최소 문자 (의

2) 길이 내 이름을 쓰고 있어요 상관없이 로그인 할 수 있습니다 3) 어떻게 그렇게 할 수 있습니까? :( 내 코드는 다음과 같습니다

<?php 
//Проверява дали потребителя е логнат. 
//'isset' Проверява дали променливи са 'СЕТнали. 
if(isset($_SESSION['username'])){ 
    header("location: index.php"); 
} 

//Проверява дали потребителя е натиснал бутона събмит 
if(isset($_POST['submit'])) 
{ 

    //Променливи от таблицата 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $rpassword = $_POST['rpassword']; 
$gender = $_POST['gender']; 
$city = $_POST['city']; 
// Get the current date 
$regdate=date("Y-m-d"); 
//Криптиране на парола 
    $password = md5($password); 
$rpassword = md5($rpassword); 

//Махане на бели полета 
    $username = trim($username); 
$password = trim($password); 
$rpassword = trim($rpassword); 

    //Зашита от Mysqli Инжекция 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $rpassword = stripslashes($rpassword); 

    $username = mysqli_real_escape_string($connection, $username); 
    $password = mysqli_real_escape_string($connection, $password); 
    $rpassword = mysqli_real_escape_string($connection, $rpassword); 



    //Проверява дали потребителя е оставил празни полета 

    if ($_POST['username'] == "" || $_POST['password'] == "" || $_POST['rpassword'] == "" ) { 
    echo "<font color='#ec3f8c'>Всички полета са задължителни!</font>"; 
    } 
    else 
    { 
     //Проверява дали паролите съвпадат 
     if($password != $rpassword) 
     { 
      echo "<font color='#ec3f8c'>Паролата не съвпада</font>"; 
     } 

     //Проверява дали потребителското име е взето, ако не тогава ДОБАВИ потребителско име и парола във БД 
     else 
     { 
      //Query the DB 
      $query = mysqli_query($connection,"SELECT * FROM users WHERE username = '$username'") or die("Таблицата не е създадена!"); 

      //Count the number of rows. If a row exist, then the username exist! 
      $row = mysqli_num_rows($query); 
      if($row == 1) 
      { 
      echo "<font color='#ec3f8c'>Потребителско име вече е заето.</font>"; 
      } 

      //Добави потребителско име във БД 
      else 
      { 
      $add = mysqli_query($connection,"INSERT INTO users (id, username, password, gender, city,regdate) VALUES (null, '$username' , '$password','$gender','$city','$regdate') ") or die("Can't Insert! "); 
      echo "<font color='#5cb85c'>Честито! <a href='login.php'> Цък тук </a> За да се логнеш.</font>"; 
      } 



     }  

    } 

} 
?> 
+0

영어로 코드를 붙여주세요보십시오. –

+1

을 ** 패스워드 해시 MD5를 사용하지 마십시오 **이 안전하지 않습니다. MD5 해시는 계산이다 _easy_와 현대 GPU는 즉시 그들을 역으로 맞출 수 있습니다. 대신 새로운 ['password_hash' API] (http://www.php.net//manual/en/fun ction.password-hash.php). 이것은 안전합니다. –

+0

필자는 그 동안 mysqli_real_escape_string을 통해 수동으로 쿼리를 이스케이프 처리하는 준비된 문을 선호한다. –

답변

-2

이 같은 ..이 문제를 방지하려면 PHP strtoupper을 .. 특정 값을 DB에서 검색 SQL 문에서 옵션 UPPER와의를 사용해야하는 경우 : UPPER (FIRSTNAME) = ' ".strtoupper ($의 FIRSTNAME는)."'

+1

이런 종류의 작전은 작고 큰 편지에 도움이 될 것입니까? – user3748181

+0

예, 작고 큰 편지 – user3470449

+0

고맙습니다. – user3748181