2012-02-16 4 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()); 
?> 
내가 SQL을 가지고있는 config.php 파일 연결 측면에서

및 세션 시작 그래서 나는 그 메신저이 오류

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

: 그것은 나에게 오류를 말해 해결되지 않을 경우

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

당신의 선택 쿼리에

이 시도 $ v-> id 값을 얻었습니까? 그 모습으로 보면 틀렸기 때문에 공백이기 때문에 – Darvex

+4

** 경고 ** 귀하의 코드는 ** 매우 ** SQL 주입 공격에 취약합니다. –

+0

오류 메시지가 분명 해 보입니다. '$ _POST [ 'myName']'및'$ _POST [ 'mydropdown']'의 값을 살펴보고 쿼리가 어떻게 엉망이 될 수 있는지 살펴보십시오. –

답변

1

둘러보기. 나는이이 코드는 redundunt 변화 그것을

$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='{$myName}'"; 
+0

Im "SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서를 확인하여 올바른 구문을 사용하여 'WHERE id = 'at line 1'다시 코드의이 부분은 포켓몬 레벨 이름을 얻습니다. echo는 비어 있습니다. \t $ q = "SELECT * FROM user_pokemon WHERE belongssto = '". $ _SESSION [ 'username']."AND (슬롯 = '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

+0

. 먼저 폼에서 보내려는 것이 무엇인지 알려 주면 디버그합니다. – tomexsans

+0

모든 rsults가있는 페이지에서 $ v-> id가 출력되고 그 페이지가 업데이트 페이지에 게시 될 때 반복됩니다. 그것은 이브를 설정합니다. 두 세션 모두에서 세션을 시작합니다. 코드의 맨 아래 비트는 한 페이지이고 다른 비트는 다른 비트의 페이지입니다. 문제는 이 작동하지 않습니다 ...... – user1121083