Здравствуйте. Возникла проблема. В моём движке имя пользователя берётся посредством "$member_id['name'];". Если из файла 1.php отправить запрос к файлу 2.php с какими-либо данными через if(isset($_POST)), а в файле 2.php указать в качестве имени пользователя "$member_id['name'];", то всё нормально. Но если отправлять запрос из файла 1.php в файл 2.php через AJAX и в файле 2.php указать имя пользователя как "$member_id['name'];", то вместо имени пользователя выводится цифра 1 (вероятно, мой ID). Как это можно исправить? Спасибо.
Ну просто между Ajax-запросом и обычным запросом - с точки зрения сервера по идее нету никаких таких принципиальных различий, чтобы можно было по твоему вопросу понять, что же там такое происходит. По этому я не знаю что ещё ответить. Где-то какая-то ошибка (или опечатка, возможно) и нужно искать её. Можешь исходники показать, только желательно не копировать прямо всё, а только фрагменты, где именно это должно быть, скорее всего. Хотя мне кажется, что это может быть где угодно...
Сам AJAX-запрос: Код (Text): <script type="text/javascript" src="http://mysite.ru/jquery-1.7.2.js"></script> <script type="text/javascript"> function buy1(that) { var nazvanie = $(that).closest('form').find('.nazvanie').val(); var icount = $(that).closest('form').find('.icount').val(); var iprice = $(that).closest('form').find('.iprice').val(); var count = $(that).closest('form').find('.count').val(); var buy4 = $(that).val(); $.ajax({ type: "POST", data: "username10="+username10+"&nazvanie="+nazvanie+"&icount="+icount+"&iprice="+iprice+"&count="+count+"&buy0="+buy4+"&hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv=fbhabfhbshfbhsbfh", url: 'engine/modules/shop/pokupka.php', success: function(data) { alert(data); } }); } </script> Содержимое pokupka.php: Код (PHP): <?php session_start(); if (!isset($_POST['hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv'])) { die('Hacking attempt!');} $db_realmon = realmoney; mysql_connect('Тут хост', 'тут логин', 'Тут пароль')or die('Не удалось соединиться: ' . mysql_error()); //не трогать mysql_select_db('Имя базы данных'); mysql_query('set NAMES utf8'); $idtovara = $_POST['buy0']; $koplate = $_POST['iprice']*$_POST['count']; $kolichestvo = $_POST['count']*$_POST['icount']; $username10 = $member_id['name']; $sql_price = mysql_query("SELECT price FROM donate_shop WHERE item_id='$idtovara'"); $price_result = mysql_result($sql_price, 0); $sql_num = mysql_query("SELECT stack FROM donate_shop WHERE item_id='$idtovara'"); $query_num = mysql_result($sql_num, 0); $count = $_POST['count']; if(!$_POST['iprice'] == $price_result || !$_POST['icount'] == $query_num){ echo "STOP."; }else{ if(is_numeric($count)){ if($count == (int)$count){ if(!$count == '0'){ if($username10 == ''){ echo "Сначала авторизируйтесь!"; }else{ $sql = mysql_query("SELECT cash FROM $db_realmon WHERE name='$username10'"); $query = mysql_result($sql,0); if($query < $koplate){ echo "У вас недостаточно средств, пополните счет через личный кабинет.";} else{ mysql_query("UPDATE `realmoney` SET `cash` = `cash` - ".str_replace(',', '.', $koplate)." WHERE `name` = '".$username10."'")or die(mysql_error()); mysql_query("INSERT INTO goods (id, nickname, item_id, item_amount) VALUES (NULL, '$username10', '$idtovara', '$kolichestvo')")or die(mysql_error()); $logtext = "$date : $username10 купил $nazvanie в количестве $kolichestvo"; echo "Вы успешно купили $kolichestvo $nazvanie"; $fp = fopen('shop.txt', 'a'); fwrite($fp, $logtext); fwrite($fp, "\n"); fclose($fp); }}}else{ echo "Введите правильное число"; } }else{ echo "Введите целое число в 'Количество'"; } }else{ echo "Вы ввели неправильное количество"; } } ?>