За последние 24 часа нас посетили 17187 программистов и 1692 робота. Сейчас ищут 988 программистов ...

Ajax+PHP

Тема в разделе "PHP для новичков", создана пользователем Pyroman, 27 май 2012.

  1. Pyroman

    Pyroman Активный пользователь

    С нами с:
    20 май 2012
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте. Возникла проблема. В моём движке имя пользователя берётся посредством "$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). Как это можно исправить? Спасибо.
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Информации недостаточно.
     
  3. Pyroman

    Pyroman Активный пользователь

    С нами с:
    20 май 2012
    Сообщения:
    11
    Симпатии:
    0
    Какую информацию предоставить?
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну просто между Ajax-запросом и обычным запросом - с точки зрения сервера по идее нету никаких таких принципиальных различий, чтобы можно было по твоему вопросу понять, что же там такое происходит. По этому я не знаю что ещё ответить. Где-то какая-то ошибка (или опечатка, возможно) и нужно искать её. Можешь исходники показать, только желательно не копировать прямо всё, а только фрагменты, где именно это должно быть, скорее всего. Хотя мне кажется, что это может быть где угодно...
     
  5. Pyroman

    Pyroman Активный пользователь

    С нами с:
    20 май 2012
    Сообщения:
    11
    Симпатии:
    0
    Сам AJAX-запрос:
    Код (Text):
    1.  
    2. <script type="text/javascript" src="http://mysite.ru/jquery-1.7.2.js"></script>
    3. <script type="text/javascript">
    4.         function buy1(that) {
    5.     var nazvanie = $(that).closest('form').find('.nazvanie').val();
    6.     var icount = $(that).closest('form').find('.icount').val();
    7.     var iprice = $(that).closest('form').find('.iprice').val();
    8.     var count = $(that).closest('form').find('.count').val();
    9.     var buy4 = $(that).val();
    10.    
    11.     $.ajax({
    12.         type: "POST",
    13.         data: "username10="+username10+"&nazvanie="+nazvanie+"&icount="+icount+"&iprice="+iprice+"&count="+count+"&buy0="+buy4+"&hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv=fbhabfhbshfbhsbfh",
    14.         url: 'engine/modules/shop/pokupka.php',
    15.         success: function(data) {
    16.             alert(data);
    17.         }
    18.     });
    19. }
    20. </script>
    Содержимое pokupka.php:
    Код (PHP):
    1. <?php
    2. if (!isset($_POST['hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv'])) {
    3. die('Hacking attempt!');}
    4.     $db_realmon = realmoney;
    5.     mysql_connect('Тут хост', 'тут логин', 'Тут пароль')or die('Не удалось соединиться: ' . mysql_error()); //не трогать
    6.     mysql_select_db('Имя базы данных');
    7.     mysql_query('set NAMES utf8');
    8. $idtovara = $_POST['buy0'];
    9. $koplate = $_POST['iprice']*$_POST['count'];
    10. $kolichestvo = $_POST['count']*$_POST['icount'];
    11. $username10 = $member_id['name'];
    12. $sql_price = mysql_query("SELECT price FROM donate_shop WHERE item_id='$idtovara'");
    13. $price_result = mysql_result($sql_price, 0);
    14. $sql_num = mysql_query("SELECT stack FROM donate_shop WHERE item_id='$idtovara'");
    15. $query_num = mysql_result($sql_num, 0);
    16. $count = $_POST['count'];
    17. if(!$_POST['iprice'] == $price_result || !$_POST['icount'] == $query_num){
    18. echo "STOP.";
    19. }else{
    20. if(is_numeric($count)){
    21. if($count == (int)$count){
    22. if(!$count == '0'){
    23. if($username10 == ''){
    24. echo "Сначала авторизируйтесь!";
    25. }else{
    26.     $sql = mysql_query("SELECT cash FROM $db_realmon WHERE name='$username10'");
    27.     $query = mysql_result($sql,0);
    28. if($query < $koplate){
    29. echo "У вас недостаточно средств, пополните счет через личный кабинет.";}
    30.     else{
    31.   mysql_query("UPDATE `realmoney` SET `cash` = `cash` - ".str_replace(',', '.', $koplate)." WHERE `name` = '".$username10."'")or die(mysql_error()); 
    32.   mysql_query("INSERT INTO goods (id, nickname, item_id, item_amount) VALUES (NULL, '$username10', '$idtovara', '$kolichestvo')")or die(mysql_error());
    33.     $logtext = "$date : $username10 купил $nazvanie в количестве $kolichestvo";
    34.     echo "Вы успешно купили $kolichestvo $nazvanie";
    35.     $fp = fopen('shop.txt', 'a');
    36.     fwrite($fp, $logtext);
    37.     fwrite($fp, "\n");
    38.     fclose($fp);
    39.     }}}else{
    40.     echo "Введите правильное число";
    41.     }
    42.     }else{
    43.     echo "Введите целое число в 'Количество'";
    44.     }
    45.     }else{
    46.     echo "Вы ввели неправильное количество";
    47.     }
    48.     }
    49. ?>