2016-01-14 93 views
0
INSERT語句

我是相當新的PHP中的SQL語句的語法錯誤,意外「$ POST_」(T_VARIABLE),並得到了以下錯誤:解析錯誤:在PHP

Parse error: syntax error, unexpected '$POST_' (T_VARIABLE) in /home/u544596746/public_html/cobrahd/register.php on line 19

我看了誤差可達在互聯網上,但只發現其他人與其他代碼相同的問題。

如果你能解決我的問題,我會很高興。

<?php 

     define('DB_HOST', '****'); 
     define('DB_NAME', '****'); 
     define('DB_USER','****'); 
     define('DB_PASSWORD','****'); 


     $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
     $db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 

     function register() 
     { 

      session_start(); 
      if($_POST["email"]!="" and $_POST["password"]!="" and $_POST["username"]!="" and $_POST["password"]== $_POST["password_confirm"]) 
      { 
       $sql = "INSERT INTO `tblUser`(`UserName`, `Vorname`, `Nachname`, `EMail`, `Geschlecht`, `Geburtsdatum`, `RegestrierungDate`, `Password`, `FKRole`) VALUES ('" .$POST_['username']. "','"$POST_['vorname']. "','" .$POST_['nachname']. "','" .$POST_['email']. "','" .$POST_['geschlecht']. "','" .$POST_['geburtsdatum']. "',Curdate(),'" .$POST_['password']. "',2)"; 
       echo $sql; 

       header('Location: index.php'); 
      } 
      else 
      { 
       header('Location: 404.html'); 
      } 
     } 
     if(isset ($_POST['submit'])) 
     { 
      register(); 
     } 


    ?> 
+4

你'$ POST_',而不是'$ _POST'。也可以看看[sql注入](https://www.owasp.org/index.php/SQL_Injection)以及如何防止它。 – Havelock

+0

此外,請改善您的問題的格式。 – user3743222

+0

MySQL功能已被刪除,請不要再使用它了。 – Tom

回答

2

變化:

  $sql = "INSERT INTO `tblUser`(`UserName`, `Vorname`, `Nachname`, `EMail`, `Geschlecht`, `Geburtsdatum`, `RegestrierungDate`, `Password`, `FKRole`) VALUES ('" .$POST_['username']. "','"$POST_['vorname']. "','" .$POST_['nachname']. "','" .$POST_['email']. "','" .$POST_['geschlecht']. "','" .$POST_['geburtsdatum']. "',Curdate(),'" .$POST_['password']. "',2)"; 
      echo $sql; 

這樣:

$sql = "INSERT INTO `tblUser`(`UserName`, `Vorname`, `Nachname`, `EMail`, `Geschlecht`, `Geburtsdatum`, `RegestrierungDate`, `Password`, `FKRole`) VALUES ('" .$_POST['username']. "','"$_POST['vorname']. "','" .$_POST['nachname']. "','" .$_POST['email']. "','" .$_POST['geschlecht']. "','" .$_POST['geburtsdatum']. "',Curdate(),'" .$_POST['password']. "',2)"; 
       echo $sql; 

有在你的代碼印刷錯誤。你正在寫POST_而不是_POST。而且你mysqli_而不是mysql_它已被棄用。

編輯:

有另一個錯誤:

你沒有正確地連接起來。使用以下

$sql = "INSERT INTO `tblUser`(`UserName`, `Vorname`, `Nachname`, `EMail`, `Geschlecht`, `Geburtsdatum`, `RegestrierungDate`, `Password`, `FKRole`) VALUES ('" .$_POST['username']. "','" . $_POST['vorname']. "','" .$_POST['nachname']. "','" .$_POST['email']. "','" .$_POST['geschlecht']. "','" .$_POST['geburtsdatum']. "',Curdate(),'" .$_POST['password']. "',2)"; 
+0

我看到我的錯誤,並在代碼中進行了更改。但現在我要找到另一個 解析錯誤: 解析錯誤:在/home/u544596746/public_html/register.php語法錯誤,意外 '$ _ POST'(T_VARIABLE)上線18 這是第18行: '''$ sql =「INSERT INTO」tblUser(用戶名,Vorname,Nachname,EMail,Geschlecht,Geburtsdatum,RegestrierungDate,Password, $ _ POST ['username']。'','「$ _ POST ['vorname']。'','」。$ _ POST ['nachname']。'','「。$ _ POST ['email']。」 '','。$ _ POST ['geschlecht']。「','」。$ _ POST ['geburtsdatum']。「',Curdate(),'」。$ _ POST ['password']。'',2) 「;''' –

+0

@BenjaminPössenberger在我的答案中檢查編輯。 – mega6382

0

變化

$POST_ 

$_POST 

的有效語法是$ _ POST