2013-03-09 1 views
0

У меня следующие файлы. По какой-то причине мой JavaScript (внутри тегов 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), но это не относится к делу.

+0

@Pekka 웃 '$ содержание = mysql_real_escape_string (htmlspecialchars ($ _ POST [ 'редактор']));' –

+0

@Kolink я исправлюсь. –

+0

Значение «контент» сохраняется правильно, никаких проблем нет. Но Javascript (внутри тегов эха) по разу не работает. Кажется, что он вообще не доходит! –

ответ

-1

Try ниже код

<?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

Можете ли вы объяснить, что вы изменили? –

+0

попробуйте распечатать $ contents и посмотреть, что вы получаете первым. –

+1

@Pekka 웃: Вишну обошел «mysql_real_escape_string», что на самом деле не имеет смысла, чтобы исправить это. В конце концов, если escape-строка не содержит данных, она не может быть вставлена, и поэтому сообщение не требуется. – Zeta

0

Он должен должен напечатать предупреждение. Уверены, что вы печатаете сценарий? Я вижу, что он может умереть на ошибке в запросе.

Если это не так, что вы в том числе в Connect-db.php, может быть, что где-то в нужный файл вы Мессинг выходной буфер ..

Также я м довольно уверен, что SQL неправилен:

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'); 

И это не безопасный запрос, однако ... это рядом с точкой.

Вот еще несколько причин, почему это могло произойти:

  1. include("connect-db.php'); может убить выполнение сценария.
    • Если что-то не так внутри.
  2. Запрос может умереть.
  3. Выход перенаправлены в другое место, в конфигурации PHP, или внутри «Connect-db.php»
  4. getRealIPAddress() не документировано, и может привести сценарий сломать.
  5. Возможно, что-то фиктивное в $_POST['editor'], которое может сломать причину sql, чтобы умереть.
+0

Я обновил запрос, упомянутый выше. Сообщение JS все еще не отображается. Что такое безопасный запрос? Можете ли вы поделиться ими с помощью приведенного выше примера? –

+0

Если вы закомментируете mysql_query, то выполняется ли javascript? –

+0

Вы правы. JS не выполняется даже после комментирования строки mysql_query! Любые идеи, что могло бы пойти не так? PHP новичок здесь. –

Смежные вопросы