AJAX вызывает PHP-страницу, нужна помощь - PullRequest
0 голосов
/ 16 июня 2011

Я не уверен, правильно ли я поступил, когда использовал AJAX для отправки некоторой информации на PHP-страницу с некоторым кодом, который подключается к базе данных и сохраняет фрагмент текста.Страница PHP, которую вызывает AJAX, должна ли эта страница PHP отличаться от обычной страницы PHP?Это не работает, я получаю сообщение 404 Not Found?

Вот PHP-страница:

<?php
session_start();
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

$replyArticleId = isset($_POST['replyArticleId']) ? $_POST['replyArticleId'] : '';
$replyText = isset($_POST['replyText']) ? $_POST['replyText'] : '';

$replySign = $_SESSION['accountId'];

date_default_timezone_set("Europe/Stockholm");
$date = new DateTime();
$replyDate = $date->format('Y-m-d H:i:s');

$tableUser = DB_PREFIX . WS_DB_USER;
$tablePost  = DB_PREFIX . WS_DB_POST;
$tableComment = DB_PREFIX . WS_DB_COMMENT;
$tableArticle = DB_PREFIX . WS_DB_ARTICLE;
$tableReply = DB_PREFIX . WS_DB_REPLY;

// Add new comment

$query1 = "INSERT INTO {$tableReply} (replyArticleId, replyText,replyUserId,        
replyDate) VALUES    ('{$replyArticleId}','{$replyText}','{$replySign}',  '{$replyDate}');";
$query2 = "UPDATE {$tableArticle} SET articleDateUpdated = NOW() WHERE articleId =     {$replyArticleId};";
$res = $mysqli->query($query1) or die($mysqli->error);
$res = $mysqli->query($query2) or die($mysqli->error);

$mysqli->close();

Это код AJAX, который я использую для вызова и отправки некоторого тестового контента:

$.ajax({
url: "PAddReplyProcessAJAX.php?replyArticleId=1", 
type: "POST",
dataType: "text",
data: "replyText=" + "test"
}); 



?>

Ответы [ 3 ]

1 голос
/ 16 июня 2011

Похоже, JavaScript не вызывает скрипт PHP там, где вы думаете.

Откройте консоль FireBug (или инструменты разработчика Chrome) и посмотрите точный URL-адрес, который запрашивается.

Попробуйте установить абсолютный путь для URL вашего скрипта, чтобы посмотреть, поможет ли это. В зависимости от структуры URL-адреса относительные пути могут различаться.

Как примечания, ваш PHP-скрипт содержит уязвимости SQL-инъекций. Убедитесь, что вы правильно экранировали значения или используете связанные параметры. Вы можете не заботиться о безопасности своего приложения по какой-либо причине, но оно все равно будет аварийно завершаться, когда кто-то вводит плохой символ, например, одиночную кавычку.

1 голос
/ 16 июня 2011

Вы должны использовать $ _GET в этой строке (страница php)

$replyArticleId = isset($_POST['replyArticleId']) ? $_POST['replyArticleId'] : '';

$replyArticleId = isset($_GET['replyArticleId']) ? $_GET['replyArticleId'] : '';

тип ajax также должен быть 'GET'

, если вы хотите передать данные POSTвам нужно передать действительные переменные данные.

проверить по этой ссылке http://api.jquery.com/jQuery.post/

вы также должны убедиться, что целевой файл php существует.Проверьте имя файла и местоположение файла.

0 голосов
/ 16 июня 2011

Это действительно URL, который вы хотите использовать PAddReplyProcessAJAX.php?Он находится в том же каталоге, что и страница, с которой вы вызываете ajax?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...