Я использую Javascript SDK от Facebook и не могу сохранить базовые данные пользователя в своей базе данных, используя Ajax и PHP. Я уже пробовал console.log в своем ajax, чтобы увидеть, какие детали передаются, и это правильно. Я предполагаю, что это проблема с моим файлом PHP. Любая помощь очень ценится.
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
var data = {
name: response.first_name + response.last_name,
email: response.email,
gender: response.gender
};
$.ajax({
type: "POST",
url: "http://www.lookingfour.com/std.php",
data: data,
cache: false,
dataType: 'json',
success: function () {
console.log('Successful login for: ' + data);
alert('success');;
}
});
});
}
Вот мой файл PHP
Std.php
<?php
$link = mysql_connect('lookingfour.com', 'lookfoursand', 'look4sandbox');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('lookfoursandbox', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
$name = $_POST['name'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$sql = "INSERT INTO test_table(id, user_name, user_email, user_gender)
VALUES(NULL,'$name','$email','$gender')";
if(!mysql_query($sql))
{
die('Error : ' . mysql_error());
}
mysql_close($link);
//}
?>
Дважды проверил детали базы данных, и это не проблема здесь.
ОБНОВЛЕНИЕ: ИСПРАВЛЕНО, СЧИТАЯ ПРЕДЛОЖЕНИЯ "dann" и "zpr" В МОЕМ ВОПРОСЕ. Я НЕ ТОЛЬКО УВЕРЕН, КАК ДАТЬ 2 ПРАВИЛЬНЫХ ОТВЕТА ЗА ДВУХ ВАС, НО СПАСИБО ОГРОМНОЕ
3 ответа
Вы передаете переменные как строки запроса и пытаетесь прочитать их как POST
переменные. Вместо того, чтобы разделять их на &
s, превратите их в объект JSON и передайте это вашему вызову ajax с указанием метода POST. Пример объекта JSON будет выглядеть примерно так:
var data = {
name: name,
email: email,
gender: gender
}
Затем вы передадите это в ваш вызов ajax как данные:
$.ajax({
method: POST,
data: data,
...
)};
Также обратите внимание на method: POST
, я не думаю, что есть допустимое свойство с именем "type".
Редактировать: type
является допустимым псевдонимом для method
.
$.ajax({
type: "POST",
url: "std.php",
data: {
name: name,
email: email,
gender: gender
},
success: function () {
console.log('Successful login for: ' + name + email + gender);
alert("Success");
}
});
Попробуй это:
var dataString = 'name='+ name+'&email='+email+'&gender='+gender;
$.ajax({
type: "POST",
url: 'http://www.lookingfour.com/std.php',
data: dataString,
cache: false,
success: function()
{
alert('success');
}
});
//php file
$name=mysql_escape_String($_POST['name']);
$email=mysql_escape_String($_POST['email']);
$gender=mysql_escape_String($_POST['gender']);
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.