完全陷入了困境-php的新手,並進行了簡單的表單提交(建立帳戶頁面)以傳送到mysql資料庫,因此對問題的寬恕表示歉意。
我不確定在傳送資料之前如何正確驗證和清除資料。但是我在插入資料庫時使用的是pdo和佔位符,所以我認為這一方面已經涵蓋了。
這被傳送到乙個名為createaccount.php的單獨的php檔案,該檔案執行使用者名稱檢查,如果成功執行,則將乙個字段傳送到我的dbhandler類中的insert函式中的函式。
session_start();
include('connect.php');
$username = $_post['createusername'];
$password = $_post['password'];
$password_confirm = $_post['confirmpw'];
$firstname = $_post['fname'];
$surname = $_post['sname'];
$email = $_post['useremail'];
if ($dbh->checkusername($username)) else {
$dbh->createaccount($username, $password, $password_confirm, $firstname, $surname, $email);
header('location: login.php');
exit();
所以我的問題是。我應該使用
以我的形式動作嗎?如果是這樣的話。我需要在createaccount.php上執行此功能,因為我無法將其傳送到另乙個php檔案?
我應該使用filter_var嗎?和/或我應該在傳送到表單的變數中使用修剪,反斜槓或其他任何內容嗎?我該怎麼做呢?我的理解是
$name = test_input($_post['createusername']);
$password = test_input($_post['password']); .. etc
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
另外,這是我的插入功能。這是安全的/正確編寫的嗎?
function createaccount($username, $pw, $confirmpw, $fname, $sname, $email) {
$sql = "insert into `room_project`.`user` (`username`, `pass`, `confirmpw`, `fname`, `sname`, `email`) values (?, ?, ?, ?, ?, ?);";
$query = $this->connection->prepare($sql);
$query->execute(array($username, $pw, $confirmpw, $fname, $sname, $email));
我非常感謝任何建議!再次請您原諒這個性質:)
php 表單和驗證
表單的作用 通過表單 發布和收集 資訊.對html表單進行編碼 只是有效接受使用者輸入的必要操作的 一部分 必須由 伺服器端 元件來處理 一 標頭函式 header 標頭 header 是 伺服器 從http協議 傳html資料到瀏覽器 在 標頭 和 html檔案 之間 需空一行分隔.header ...
php表單驗證
html表單驗證的 如下 注意 使用者向伺服器傳送請求的方式有兩種 post和get,兩者的區別是get傳送的時候,攜帶的資料是連線在url後面。有資料大小的限制,並且get不能上傳檔案,而post傳送比較隱蔽的,url看不到,沒有資料大小的限制,用來上傳檔案給伺服器。在php中,獲取傳送來的資料,...
php驗證表單
class class post str true false 驗證是否為指定長度數字 function fun text2 num1,num2,str i str true false 驗證是否為指定長度漢字 function fun font num1,num2,str string retur...