2015-10-15 17 views
0

我是一個在PHP/MySQL的noob。我一直在四處尋找,但我無法弄清楚發生了什麼問題。腳本的用途:在txtUser中輸入userID的用戶數據庫中更新item 1item 2的值。發送表單數據到php變量。變量似乎是空的

當我在查詢中使用userId附近的「固定」值時,我得到我的腳本正常工作。但是,當我嘗試使用變量($ player)時,它不起作用。好像我的變量是空的......

HTML:

<body> 
    <form id="form1" action="http://www.something.com/TestScript1.php" method="post" enctype="application/x-www-form-urlencoded"> 

    <div> 
    <button type="submit" id="submit" value="Submit" title="SAVE">SAVE</button> 
    </div> 
    <div> 
     <input id="txtUser" name="txtUser" type="text" /> 
     <input id="txtItem1" name="txtItem1" type="text" /> 
     <input id="txtItem2" name="txtItem2" type="text" /> 
    </div> 

</form> 
</body> 

PHP:

$host = "localhost"; 
$user = "username"; 
$password = "password"; 
$database = "database"; 
$player = mysqli_real_escape_string($connection,$_POST['txtUser']); 
$connection = mysqli_connect($host,$user,$password,$database) or die ("connection to server failed"); 
mysqli_select_db($connection,$database) or die ("couldn’t select database"); 

$item1 = mysqli_real_escape_string($connection,$_POST['txtItem1']); 
$item2 = mysqli_real_escape_string($connection,$_POST['txtItem2']); 

$query = "UPDATE table SET item1=$item1, item2=$item2 WHERE userId=$player"; 
$result = mysqli_query($connection,$query) 
or die ("couldn’t execute update query: ".mysqli_error($connection)); 
echo "<h4>Data saved in the database</h4>"; 
mysqli_close($connection); 

?> 

回答

1

請把此行

$player = mysqli_real_escape_string($connection,$_POST['txtUser']); 

後$連接

$connection = mysqli_connect($host,$user,$password,$database) or die ("connection to server failed"); 

$connection = mysqli_connect($host,$user,$password,$database) or die ("connection to server failed"); 
$player = mysqli_real_escape_string($connection,$_POST['txtUser']); 

因爲你甚至它的初始化

+0

這是否解決了您的問題? –

1

$連接之前mysqli_real_escape_string使用$連接變量不是線定義

$player = mysqli_real_escape_string($connection,$_POST['txtUser']); 

創建$連接

後請移至此行
$connection = mysqli_connect($host,$user,$password,$database) or die ("connection to server failed"); 
1
<?php 

    $host = "localhost"; 
    $user = "username"; 
    $password = "password"; 
    $database = "database"; 



    $conn = mysqli_connect($host,$user,$password,$database) or die ("connection to server failed"); 
    mysqli_select_db($conn,$database) or die ("couldn't select database"); 

    /* The $conn object must be declared before first/any calls to mysqli_real_escape_string */ 
    $player = mysqli_real_escape_string($conn,$_POST['txtUser']); 
    $item1 = mysqli_real_escape_string($conn,$_POST['txtItem1']); 
    $item2 = mysqli_real_escape_string($conn,$_POST['txtItem2']); 

    /* Values in query should be encapsulated in quotes if they are strings.. are they? */ 
    $query = "UPDATE `table` SET `item1`='$item1', `item2`='$item2' WHERE userId='$player';"; 

    /* Try not to reveal too many details in the event of an error, reduce the attack surface if possible! */ 
    $result = mysqli_query($conn,$query) or die ("update failed: "); 
    echo "<h4>Data saved in the database</h4>"; 
    mysqli_close($conn); 

?>