2012-02-16 69 views
0

你好我試圖沼澤我所有的PHP腳本oto新的HTML模板。這個腳本工作是因爲我把它換到新的模板,但現在它已停止工作... 我想也許我可能會錯過'或有一個空間有些人是我不應該Php語法錯誤

這是我的網頁

<?php 
include 'config.php'; 

$myName = $_POST['myName'] ; 

$mydropdown = $_POST['mydropdown'] ; 


$_POST['mydropdown'] = mysql_real_escape_string($_POST['mydropdown']); 
$_POST['myName'] = mysql_real_escape_string($_POST['myName']); 


$sql = "SELECT * FROM user_pokemon WHERE id='".$_POST['myName']."'"; 
$result = mysql_query($sql) or die(mysql_error()); 
$battle_get = mysql_fetch_array($result); 


    $result = mysql_query("UPDATE user_pokemon SET slot=".$_POST['mydropdown']." WHERE id = '".$_POST['myName']."'") 
or die(mysql_error()); 
?> 

在側config.php文件我有SQL連接並與會話開始其適用於其他網頁的罰款,所以我不認爲這是一個即時得到這個錯誤

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = ''' at line 1

我有一個php表單發佈到這個頁面。

echo ' 

           <div class="auction_box" style="height:150px"> 

           <form name="myform" action="http://pokemontoxic.net/newy/testing.php" method="POST"> 
           <p> </p> 
           <p> </p> 
           <p> </p> 

             <img src="http://pokemontoxic.net/'.$battle_get['pic'].'" height="96px" width="96px"/><br/> 


            Name:<br/>' .$v->pokemon. '<br/> 
            Level:' .$v->level. '<br/> 
            Exp:' .$v->exp. '<br/> 

    Slot you want to put your pokemon in 


<select name="mydropdown"> 

<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
</select> 


<input type="hidden" name="myName" value="' . $v->id . '" /> 
           <input type="submit" value="Submit" /> 




           </form> 

哪些工作正常,但發送信息到代碼的最高位。

+2

在哪裏你得到$ v-> id值?因爲它的外觀它不是空的不正確 – Darvex 2012-02-16 14:04:40

+4

**警告**您的代碼**非常**易受sql注入攻擊。 – 2012-02-16 14:04:43

+0

錯誤消息對我來說似乎很清楚。查看'$ _POST ['myName']'和'$ _POST ['mydropdown']'的值以及它們如何混淆查詢。 – 2012-02-16 14:04:58

回答

1

讓我看看。我認爲這個代碼是redundunt改變它

$myName = $_POST['myName'] ; 
$mydropdown = $_POST['mydropdown'] ; 
$_POST['mydropdown'] = mysql_real_escape_string($_POST['mydropdown']); 
$_POST['myName'] = mysql_real_escape_string($_POST['myName']); 

這樣:

$myName = mysql_real_escape_string($_POST['myName']); 
$mydropdown = mysql_real_escape_string($_POST['mydropdown']); 

,並在您選擇查詢試試這個,如果它不能解決告訴我的錯誤:

$sql = "SELECT * FROM user_pokemon WHERE id='{$myName}'"; 
+0

Im得到「您的SQL語法中有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以找到正確的語法以在'WHERE id ='在第1行「再次這部分的代碼獲取口袋妖怪級名稱回聲,錯誤說是空的\t $ q =」選擇*從user_pokemon WHERE belongssto ='「。 $ _SESSION [ '用戶名'。「'AND(slot ='0')」; \t \t \t \t \t \t $ r = mysql_query($ q); \t \t \t \t \t \t \t \t \t \t \t \t如果(mysql_num_rows($ R)<= 0){ \t \t \t \t \t \t \t回聲 「已存儲沒有電流小寵物」; \t \t \t \t \t \t}其他{ \t \t \t \t \t \t \t \t \t \t \t而($ V = mysql_fetch_object($ R)){ – user1121083 2012-02-16 14:16:27

+0

這意味着它不會得到正確的輸入。首先調試,如果你試圖從表單發送什麼東西,請嘗試回顯它 – tomexsans 2012-02-16 14:18:57

+0

我在頁面上回顯了$ v-> id,所有rsults和它在那裏,但是當它被髮布到更新頁面時它不會在這兩個頁面上設置會話開始,最底層的代碼是一個頁面,然後另一個頁面更新位於另一個頁面上,問題在於 id。'「/> 不能正常工作...... – user1121083 2012-02-16 14:27:11