-1

チュートリアルの助けを借りて Facebook でログインを使用する方法を学んでいますが、ほとんど実行されていますが、データがデータベースに入力されていません。

これまでに機能したコードは次のとおりです

<?php
require 'lib/db.php';
require 'lib/facebook.php';
require 'lib/fbconfig.php';
session_start();
$facebook=$_SESSION['facebook'];
$userdata=$_SESSION['userdata'];
$logoutUrl=$_SESSION['logout'];
$access_token_title='fb_'.$facebook_appid.'_access_token';
$access_token=$facebook[$access_token_title];


if(!empty($userdata))
{
echo '<h1>Login User Details</h1>';
echo '<img src="https://graph.facebook.com/'.$userdata['id'].'/picture">';
echo "<br/>";
echo '<b>Access Token: </b>'.$access_token;
echo "<br/>";
echo '<b>User ID: </b>'.$userdata['id'];
echo "<br/>";
echo  '<b>Name: </b>'.$userdata['name'];
echo "<br/>";
echo  '<b>First Name: </b>'.$userdata['first_name'];
echo "<br/>";
echo  '<b>Last Name: </b>'.$userdata['last_name'];
echo "<br/>";
echo  '<b>Email: </b>'.$userdata['email'];
echo "<br/>";
echo  '<b>Gender: </b>'.$userdata['gender'];
echo "<br/>";
echo  '<b>Birthday: </b>'.$userdata['birthday'];
echo "<br/>";
echo  '<b>Location: </b>'.$userdata['location']['name'];
echo "<br/>";
echo  '<b>Hometown: </b>'.$userdata['hometown']['name'];
echo "<br/>";
echo  '<b>Bio :</b>'.$userdata['bio'];
echo "<br/>";
echo  '<b>Relationship Status: </b>'.$userdata['relationship_status'];
echo "<br/>";
echo  '<b>Time Zone: </b>'.$userdata['timezone'];
echo "<br/>";
echo "<br/>";

$facebook_id=$userdata['id'];
$name=$userdata['name'];
$email=$userdata['email'];
$gender=$userdata['gender'];
$birthday=$userdata['birthday'];
$location=mysql_real_escape_string($userdata['location']['name']);
$hometown=mysql_real_escape_string($userdata['hometown']['name']);
$bio=mysql_real_escape_string($userdata['bio']);
$relationship=$userdata['relationship_status'];
$timezone=$userdata['timezone'];
echo "$add = mysql_query('insert INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')</span>";

echo "<br/>";

 echo '<a href="'.$logoutUrl.'">Logout Facebook</a>';
 }
 else
 {
  header("Location: fblogin.php");
 }
 ?>

明らかに何か間違ったことをしています。それで、これに役立つチュートリアルを知っている人はいますか?

ありがとう!

4

2 に答える 2

0

何も挿入しません。

ただ行う:

$add = mysql_query("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')");

それがなければecho

補足として、まだ関数を使用しているようです。関数が非推奨になったため、mysql_*開始したばかりの場合は移動できます。ここに素晴らしいチュートリアルがあります。PDOmysql_*

PDO を使用してこれを実現する方法は次のとおりです。

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

$stmt = $db->prepare("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) 
    VALUES (:facebook_id,:name,:email,:gender,:birthday,:location,:hometown,:bio,:relationship,:timezone,:access_token)");
$stmt->execute(array(':facebook_id' => $facebook_id, ':name' => $name, ':email' => $email, ':gender' => $gender, ':birthday' => $birthday, ':location' => $location, ':hometown' => $hometown, ':bio' => $bio, ':relationship' => $relationship, ':timezone' => $timezone, ':access_token' => $access_token));
于 2012-10-03T07:06:14.090 に答える
0

クエリのエラー

echo "$add = mysql_query('insert INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')</span>";

する必要があります

$add = mysql_query("INSERT INTO users(`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `timezone`, `access_token`) VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$timezone','$access_token')");

PDOまたはmysqliの代わりに使用してみてくださいmysql

于 2012-10-03T07:12:09.827 に答える