[英]Facebook Registration Connect
更新:
好的,所以我已經解決了我以前的問題(除了SQLinjection之外,我不確定如何修補,但目前它並不重要),但是我需要獲取它以檢測Male或Female並從中剝離一些字符。是我為此做的代碼
我在這里定義了變量:
$gender = $response["registration"]["gender"];
然后我在這里定義了新性別
$new_gender = "F";
但是我然后添加了一個if語句,該語句應該檢測是否為Male並將其更改為“ M”
if($gender == "Male"){
$new_gender = "M";
}
該代碼似乎只是忽略了if語句,因為它始終對女性呈現為F。 (我需要這種方式的代碼或類似的替代方法,因為sql數據庫的工作方式必須為1個字母長,因此僅M或F。
我的第二個問題是數據庫中顯示了注冊時間,但是如果有人可以先解決此問題,我將用其他問題進行更新。
非常感謝,
我一直在努力做到這一點,因此,當用戶單擊在Facebook上注冊時,它會將信息添加到我的數據庫中。 但是發生錯誤,因此不確定該怎么做...這是代碼,請以任何方式幫助我。
<?php
define('FACEBOOK_APP_ID', '276105599128518');
define('FACEBOOK_SECRET', 'mysecretappidhere');
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
if ($_REQUEST) {
echo '<p>signed_request contents:</p>';
$response = parse_signed_request($_REQUEST['signed_request'],
FACEBOOK_SECRET);
//$no_longer_needed_but_save_for_backup = explode(' ',$name,2);
//$dunno = $name_arr[0];
//$dunno = isset($name_arr[1])?$name_arr[1]:'';
//$Location_Array = $response["registration"]["location"]["name"];
$uname = $response["registration"]["username"];
$rname = $response["registration"]["name"];
$seckey = $response["registration"]["seckey"];
$email = $response["registration"]["email"];
$password = $response["registration"]["password"];
$gender = $response["registration"]["gender"];
$ip_last = $_SERVER['REMOTE_ADDR'];
$sessionKey = 'RevCMS-'.rand(9,999).'/'.substr(sha1(time()).'/'.rand(9,9999999).'/'.rand(9,9999999).'/'.rand(9,9999999),0,33);
// Connecting to database
mysql_connect('localhost', 'root', 'mypasswouldbehere') or die("MySQL Error: " . mysql_error());
mysql_select_db('phoenix3') or die("MySQL Error: " . mysql_error());
// Inserting into users table
$result = mysql_query("INSERT INTO users (id, username, real_name, password, mail, auth_ticket, rank, credits, vip_points, activity_points, activity_points_lastupdate, look, gender, motto, acount_created, last_online, online, ip_last, ip_reg, home_room, respect, daily_respect_points, daily_pet_respect_points, newbie_status, is_muted, mutant_penalty, mutant_penalty_expire, block_newfriends, hide_online, hide_inroom, mail_verified, vip, volume, seckey)
VALUES
(NULL, '$uname', '$rname', '$password', '$email', '$sessionKey','8', '10000', '0', '0', '0', '-', '$gender', 'I <3 Tropical-Resort', 'time()', ' . time() . ', '0', '$ip_last', '$ip_last', '8', '0', '3', '3', '0', '0', '0', '0', '0', '0', '0', '1', '0', '100', '$seckey')");
if($result){
echo"should/'ve stored";
// GOT RESULTS
}
else
{
echo "error";
// Error in storing
}
}
else
{
echo '$_REQUEST is empty';
}
?>
你的,布拉德
ceejayoz通過回顯echo mysql_error();
解決了該問題echo mysql_error();
解決了這個問題,因為它告訴您所有的mysql問題。 要解決性別問題,我需要將其從Male縮短為“ M”,或將Female縮短為“ F”,只需使用PHP的substr即可,例如:
$gender = substr("$fbgender", -4, 1);
謝謝大家的幫助,-布拉德
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.