2017-06-30 13 views
0

**它引发错误虽然提交表单,它引发错误

未定义偏移量:用C 0:\ XAMPP \ htdocs中\ test_login \上线add_data.php 10

10号线有$ _ SERVER [ “REQUEST_METHOD” == “POST”] **

<?php 
require_once 'mysql_connect.php'; 

if ($_SERVER["REQUEST_METHOD" == "POST"]) { 
    if (empty($_POST['username'])) { 
     echo "Username required."; 
    }else{ 
    $username = handle_data($_POST['username']); 
    } 

    if (empty($_POST['password'])) { 
     echo "Password required."; 
    } 
    else{ 
    $password = handle_data($_POST['password']); 
    } 

    if ($_POST['cpassword'] != $_POST['password']) { 
     echo "Passwords donot match!"; 
    } 

    if (!is_numeric($_POST['age'])) { 
     echo "Age must be a number."; 
    } 


$query = "INSERT INTO students(username, password, age) VALUES(?, ?, ?)"; 
$stmt = mysql_stmt_prepare($conn, $query); 
if ($stmt) { 
    mysqli_stmt_bind_param($stmt, 'ssi', $username, $password, $age); 
    mysqli_execute($stmt); 
    echo "Registration Made!"; 
    mysqli_stmt_close($stmt); 
    mysqli_close($conn); 
} 

} 

function handle_data($data){ 
$data = trim($data); 
$data = stripcslashes($data); 
$data = htmlspecialchars($data); 
return $data; 
} 

?> 

这是什么正指向实际的错误?

+1

可能重复[$ \ _ POST与$ \ _ SERVER \ ['REQUEST \ _METHOD'\] =='POST'](https://stackoverflow.com/questions/409351/post-vs-serverrequest-方法后) – Jenish

+0

可能重复的[参考 - 这是什么意思在PHP?](https://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) –

+0

它使用==表示compare来评估''REQUEST_METHOD'=='POST'',因此它返回0,因为它们不相同,所以试图获取$ _SERVER [0]。 –

回答

2

你在这一行有semantic errorREQUEST_METHOD是从$_SERVER全局变量中获取方法的关键。改变这一行

if ($_SERVER["REQUEST_METHOD" == "POST"]) { 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

你也可以用$_POST全局变量选中此项,

if (isset($_POST) && !empty($_POST)) { 
0

你行有semantic error没有10

使用本

if($_SERVER["REQUEST_METHOD"] == "POST"); 
+0

这不是一个语法错误 - 这是一个语义错误 –