Задать вопрос
IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

Почему php не видит отсылаемый аяксом объект?

ourDataSend={
                    	youIps:youIp,
                    	name:shortUse.first_name
                    }
                    console.info(ourDataSend);
                    console.log(JSON.stringify(ourDataSend));
                    
                    $.ajax({
                    	url:'sendUser.php',
                    	type:'GET',                   
                    	data: JSON.stringify(ourDataSend),
                    	processData: false,
                        contentType: "application/json; charset=UTF-8",
                    	complete: function(){console.log("AJAX");}
                    });


$ourDataSend = $_GET['ourDataSend'];


$result=$MySql->query("INSERT INTO `UserVk`(`adress`,`Photo`,`NameS`,`ip`,`Cookie`,`Data`)
VALUE (1,1,'$ourDataSend',1,1,1 ) ");


в чём ошибка ?

в БД такая картинка выходит
3d9774599b1842239b218c2628403717.png
  • Вопрос задан
  • 756 просмотров
Подписаться 2 Оценить 3 комментария
Решения вопроса 1
IgorBee
@IgorBee Автор вопроса
JS,VBS,3D.Web с 07.2015
$.ajax({
                     url:'http://welovepavel.esy.es/t/yourVk/sendUser.php',
                     type:'POST',
                     dataType: 'json',                     
                      data:{myData:ourDataSend}                          
               });


$ourDataSend = $_POST['myData'];
var_dump($_POST); //для отладки выводимого массива,потом удалить можно
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
kasheibess
@kasheibess
веб уже не тот
А зачем делать JSON.stringify, если поле data может принимать сырой js объект?
Ответ написан
Комментировать
@nozzy
Symfony, Laravel, SQL, Python, Telegram
Перед sql-запросом:
var_dump($ourDataSend);
Ответ написан
Комментировать
у вас $_GET будет содержать массив, который вы передали в data. тоесть, вы можете смело обращаться к $_GET['youIps'] и $_GET['name'], а не к $_GET['ourDataSend']. ourDataSend - это всего лишь имя переменной и оно не передается AJAX-ом
Ответ написан
@vshvydky
фигня все это
вы передаете sendUser.php?{"youIps":"1111","name":"22222"}
А в гет ищите $_GET['ourDataSend'];
то есть sendUser.php?ourDataSend={"youIps":"1111","name":"22222"}
1. Посмотрите что вообще прилетает после вашего запроса в GET Эдак как - то так var_dump[$_GET];
2. Если я прав, то GET может содержать нечто типа {"youIps":"1111","name":"22222"}
Дальше, если я конечно прав, можно получить в переменную $ourDataSend = $_GET
и если не будет конфликта в инсерте с ковычками, то может и запишет все
если будет , то экранируйте через addslashes (string)
А вообще так не делается. Если передается json , то пусть это выглядит так:
$.ajax({
		type: "POST",
		url: "sendUser.php",
		data:{jsonData:JSON.stringify(ourDataSend)},
....


А в пхп ловите так:
if(isset($_POST['jsonData']))
	$data = json_decode($_POST['jsonData']);

Ну дальше доступ к полям получаете через
$YOUIP = $data->{'youIp'} ;
$NAME = $data->{'name'};
Ответ написан
Ваш ответ на вопрос

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

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