2013-03-09 3 views
0

다음 파일이 있습니다. 어떤 이유로 (PHP '에코'태그 내부) 내 자바 스크립트가 작동하지 않습니다Javascript가 PHP 파일에서 작동하지 않는 이유는 무엇입니까?

HTML (index.php를)

<form action="submit.php" method="post"> 
<div id="edit-box"> 
<INPUT type="submit" name="save-text" id="save-text" value="Save"> 
<textarea id="editor" name="editor"> 
<?php echo $content; ?> 
</textarea> 
</div> 
</form> 

PHP (submit.php) :

<?php 

include('connect-db.php'); 

$submit_date = date("Ymd"); 
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor'])); 
$ip_address = getRealIPAddress(); 

if ($content != '') { 
mysql_query("INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'") 
or die(mysql_error()); 

// The following line is not working! I need help here! 
echo '<script type="text/javascript"> alert("Your file saved!");</script>'; 

mysql_close($connection); 
} 
?> 

을 "submit.php"에는 다른 PHP 또는 HTML 스크립트/태그가 없습니다. 나는 PHP/MySQL API (PDO/MySQLi 대신)를 사용하고 있다는 것을 이해하고 있지만, 요점은 바로 그 점입니다. 코드

<?php 

include('connect-db.php'); 

$submit_date = date("Ymd"); 
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor'])); 
$ip_address = getRealIPAddress(); 
$content = $_POST["editor"]; 
if ($content != '') { 
mysql_query("INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'") 
or die(mysql_error()); 

// The following line is not working! I need help here! 
echo '<script type="text/javascript"> alert("Your file saved!");</script>'; 

mysql_close($connection); 
} 
?> 
+0

@Pekka 웃'$ 콘텐츠 = mysql_real_escape_string를 (반드시 htmlspecialchars ($ _ POST [ '에디터']));' –

+0

@Kolink 내가 그렇군요. –

+0

'content'값이 올바르게 저장되고 있으면 문제가 없습니다. 그러나 Javascript (에코 태그 내부)는 작동하지 않습니다. 마치 거기에 도달하지 못하는 것 같습니다! –

답변

-1

봅니다은 경고를 인쇄해야합니다. 스크립트를 인쇄하고 있습니까? 쿼리에서 오류로 인해 죽을 수도 있습니다. 또한

즉 당신이 연결-db.php를 포함한 무엇 경우가 아닌 경우, 당신이 출력 버퍼를 엉망으로되어 필요한 파일에 어딘가에 수 있습니다 ..

나 ' 그러나 ... 그 점 옆에,

INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content' 
INSERT INTO source (submit_date, ip, content) values('$submit_date','$ip_address','$content'); 

을 그리고는 보안 쿼리되지 않습니다 : m 확신은 SQL이 잘못되었습니다.

  1. include("connect-db.php'); 스크립트의 실행을 죽일 수 있습니다

    여기에 이런 일이 없었던 이유를 몇 가지 이유가 더있다.

    • 내부에 이상이있는 경우
  2. 쿼리가 중단 될 수 있습니다.
  3. 출력이의 PHP 설정, 또는 내부, 다른 곳으로 재 지정됩니다
  4. getRealIPAddress()
  5. 이 문서화되어 있지 않습니다 "-db.php를 연결"하고 스크립트가 깨질 수 있습니다.
  6. SQL을 죽일 수도있는 $_POST['editor']에 뭔가 가짜가있을 수 있습니다.
+0

변경 내용을 설명해 주시겠습니까? –

+0

$ 내용을 인쇄하고 무엇을 먼저 얻을지보십시오. –

+1

@Pekka 웃 : 비슈누는 mysql_real_escape_string을 우회했는데, 실제로이를 수정하는 것은 의미가 없습니다. 결국 이스케이프 된 문자열에 데이터가 없으면 삽입 할 수 없으므로 메시지가 필요하지 않습니다. – Zeta

0

아래

+0

위에서 언급 한 쿼리를 업데이트했습니다. JS 메시지가 여전히 나타나지 않습니다. 보안 쿼리 란 무엇입니까 ?? 위의 예제를 사용하여 공유 할 수 있습니까? –

+0

mysql_query를 주석 처리하면 javascript가 실행됩니까? –

+0

당신이 옳습니다. JS는 mysql_query 라인을 주석 처리 한 후에도 실행되지 않습니다! 어떤 아이디어가 잘못되었을 수 있습니까? PHP 초보자는 여기에. –

관련 문제