Пользователь задает вопрос другому, можно анонимно. Так вот когда он задает его анонимно, скрипт не то чтобы скрывает его, он не запоминает. Мне надо чтобы настоящий `author_id` записывался в таблицу `spy_author_id` а `author_id` пусть будет 0 как он сам и делает. Конечно же сам пробовал, но увы без успешно. Работа с бд все же дело тонкое, мелкая ошибка,... К тому я не так хорошо знаком с мускл.
<?php
defined('QAENGINE_AJAX') or die('Access denied');
$logged_in = !is_null($user->get('id'));
// Filtrate userid
$user_id = intval($_POST['user_id']);
/*
* User is logged in and want to ask himself
*/
if($logged_in == true and $user->get('id') == $user_id) {
die(json_encode(array(
'error' => $language->get('error')
)));
}
// Filtrate question
$question = substr(trim(htmlspecialchars(strip_tags($_POST['question']))), 0, 300);
if(empty($question)) {
die(json_encode(array(
'message' => $language->get('type_question')
)));
}
$anonym = ($logged_in == false) ? 1 : intval($_POST['anonym']);
// Select private level
$private_level = $pdo->prepare('SELECT `private_level`
FROM ' . Config::get('db_prefix') . 'users
WHERE `id` = :user_id');
$private_level->execute(compact('user_id'));
if($private_level->rowCount() == 0) {
die(json_encode(array(
'error' => $language->get('user_doesnt_exists')
)));
}
$private_level = intval(current($private_level->fetch(PDO::FETCH_NUM)));
/*
* Anonym user, private level eq 1
*/
if($anonym == 1 and $private_level == 1) {
die(json_encode(array(
'message' => $language->get('private_level_error')
)));
}
$author_id = ($anonym == 0 and $logged_in == true) ? $user->get('id') : '0';
$date = time();
/*
* Add question
*/
$add_question = $pdo->prepare('INSERT INTO ' . Config::get('db_prefix') . 'questions
(`user_id`, `author_id`, `question`, `date`)
VALUES (:user_id, :author_id, :question, :date)');
/*
* Question added successfully
*/
if($add_question->execute(compact('user_id', 'author_id', 'question', 'date'))) {
die(json_encode(array(
'message' => $language->get('question_added')
)));
}
die(json_encode(array(
'error' => $language->get('error')
)));