我一直在練習PHP和mongodb。我正在開發一個簡單的Web應用程序,但使用OOP。PHP註冊錯誤驗證
我創建了一個名爲user的類,它有我的方法來處理像addUser,deleteUser等用戶。對於添加用戶,我希望表單執行一些簡單的驗證任務,但我不知道如何。這裏是類添加一個新用戶:
function createUser($username, $name, $email, $password){
$user = array(
'username' => $username,
'name' => $name,
'email' => $email,
'password' => $password
);
if ($this->db->count(array('username' => $username)) == 0) {
$this->db->insert($user);
return true;
} else {
echo 'username taken';
}
}
和HTML:
<?php
session_start();
include_once 'user.php';
include './templates/header.php';
if (isset($_POST['register']) && ($_POST['register']) == ($_POST["register"])) {
$user = new User();
$return = $user->createUser(
$_POST['username'],
$_POST['name'],
$_POST['email'],
$_POST['password'],
$_POST['password2']);
}
if ($return == true) {
echo 'you have successfully registered';
} else {
echo '</br>' . 'sorry, try again';
}
?>
<div class="container">
<div class="jumbotron">
<form method="post" action="">
<label>Username: </label><br>
<input name="username" type="text" ><br><br>
<label>Name: </label><br>
<input name="name" type="text"><br><br>
<label>Email: </label><br>
<input name="email" type="email" ><br><br>
<label>Password: </label><br>
<input name="password" type="password" ><br><br><br>
<label>Repeat Password: </label><br>
<input name="password2" type="password" ><br><br><br>
<input name="register" class="btn btn-primary btn-lg" type="submit" value="Register"><br>
</form>
</div>
</div>
請隨時糾正我,你可能會發現其他的錯誤。我知道肯定會有一些。
[請儘量提高你的拼寫。(http://meta.stackoverflow.com/questions/291362/my-question-was-downvoted-closed-because-它是完全的語法錯誤,wh) – peterh
也許你會在http://codereview.stackexchange.com有更好的運氣。 – peterh
你應該確保你***從不***使用未驗證的輸入並從中創建一個數據集。精心製作的用戶名或類似的東西可以用來對你的數據庫做非常糟糕的事情。這種攻擊過去被稱爲SQL注入。使用正則表達式確保在不需要特殊字符的地方使用它是一個好的開始。其次,在嘗試將其保存到數據庫之前,您應該始終***引用用戶輸入。 –