@artem20152000

Почему не срабатывает запрос PDO?

Привет! Я работаю с ajax. Собственно вот в чем проблема.... Когда я отсылаю данные в файл, то он создает булевые переменные и потом при фильтрации изменяет их значение., после чего возвращает данные в js файл.

В js файл у меня приходят данные из php файла.А вот и сама проблема: в js написано, что если переменная не true, то то выводит ообщение, что запрос не прошел. Собственно, что не так в моем php?

Вот код php файла:

<?php
	include_once("../include/db.php");

	if(isset($_POST["title"]) and isset($_POST["text"])){
		$title = htmlspecialchars($_POST["title"]);
		$text = htmlspecialchars($_POST["text"]);
		$date = date("d.m.Y");
		$time = date("H:i");

		$not_robot = false;
		$is_added = false;

        if(isset($_POST['g-recaptcha-response'])){
              $captcha = $_POST['g-recaptcha-response'];
        }

        if(!$captcha or empty($captcha)){
        	$not_robot = false;
        }else{
        	$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LdaggsTAAAAAJmAWEvWmndV4AiFb3snPzN-f1J0&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
        	
            if($response.success == false){
              $not_robot = false;
            }else{
            	$not_robot = true;

            	$sql = "INSERT INTO posts VALUES(NULL, :title, :atext, :adate, :time, 0, 1, :user_login, :user_id)";
            	$res = $bd->prepare($sql);

            	$res->bindValue(":title", $title);
            	$res->bindValue(":atext", $text);
            	$res->bindValue(":adate", $date);
            	$res->bindValue(":time", $time);
            	$res->bindValue(":user_login", $_COOKIE["user_login"]);
            	$res->bindValue(":user_id", $_COOKIE["user_id"]);

            	if($res->execute()){
            		$is_added = true;
            	}else{
            		$is_added = false;
            		$arr = $res->errorInfo();
            		$arr = array($arr);
            	}
            }
         	echo json_decode(array($not_robot, $is_added, $arr));
        }
	}
?>
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AlikDex
json_decode() декодирует строку жсон.
$json = [];
$json['not_robot'] = $not_robot;
$json['is_added'] = $is_addedt;
$json['arr'] = $arr;
echo json_encode($json);

вообще конечно лучче сразу использовать массив для кодирования в нужных местах, но для теста думаю потянет.
Ответ написан
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Привет,

открой консоль браузера ( F12 ), и посмотри ответ от PHP скрипта. Что там в ответе?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы