2017-11-27 17 views
-3

나는 지금 내 마음을 잃어 가고있다. 나는 무슨 일이 일어 났는지 모른다. 나는 사용자가 코멘트를 쓸 수있는 코드를 작성하고, 그것을 제출하자마자 코멘트가 나타납니다. 프로그램을 가지고 놀기 전까지는 모든 것이 완벽하게 작동했습니다. 매우 큰 주석을 썼을 때 주석 거품이 '확장'되지 않고 크기가 조정되었고 여기에 오류가 나타났습니다 (특히 if 조건에서) :Ajax 코드가 갑자기 작동하지 않습니까?

$query = "select user,comment,date from comments where user='$name' and comment='$comment'"; 
    $select = mysqli_query($connection, $query); 

    if($row=mysqli_fetch_array($select)) 
    { 
     $name=$row['user']; 
     $comment=$row['comment']; 
     $time=$row['date']; 

거품 자체를 수정하고 싶었 기 때문에 오류 자체는 기억하지 못하기 때문에 CSS를 진행했습니다. 작업이 끝나면 아약스 부분을 제외하고는 모든 것이 제대로 작동하는 것으로 나타났습니다. 코멘트는 더 이상 제출되지 않았고 (페이지를 새로 고침해야 함) 오류가 더 이상 나타나지 않아서 정말 필사적입니다. 이전 코드와 현재 코드를 비교해 보았습니다. 일부 CSS 클래스를 제외하고는 똑같습니다. 너무 혼란 스럽습니다.

댓글이 너무 클 경우 오류가 표시 되었기 때문에 코드의 해당 부분 만 게시하지만 더 필요하면 알려주세요. 명세서 당

+2

참고 : mysqli''에 객체 지향 인터페이스가 상당히 작 코드를 읽기 쉽고 감사하기 쉽도록 만들고, 쓸모없는 mysql_query 인터페이스와 쉽게 혼동하지 않는다. 절차 스타일에 너무 투자하기 전에 전환 할 가치가 있습니다. 예제 :'$ db = new mysqli (...)'과'$ db-> prepare ("...")'mysqli' API가 도입 된 PHP 4 시대의 절차 상 인터페이스는 새로운 것으로 사용되어서는 안된다. 암호. – tadman

+2

** 경고 ** : mysqli를 사용할 때 [매개 변수가있는 쿼리] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)와 ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)를 사용하여 사용자 데이터를 쿼리에 추가하십시오. ** 심각한 [SQL injection bug] (http://bobby-tables.com/)를 만들었 기 때문에 문자열 보간이나 연결을 사용하여 **이를 수행하지 마십시오. **'$ _POST','$ _GET' 또는 ** 모든 ** 사용자 데이터를 쿼리에 직접 넣지 마십시오. 실수로 누군가를 악용하려는 경우 매우 위험 할 수 있습니다. – tadman

+2

주 : 한 번만 사용되는 쓰레 걸기 변수에서 SQL 문을 선언하는 습관을 시도해보십시오. 질의가 함수에 직접 제공되는 코드를 따르는 것이 훨씬 쉽고, 시각적으로 유사한'$ sql8 '대신에'$ sql3'을 엉망으로 만들거나 보내지 않아도됩니다. – tadman

답변

-1

는 :

나는 일 이전 하나 현재 코드를 비교하며 일부 CSS 클래스를 제외하고, 난 너무 혼란 스러워요 정확히 동일합니다.

제거되거나 변경된 CSS 클래스는 AJAX 이벤트가 해당 이름으로 호출 된 경우 실행되지 않게합니다.

<a class="test"...> 

가 있다면

$('.test').click(function(){ 

가 발생하지 않습니다 (Ajax code suddenly stopped working? 코멘트 당이었다)로 변경 :

<a class="not_a_test">