Jump to content
Sign in to follow this  
Stouffers3

Facebook Connect Support Thread

Recommended Posts

could someone gimme a hand here.

 

i want to create my logout in one page. i tried this, but its not logging me out

 

<?php

if ($_GET['logout'] == 1){

setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', '.sensored_mydomain_is_here.com');

}

?>

here is a pastebin of my single page script including the files from this contribution

 

http://pastebin.com/B0bpLJte

 

tia

Share this post


Link to post
Share on other sites

could someone gimme a hand here.

 

i want to create my logout in one page. i tried this, but its not logging me out

 

<?php

if ($_GET['logout'] == 1){

setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', '.sensored_mydomain_is_here.com');

}

?>

here is a pastebin of my single page script including the files from this contribution

 

http://pastebin.com/B0bpLJte

 

tia

i think i solved my problem but now im expirencing this. Cannot redeclare class FacebookApiException

Share this post


Link to post
Share on other sites

i think i solved my problem but now im expirencing this. Cannot redeclare class FacebookApiException

ok.. i reinstalled the app into oscommerce from scratch as listed in the instrcutins. however, in iexplorer it automatically goes in to create_account.php even if i dont have any cookies or sessions saved. im not loged in facebook, and ive tried deleting cookkies on computer and going to logoff.php.. still no

Share this post


Link to post
Share on other sites

[quote

Edited by andes1

Share this post


Link to post
Share on other sites

Hi New to this forum

 

I used an OSmod to try to setup facebook connect to allow users to login to my site. Nice contribution thanks facebook connect 1.1. However once I log in, I am directed to the registration page with only partial details filled. It seems as if not all fields are filled such as address.

 

The email address seems to be my Ap ID key so something is not working correctly. This is what appears in the email field:

 

apps+154827634559254.1076601898.8f826ad7bb7cbe617f7a56e85a5293cc@proxymail.facebook.com

 

Any advise would be appreciated.

Share this post


Link to post
Share on other sites

New to facebook dev but I have a Question:

 

Canvas url - should that be set the the create_account.php page?

if the store is running on root and not /catalog/

Edited by sublok

Share this post


Link to post
Share on other sites

Never mind - jumped the gun.. The Facebook setting canvas directory needed to be longer and not directly pointed at the create_account.php

 

As a side note, if a customer is logged in to Facebook, and does not have a user account then they are prompted create a new account (pre-filling the information available )...

 

However, If the customer has already created an account (*in the case of returning customers, or if they update their email address from their account page), with an email other than their facebook, it does not give the customer the chance to login and automatically redirects them to the create_account page.

 

Thus if user exists with different email, but logged into Facebook under separate email there is no way for them to login with the non-Facebook email. It just loops on the login.php page...

 

Since we do heavy marketing and advertising through a variety of channels, thus it could confused those already registered under a different email.

 

Is there a work around for this?

Edited by sublok

Share this post


Link to post
Share on other sites

Ok part of the problem to my last post found for anyone who may come across this.

 

The email is a proxy email that Facebook sets based on the user setting of the person that is trying to join.

 

So you get something like app+...@proxymail.facebook.com.

 

To resolve this is directly related to the first initial login of the facebook user. When they click Facebook Connect login on your site, the popup will ask the facebook user if they want to allow you permission to their details.

 

NOW if the facebook user does not use the dropdown box to specify their real email, what happens is that the proxy email is given to your OScommerce create_account page. If they do use the dropdown box and select their real email, you will get that populated to your account page.

 

I am still looking for the answer on how to auto-populate all the other fields such as Address, City, State.

 

Any one there to help!

Share this post


Link to post
Share on other sites

im having an issue that when a logged in user logs out, than returns to login.php, login.php will refresh itself at least 30 times. what i believe it is doing in firefox is searching for old or previous cookies. if my theory is wrong than it would mean logout.php doesnt work.

 

what can i post for you to get assistance.

 

thanks in advance

Share this post


Link to post
Share on other sites
it would mean logout.php doesnt work.

 

logout works good, give the customer the choice to finish his FB session if he wants.

 

when a customer logout from your store, that does not mean that he wants to finish his FB activities; for that reason is good to give him this choice on logout page...

 

a simple link to FB CAN DO THAT!

 

watch this video

 

 

Share this post


Link to post
Share on other sites

Hi, although I've checked create_account.php with FB and it worked I have many customers complaints that they are unable to create account. It seems that not everything is OK in the create_account.php. Have anyone noticed the same problem? Here is an example complaint:

 

Hi. I'm trying to create an account so that I can purchase XYZ, as recommended by XYZ.

However, I am unable to...

I have tried 3 differnt computers at 2 different locations, used firefox and IE, nothing seems to work, it just puts me back to the 'create account' page and askd me to input my gender. And then just repeats this, even after i have filled in all the boxes correctly.

At one point It seemed I had managed to create an account as it sent me to a 'Welcome, please sign in' page. But when i enter my e-mail and password it says there is no record for this..

Please can you help me to find a way to purchase this? Maybe without creating an account if necessary.

By the way, I'm located in China if that makes any difference...

Thanks.

 

Regards,

Michal

Share this post


Link to post
Share on other sites

I am not sure what I have done wrong.

 

It all looks ok however clicking the button does nothing at all.

 

Here is my create_account.php

<?php
/*
 $Id: create_account.php 1739 2007-12-20 00:52:16Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/
//Facebook Connect

include 'includes/classes/facebook.php';

include_once "fbconnect.php";



//if user is logged in and session is valid.

if ($fbme){

//collect some data using legacy api

   $param  =   array(

   	'method'     => 'users.getinfo',

       'uids'       => $fbme['id'],

       'fields'     => 'birthday_date, locale',

       'callback'   => ''

   );



   try{

       $info           =   $facebook->api($param);

   }

   catch(Exception $o){

       error_log("Legacy Api Calling Error!");

   }

   //convert fb gender

   if($fbme['gender'] == 'female'){

   	$fbgender = 'f';

   }elseif ($fbme['gender'] == 'male'){

   	$fbgender = 'm';

   }

}

//end of Facebook Connect
 require('includes/application_top.php');
//Facebook connect

//check if facebook user is already registered

if($fbme){

$fb_customer_query = tep_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where fb_user_id = '" . $fbme['id'] . "'");

$fb_customer = tep_db_fetch_array($fb_customer_query);

if($fb_customer['total'] > 0){

	tep_redirect(tep_href_link(FILENAME_ACCOUNT));

}

}

//END Facebook Connect
// needs to be included earlier to set the success message in the messageStack
 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CREATE_ACCOUNT);

 $process = false;
 if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) {
   $process = true;

   if (ACCOUNT_GENDER == 'true') {
     if (isset($HTTP_POST_VARS['gender'])) {
       $gender = tep_db_prepare_input($HTTP_POST_VARS['gender']);
     } else {
       $gender = false;
     }
   }
   $firstname = tep_db_prepare_input($HTTP_POST_VARS['firstname']);
   $lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']);
   if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input($HTTP_POST_VARS['dob']);
   $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
   if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input($HTTP_POST_VARS['company']);
   $street_address = tep_db_prepare_input($HTTP_POST_VARS['street_address']);
   if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input($HTTP_POST_VARS['suburb']);
   $postcode = tep_db_prepare_input($HTTP_POST_VARS['postcode']);
   $city = tep_db_prepare_input($HTTP_POST_VARS['city']);
   if (ACCOUNT_STATE == 'true') {
     $state = tep_db_prepare_input($HTTP_POST_VARS['state']);
     if (isset($HTTP_POST_VARS['zone_id'])) {
       $zone_id = tep_db_prepare_input($HTTP_POST_VARS['zone_id']);
     } else {
       $zone_id = false;
     }
   }
   $country = tep_db_prepare_input($HTTP_POST_VARS['country']);
   $telephone = tep_db_prepare_input($HTTP_POST_VARS['telephone']);
   $fax = tep_db_prepare_input($HTTP_POST_VARS['fax']);
   if (isset($HTTP_POST_VARS['newsletter'])) {
     $newsletter = tep_db_prepare_input($HTTP_POST_VARS['newsletter']);
   } else {
     $newsletter = false;
   }
   $password = tep_db_prepare_input($HTTP_POST_VARS['password']);
   $confirmation = tep_db_prepare_input($HTTP_POST_VARS['confirmation']);

   $error = false;

   if (ACCOUNT_GENDER == 'true') {
     if ( ($gender != 'm') && ($gender != 'f') ) {
       $error = true;

       $messageStack->add('create_account', ENTRY_GENDER_ERROR);
     }
   }

   if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR);
   }

   if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);
   }

   if (ACCOUNT_DOB == 'true') {
     if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4)) == false) {
       $error = true;

       $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);
     }
   }

   if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR);
   } elseif (tep_validate_email($email_address) == false) {
     $error = true;

     $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
   } else {
     $check_email_query = tep_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
     $check_email = tep_db_fetch_array($check_email_query);
     if ($check_email['total'] > 0) {
       $error = true;

       $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);
     }
   }

   if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR);
   }

   if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_POST_CODE_ERROR);
   }

   if (strlen($city) < ENTRY_CITY_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_CITY_ERROR);
   }

   if (is_numeric($country) == false) {
     $error = true;

     $messageStack->add('create_account', ENTRY_COUNTRY_ERROR);
   }

   if (ACCOUNT_STATE == 'true') {
     $zone_id = 0;
     $check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "'");
     $check = tep_db_fetch_array($check_query);
     $entry_state_has_zones = ($check['total'] > 0);
     if ($entry_state_has_zones == true) {
       $zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name = '" . tep_db_input($state) . "' or zone_code = '" . tep_db_input($state) . "')");
       if (tep_db_num_rows($zone_query) == 1) {
         $zone = tep_db_fetch_array($zone_query);
         $zone_id = $zone['zone_id'];
       } else {
         $error = true;

         $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);
       }
     } else {
       if (strlen($state) < ENTRY_STATE_MIN_LENGTH) {
         $error = true;

         $messageStack->add('create_account', ENTRY_STATE_ERROR);
       }
     }
   }

   if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR);
   }


   if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) {
     $error = true;

     $messageStack->add('create_account', ENTRY_PASSWORD_ERROR);
   } elseif ($password != $confirmation) {
     $error = true;

     $messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING);
   }

   if ($error == false) {
$sql_data_array = array('customers_firstname' => $firstname,

                             'customers_lastname' => $lastname,

                             'customers_email_address' => $email_address,

                             'customers_telephone' => $telephone,

                             'customers_fax' => $fax,

                             'customers_newsletter' => $newsletter,

                             'customers_password' => tep_encrypt_password($password),

     						  'fb_user_id' => $fbme['id']);

     if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender;
     if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob);

     tep_db_perform(TABLE_CUSTOMERS, $sql_data_array);

     $customer_id = tep_db_insert_id();

     $sql_data_array = array('customers_id' => $customer_id,
                             'entry_firstname' => $firstname,
                             'entry_lastname' => $lastname,
                             'entry_street_address' => $street_address,
                             'entry_postcode' => $postcode,
                             'entry_city' => $city,
                             'entry_country_id' => $country);

     if (ACCOUNT_GENDER == 'true') $sql_data_array['entry_gender'] = $gender;
     if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $company;
     if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $suburb;
     if (ACCOUNT_STATE == 'true') {
       if ($zone_id > 0) {
         $sql_data_array['entry_zone_id'] = $zone_id;
         $sql_data_array['entry_state'] = '';
       } else {
         $sql_data_array['entry_zone_id'] = '0';
         $sql_data_array['entry_state'] = $state;
       }
     }

     tep_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array);

     $address_id = tep_db_insert_id();

     tep_db_query("update " . TABLE_CUSTOMERS . " set customers_default_address_id = '" . (int)$address_id . "' where customers_id = '" . (int)$customer_id . "'");

     tep_db_query("insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('" . (int)$customer_id . "', '0', now())");

     if (SESSION_RECREATE == 'True') {
       tep_session_recreate();
     }

     $customer_first_name = $firstname;
     $customer_default_address_id = $address_id;
     $customer_country_id = $country;
     $customer_zone_id = $zone_id;
     tep_session_register('customer_id');
     tep_session_register('customer_first_name');
     tep_session_register('customer_default_address_id');
     tep_session_register('customer_country_id');
     tep_session_register('customer_zone_id');

// restore cart contents
     $cart->restore_contents();

// build the message content
     $name = $firstname . ' ' . $lastname;

     if (ACCOUNT_GENDER == 'true') {
        if ($gender == 'm') {
          $email_text = sprintf(EMAIL_GREET_MR, $lastname);
        } else {
          $email_text = sprintf(EMAIL_GREET_MS, $lastname);
        }
     } else {
       $email_text = sprintf(EMAIL_GREET_NONE, $firstname);
     }

     $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;
     tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

     tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL'));
   }
 }

 $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<?php require('includes/form_check.js.php'); ?>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('create_account', tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onSubmit="return check_form(create_account);"') . tep_draw_hidden_field('action', 'process'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_account.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="smallText"><br><?php echo sprintf(TEXT_ORIGIN_LOGIN, tep_href_link(FILENAME_LOGIN, tep_get_all_get_params(), 'SSL')); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<tr>

     	<td>

             <div id="fb-root"></div>

       <script type="text/javascript">

           window.fbAsyncInit = function() {

               FB.init({appId: '<?=$fbconfig['appid' ]?>', status: true, cookie: true, xfbml: true});



               /* All the events registered */

               FB.Event.subscribe('auth.login', function(response) {

                   // do something with response

                   login();

               });

               FB.Event.subscribe('auth.logout', function(response) {

                   // do something with response

                   logout();

               });

           };

           (function() {

               var e = document.createElement('script');

               e.type = 'text/javascript';

               e.src = document.location.protocol +

                   '//connect.facebook.net/en_US/all.js';

               e.async = true;

               document.getElementById('fb-root').appendChild(e);

           }());



           function login(){

               document.location.href = "create_account.php";

           }



           function logout(){

               document.location.href = "logoff.php";

           }



</script>

<?php if($fbme){

}else{?>

   <p>

       <fb:login-button autologoutlink="true" perms="email,offline_access,user_birthday,user_location,user_work_history,user_religion_politics,user_relationships">Connect with Facebook</fb:login-button>

   </p>

   <?php }?>

   	</td>

     </tr>

     <tr>

       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

     </tr>
<?php
 if ($messageStack->size('create_account') > 0) {
?>
     <tr>
       <td><?php echo $messageStack->output('create_account'); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 }
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td class="main"><b><?php echo CATEGORY_PERSONAL; ?></b></td>
          <td class="inputRequirement" align="right"><?php echo FORM_REQUIRED_INFORMATION; ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
<?php

 if (ACCOUNT_GENDER == 'true') {

?>

             <tr>

               <td class="main"><?php echo ENTRY_GENDER; ?></td>

               <td class="main"><?php echo tep_draw_radio_field('gender', $fbgender) . '  ' . MALE . '  ' . tep_draw_radio_field('gender', 'f') . '  ' . FEMALE . ' ' . (tep_not_null(ENTRY_GENDER_TEXT) ? '<span class="inputRequirement">' . ENTRY_GENDER_TEXT . '</span>': ''); ?></td>

             </tr>

<?php

 }

?>

             <tr>

               <td class="main"><?php echo ENTRY_FIRST_NAME; ?></td>

               <td class="main"><?php echo tep_draw_input_field('firstname', $fbme['first_name']) . ' ' . (tep_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_FIRST_NAME_TEXT . '</span>': ''); ?></td>

             </tr>

             <tr>

               <td class="main"><?php echo ENTRY_LAST_NAME; ?></td>

               <td class="main"><?php echo tep_draw_input_field('lastname', $fbme['last_name']) . ' ' . (tep_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">' . ENTRY_LAST_NAME_TEXT . '</span>': ''); ?></td>

             </tr>

<?php

 if (ACCOUNT_DOB == 'true') {

?>

             <tr>

               <td class="main"><?php echo ENTRY_DATE_OF_BIRTH; ?></td>

               <td class="main"><?php echo tep_draw_input_field('dob', $fbme['birthday']) . ' ' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?></td>

             </tr>

<?php

 }

?>

             <tr>

               <td class="main"><?php echo ENTRY_EMAIL_ADDRESS; ?></td>

               <td class="main"><?php echo tep_draw_input_field('email_address', $fbme['email']) . ' ' . (tep_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_EMAIL_ADDRESS_TEXT . '</span>': ''); ?></td>

             </tr>

           </table></td>

         </tr>

       </table></td>

     </tr>
<?php
 if (ACCOUNT_COMPANY == 'true') {
?>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main"><b><?php echo CATEGORY_COMPANY; ?></b></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
             <tr>
               <td class="main"><?php echo ENTRY_COMPANY; ?></td>
               <td class="main"><?php echo tep_draw_input_field('company') . ' ' . (tep_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COMPANY_TEXT . '</span>': ''); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
<?php
 }
?>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main"><b><?php echo CATEGORY_ADDRESS; ?></b></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
             <tr>
               <td class="main"><?php echo ENTRY_STREET_ADDRESS; ?></td>
               <td class="main"><?php echo tep_draw_input_field('street_address') . ' ' . (tep_not_null(ENTRY_STREET_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_STREET_ADDRESS_TEXT . '</span>': ''); ?></td>
             </tr>
<?php
 if (ACCOUNT_SUBURB == 'true') {
?>
             <tr>
               <td class="main"><?php echo ENTRY_SUBURB; ?></td>
               <td class="main"><?php echo tep_draw_input_field('suburb') . ' ' . (tep_not_null(ENTRY_SUBURB_TEXT) ? '<span class="inputRequirement">' . ENTRY_SUBURB_TEXT . '</span>': ''); ?></td>
             </tr>
<?php
 }
?>
             <tr>
               <td class="main"><?php echo ENTRY_POST_CODE; ?></td>
               <td class="main"><?php echo tep_draw_input_field('postcode') . ' ' . (tep_not_null(ENTRY_POST_CODE_TEXT) ? '<span class="inputRequirement">' . ENTRY_POST_CODE_TEXT . '</span>': ''); ?></td>
             </tr>
             <tr>
               <td class="main"><?php echo ENTRY_CITY; ?></td>
               <td class="main"><?php echo tep_draw_input_field('city') . ' ' . (tep_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">' . ENTRY_CITY_TEXT . '</span>': ''); ?></td>
             </tr>
<?php
 if (ACCOUNT_STATE == 'true') {
?>
             <tr>
               <td class="main"><?php echo ENTRY_STATE; ?></td>
               <td class="main">
<?php
   if ($process == true) {
     if ($entry_state_has_zones == true) {
       $zones_array = array();
       $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name");
       while ($zones_values = tep_db_fetch_array($zones_query)) {
         $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
       }
       echo tep_draw_pull_down_menu('state', $zones_array);
     } else {
       echo tep_draw_input_field('state');
     }
   } else {
     echo tep_draw_input_field('state');
   }

   if (tep_not_null(ENTRY_STATE_TEXT)) echo ' <span class="inputRequirement">' . ENTRY_STATE_TEXT;
?>
               </td>
             </tr>
<?php
 }
?>
             <tr>
               <td class="main"><?php echo ENTRY_COUNTRY; ?></td>
               <td class="main"><?php echo tep_get_country_list('country') . ' ' . (tep_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COUNTRY_TEXT . '</span>': ''); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main"><b><?php echo CATEGORY_CONTACT; ?></b></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
             <tr>
               <td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
               <td class="main"><?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>
             </tr>
             <tr>
               <td class="main"><?php echo ENTRY_FAX_NUMBER; ?></td>
               <td class="main"><?php echo tep_draw_input_field('fax') . ' ' . (tep_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main"><b><?php echo CATEGORY_OPTIONS; ?></b></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
             <tr>
               <td class="main"><?php echo ENTRY_NEWSLETTER; ?></td>
               <td class="main"><?php echo tep_draw_checkbox_field('newsletter', '1') . ' ' . (tep_not_null(ENTRY_NEWSLETTER_TEXT) ? '<span class="inputRequirement">' . ENTRY_NEWSLETTER_TEXT . '</span>': ''); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main"><b><?php echo CATEGORY_PASSWORD; ?></b></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" cellspacing="2" cellpadding="2">
             <tr>
               <td class="main"><?php echo ENTRY_PASSWORD; ?></td>
               <td class="main"><?php echo tep_draw_password_field('password') . ' ' . (tep_not_null(ENTRY_PASSWORD_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_TEXT . '</span>': ''); ?></td>
             </tr>
             <tr>
               <td class="main"><?php echo ENTRY_PASSWORD_CONFIRMATION; ?></td>
               <td class="main"><?php echo tep_draw_password_field('confirmation') . ' ' . (tep_not_null(ENTRY_PASSWORD_CONFIRMATION_TEXT) ? '<span class="inputRequirement">' . ENTRY_PASSWORD_CONFIRMATION_TEXT . '</span>': ''); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
   </table></form></td>
<!-- body_text_eof //-->
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php include(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php include(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

And here is my login.php

<?php
/*
 $Id: login.php 1739 2007-12-20 00:52:16Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

//Facebook Connect
include 'includes/classes/facebook.php';
include_once "fbconnect.php";

//if user is logged in and session is valid.
if ($fbme){
   //collect some data using legacy api
   $param  =   array(
       'method'     => 'users.getinfo',
       'uids'       => $fbme['id'],
       'fields'     => 'birthday_date, locale',
       'callback'   => ''
   );

   try{
       $info           =   $facebook->api($param);
   }
   catch(Exception $o){
       error_log("Legacy Api Calling Error!");
   }
}
//end of Facebook Connect

 require('includes/application_top.php');

// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled (or the session has not started)
 if ($session_started == false) {
   tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
 }

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);

 $error = false;
 if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process')) {
   $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
   $password = tep_db_prepare_input($HTTP_POST_VARS['password']);

// Check if email exists
   $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
   if (!tep_db_num_rows($check_customer_query)) {
     $error = true;
   } else {
     $check_customer = tep_db_fetch_array($check_customer_query);
// Check that password is good
     if (!tep_validate_password($password, $check_customer['customers_password'])) {
       $error = true;
     } else {
       if (SESSION_RECREATE == 'True') {
         tep_session_recreate();
       }

       $check_country_query = tep_db_query("select entry_country_id, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$check_customer['customers_id'] . "' and address_book_id = '" . (int)$check_customer['customers_default_address_id'] . "'");
       $check_country = tep_db_fetch_array($check_country_query);

       $customer_id = $check_customer['customers_id'];
       $customer_default_address_id = $check_customer['customers_default_address_id'];
       $customer_first_name = $check_customer['customers_firstname'];
       $customer_country_id = $check_country['entry_country_id'];
       $customer_zone_id = $check_country['entry_zone_id'];
       tep_session_register('customer_id');
       tep_session_register('customer_default_address_id');
       tep_session_register('customer_first_name');
       tep_session_register('customer_country_id');
       tep_session_register('customer_zone_id');

       tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 where customers_info_id = '" . (int)$customer_id . "'");

// restore cart contents
       $cart->restore_contents();

       if (sizeof($navigation->snapshot) > 0) {
         $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
         $navigation->clear_snapshot();
         tep_redirect($origin_href);
       } else {
         tep_redirect(tep_href_link(FILENAME_DEFAULT));
       }
     }
   }
 }

 if ($error == true) {
   $messageStack->add('login', TEXT_LOGIN_ERROR);
 }

 $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_LOGIN, '', 'SSL'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script language="javascript"><!--
function session_win() {
 window.open("<?php echo tep_href_link(FILENAME_INFO_SHOPPING_CART); ?>","info_shopping_cart","height=460,width=430,toolbar=no,statusbar=no,scrollbars=yes").focus();
}
//--></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('login', tep_href_link(FILENAME_LOGIN, 'action=process', 'SSL')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_login.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 if ($messageStack->size('login') > 0) {
?>
     <tr>
       <td><?php echo $messageStack->output('login'); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 }

 if ($cart->count_contents() > 0) {
?>
     <tr>
       <td class="smallText"><?php echo TEXT_VISITORS_CART; ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 }
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td class="main" width="50%" valign="top"><b><?php echo HEADING_NEW_CUSTOMER; ?></b></td>
           <td class="main" width="50%" valign="top"><b><?php echo HEADING_RETURNING_CUSTOMER; ?></b></td>
         </tr>
         <tr>
           <td width="50%" height="100%" valign="top"><table border="0" width="100%" height="100%" cellspacing="1" cellpadding="2" class="infoBox">
             <tr class="infoBoxContents">
               <td><table border="0" width="100%" height="100%" cellspacing="0" cellpadding="2">
                 <tr>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td class="main" valign="top"><?php echo TEXT_NEW_CUSTOMER . '<br><br>' . TEXT_NEW_CUSTOMER_INTRODUCTION; ?></td>
                 </tr>
                 <tr>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
                     <tr>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                       <td align="center"><?php echo '<a href="' . tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL') . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                     </tr>
                   </table></td>
                 </tr>
               </table></td>
             </tr>
           </table></td>
           <td width="50%" height="100%" valign="top"><table border="0" width="100%" height="100%" cellspacing="1" cellpadding="2" class="infoBox">
             <tr class="infoBoxContents">
               <td><table border="0" width="100%" height="100%" cellspacing="0" cellpadding="2">
                 <tr>
                   <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td class="main" colspan="2"><?php echo TEXT_RETURNING_CUSTOMER; ?></td>
                 </tr>
                 <tr>
                   <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td>
                   <td class="main"><?php echo tep_draw_input_field('email_address'); ?></td>
                 </tr>
                 <tr>
                   <td class="main"><b><?php echo ENTRY_PASSWORD; ?></b></td>
                   <td class="main"><?php echo tep_draw_password_field('password'); ?></td>
                 </tr>
                 <tr>
                   <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td class="smallText" colspan="2"><?php echo '<a href="' . tep_href_link(FILENAME_PASSWORD_FORGOTTEN, '', 'SSL') . '">' . TEXT_PASSWORD_FORGOTTEN . '</a>'; ?></td>
                 </tr>
                 <tr>
                   <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td colspan="2"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                     <tr>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                       <td align="center"><?php echo tep_image_submit('button_login.gif', IMAGE_BUTTON_LOGIN); ?>
                       <div id="fb-root"></div>
       <script type="text/javascript">
           window.fbAsyncInit = function() {
               FB.init({appId: '<?=$fbconfig['appid' ]?>', status: true, cookie: true, xfbml: true});

               /* All the events registered */
               FB.Event.subscribe('auth.login', function(response) {
                   // do something with response
                   login();
               });
               FB.Event.subscribe('auth.logout', function(response) {
                   // do something with response
                   logout();
               });
           };
           (function() {
               var e = document.createElement('script');
               e.type = 'text/javascript';
               e.src = document.location.protocol +
                   '//connect.facebook.net/en_US/all.js';
               e.async = true;
               document.getElementById('fb-root').appendChild(e);
           }());

           function login(){
               document.location.href = "login.php";
           }

           function logout(){
               document.location.href = "logoff.php";
           }

</script>
   <p>
       <fb:login-button autologoutlink="true" perms="email,offline_access,user_birthday,user_location,user_work_history,user_religion_politics,user_relationships">Login with Facebook</fb:login-button>
   </p>
   <?php
   if($fbme>0){ 
       $fb_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . $fbme['email'] . "'");
       $fb_customer_check = tep_db_num_rows($fb_customer_query);

       if($fb_customer_check > 0){
           $fb_customer = tep_db_fetch_array($fb_customer_query);
           $fb_country_query = tep_db_query("select entry_country_id, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$fb_customer['customers_id'] . "' and address_book_id = '" . (int)$fb_customer['customers_default_address_id'] . "'");
           $fb_country = tep_db_fetch_array($fb_country_query);
           $customer_id = $fb_customer['customers_id'];
           $customer_default_address_id = $fb_customer['customers_default_address_id'];
           $customer_first_name = $fb_customer['customers_firstname'];
           $customer_country_id = $fb_country['entry_country_id'];
           $customer_zone_id = $fb_country['entry_zone_id'];
           tep_session_register('customer_id');
           tep_session_register('customer_default_address_id');
           tep_session_register('customer_first_name');
           tep_session_register('customer_country_id');
           tep_session_register('customer_zone_id');

           tep_db_query("update " . TABLE_CUSTOMERS . " set fb_user_id = " . $fbme['id'] . " where customers_id = '" . (int)$customer_id . "'");
           tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 where customers_info_id = '" . (int)$customer_id . "'");


           //restore cart contents
           $cart->restore_contents();

           if (sizeof($navigation->snapshot) > 0) {
             $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
             $navigation->clear_snapshot();
             tep_redirect($origin_href);
           } else {
             tep_redirect(tep_href_link(FILENAME_DEFAULT));
           }
       }else{
           tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT));
        }
   }

   ?>
    </div>
                       </td>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                     </tr>
                   </table></td>
                 </tr>
               </table></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
   </table></form></td>
<!-- body_text_eof //-->
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Any help would be appreciated.

Share this post


Link to post
Share on other sites

logout works good, give the customer the choice to finish his FB session if he wants.

 

when a customer logout from your store, that does not mean that he wants to finish his FB activities; for that reason is good to give him this choice on logout page...

 

a simple link to FB CAN DO THAT!

 

watch this video

 

 

 

 

So there is supposed to be a FB logout link in logout.php? Because mine is not showing.

 

If it is not included in the contrib, can you share your code? There seems to be a lot of discussion on how to do this on non-osc forums.

 

This is working with PWA as far as I can tell, but I seem to be having a cookie issue as sometimes I can log off FB and log off OSC... hit My Account and immediately be logged back in.

Share this post


Link to post
Share on other sites

hello Scott Gingerich

 

is not my code i found the video when looking on google for prstashop. magento oscommerce and facebook, as you watched at the end, they placed a link to a facebook logoff...as i infer is a link to logoff of mobile devices

Share this post


Link to post
Share on other sites

Thanks Andrea

 

The link could either be just a simple link, or it could actually do a FB logout. I was hoping you had the code for the later. I think either would be ok, but I'll try to make the link show only if the customer is using FB Connect.

 

My previous problem was just a stuck cookie. I used Developer Tools in Chrome to watch the cookie being created and deleted. Firefox has a similar plugin.

 

So this is working just fine with PWA, Steve.

Share this post


Link to post
Share on other sites

Here is how to show a FB image, link and reminder on logoff.php for only those FB users. It does not log them out of FB, but redirects them so they can do so.

 

In logoff.php, find and add the five "if" statement lines...

 

 $cart->reset();
   //Facebook Connect
 include 'includes/classes/facebook.php';
 include_once "fbconnect.php";
 if ($fbme){
$fbuser = "<br><a href=\"http://www.facebook.com\"><img src=images/site/fb_logout.png></a><small>  Remember to Logout out of Facebook if on a public computer.</small><br><br>";
} else {
$fbuser = "";
}
 setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', '.mydomain.com');

 

then add the line after infoBoxContents...

         <tr class="infoBoxContents">
         <?php echo $fbuser; ?>

 

and of course, edit your image path and upload your image to the appropriate directory.

Here is the image I used... feel free to download.

fb_logout.png

Share this post


Link to post
Share on other sites

easy link

 

http://m.facebook.com/logout.php

 

so could be

 

 $cart->reset();
   //Facebook Connect
 include 'includes/classes/facebook.php';
 include_once "fbconnect.php";
 if ($fbme){
       $fbuser = "<br><a href=\"http://m.facebook.com/logout.php\"><img src=images/site/fb_logout.png></a><small>  Remember to Logout out of Facebook if on a public computer.</small><br><br>";
       } else {
       $fbuser = "";
       }
 setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', '.mydomain.com');

Edited by rabon33

Share this post


Link to post
Share on other sites

Hi there,

 

I have followed the latest instructions and logging in and out works both on the login.php and the create_account.php but the problem is: The facebook data import does not work at all. Also, the redirect from the login.php to the create_account.php after having logged into facebook does not work at all. Do you have any ideas why?

 

The error message in IE 8 says:

 

Details zum Fehler auf der Webseite


Meldung: '_onLoad' ist Null oder kein Objekt
Zeile: 13
Zeichen: 776
Code: 0
URI: http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE


Meldung: '_onLoad' ist Null oder kein Objekt
Zeile: 13
Zeichen: 776
Code: 0
URI: http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE

 

Thanks for your help.

Share this post


Link to post
Share on other sites

Hi there,

 

I have followed the latest instructions and logging in and out works both on the login.php and the create_account.php but the problem is: The facebook data import does not work at all. Also, the redirect from the login.php to the create_account.php after having logged into facebook does not work at all. Do you have any ideas why?

 

The error message in IE 8 says:

 

Details zum Fehler auf der Webseite


Meldung: '_onLoad' ist Null oder kein Objekt
Zeile: 13
Zeichen: 776
Code: 0
URI: http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE


Meldung: '_onLoad' ist Null oder kein Objekt
Zeile: 13
Zeichen: 776
Code: 0
URI: http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE

 

Thanks for your help.

 

 

What's with the xd_receiver.htm ? Do I have to enter the URL anywhere in the Facebook application settings? I am not getting forwarded to the create_account.php and logged in or not on facebook - it does not change anything on my site.

Share this post


Link to post
Share on other sites

What's with the xd_receiver.htm ? Do I have to enter the URL anywhere in the Facebook application settings? I am not getting forwarded to the create_account.php and logged in or not on facebook - it does not change anything on my site.

You do have to enter your URL on your FB app. It is under the Web Site tab, fill in Site URL and Site Domain.

Share this post


Link to post
Share on other sites

Hi!

I'm trying to integrate this awsome addon, but I'm not getting it to work. On the login page there are no clickable button, only the text "Login with Facebook ". Do anyone know what's wrong? Pleeeeaase help me...I need to get this work! :)

Here is my login.php code:

<?php
/*
 $Id: login.php 1739 2007-12-20 00:52:16Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

//Facebook Connect
include 'includes/classes/facebook.php';
include_once "fbconnect.php";

//if user is logged in and session is valid.
if ($fbme){
//collect some data using legacy api
   $param  =   array(
   	'method'     => 'users.getinfo',
       'uids'       => $fbme['id'],
       'fields'     => 'birthday_date, locale',
       'callback'   => ''
   );

   try{
       $info           =   $facebook->api($param);
   }
   catch(Exception $o){
       error_log("Legacy Api Calling Error!");
   }
}
//end of Facebook Connect

 require('includes/application_top.php');

// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled (or the session has not started)
 if ($session_started == false) {
   tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
 }

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_LOGIN);

 $error = false;
 if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process')) {
   $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
   $password = tep_db_prepare_input($HTTP_POST_VARS['password']);

// Check if email exists
   $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
   if (!tep_db_num_rows($check_customer_query)) {
     $error = true;
   } else {
     $check_customer = tep_db_fetch_array($check_customer_query);
// Check that password is good
     if (!tep_validate_password($password, $check_customer['customers_password'])) {
       $error = true;
     } else {
       if (SESSION_RECREATE == 'True') {
         tep_session_recreate();
       }

       $check_country_query = tep_db_query("select entry_country_id, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$check_customer['customers_id'] . "' and address_book_id = '" . (int)$check_customer['customers_default_address_id'] . "'");
       $check_country = tep_db_fetch_array($check_country_query);

       $customer_id = $check_customer['customers_id'];
       $customer_default_address_id = $check_customer['customers_default_address_id'];
       $customer_first_name = $check_customer['customers_firstname'];
       $customer_country_id = $check_country['entry_country_id'];
       $customer_zone_id = $check_country['entry_zone_id'];
       tep_session_register('customer_id');
       tep_session_register('customer_default_address_id');
       tep_session_register('customer_first_name');
       tep_session_register('customer_country_id');
       tep_session_register('customer_zone_id');

       tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 where customers_info_id = '" . (int)$customer_id . "'");

// restore cart contents
       $cart->restore_contents();

       if (sizeof($navigation->snapshot) > 0) {
         $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
         $navigation->clear_snapshot();
         tep_redirect($origin_href);
       } else {
         tep_redirect(tep_href_link(FILENAME_DEFAULT));
       }
     }
   }
 }

 if ($error == true) {
   $messageStack->add('login', TEXT_LOGIN_ERROR);
 }

 $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_LOGIN, '', 'SSL'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script type="text/javascript" src="iepngfix_tilebg.js"></script>
<style type="text/css">
.ie6_png 			{behavior: url("iepngfix.htc") }
.ie6_png img		{behavior: url("iepngfix.htc") }
.ie6_png input		{behavior: url("iepngfix.htc") }
</style>
<!--[if IE]>
  <script type="text/javascript" src="ie_png.js"></script>
  <script type="text/javascript">
      ie_png.fix('.png');
  </script>
<![endif]-->
<script language="javascript"><!--
function session_win() {
 window.open("<?php echo tep_href_link(FILENAME_INFO_SHOPPING_CART); ?>","info_shopping_cart","height=559,width=445,toolbar=no,statusbar=no,scrollbars=yes").focus();
}
//--></script>
</head>
<body>
<!-- header //-->
<?php $tab_sel = 6; ?>
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" class="<?php echo MAIN_TABLE; ?>" cellspacing="0" cellpadding="0">
<tr>
   <td class="<?php echo BOX_WIDTH_TD_LEFT; ?>"><table border="0" class="<?php echo BOX_WIDTH_LEFT; ?>" cellspacing="0" cellpadding="0">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td class="<?php echo CONTENT_WIDTH_TD; ?>"><?php echo panel_top(); ?><?php echo tep_draw_form('login', tep_href_link(FILENAME_LOGIN, 'action=process', 'SSL')); ?>

<?php echo tep_draw_top();?>

<?php echo tep_draw_title_top();?>

			<?php echo HEADING_TITLE; ?>

<?php echo tep_draw_title_bottom();?>

<?php echo tep_draw1_top();?>

<?php
 if ($messageStack->size('login') > 0) {
?>
   <table cellpadding="0" cellspacing="0" border="0">
  <tr>
       <td><?php echo $messageStack->output('login'); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
</table>
<?php
 }

 if ($cart->count_contents() > 0) {
?>
   <table cellpadding="0" cellspacing="0" border="0">
  <tr><td style="padding:0px 10px 0px 10px;" class="smallText"><?php echo TEXT_VISITORS_CART; ?></td></tr>
</table>

<?php echo tep_pixel_trans();?>

<?php
 }
?>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="main indent_2" width="50%"><b><?php echo HEADING_NEW_CUSTOMER; ?></b></td>
		<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
           <td class="main indent_2" width="50%"><b><?php echo HEADING_RETURNING_CUSTOMER; ?></b></td>
         </tr>
         <tr>
           <td width="50%" height="100%">

<?php echo tep_draw_infoBox_top();?>

			<table border="0" width="100%" height="100%" cellspacing="5" cellpadding="0" style="height:240px;">
                 <tr>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td class="main" style="height:100%;"><?php echo TEXT_NEW_CUSTOMER . '<br><br>' . TEXT_NEW_CUSTOMER_INTRODUCTION; ?></td>
                 </tr>
                 <tr>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
                 </tr>
                 <tr>
                   <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
                     <tr>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                       <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL') . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                     </tr>
                   </table>

				</td>
                 </tr>
               </table>

<?php echo tep_draw_infoBox_bottom();?>

		</td>
		<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '1'); ?></td>
           <td width="50%" height="100%">

<?php echo tep_draw_infoBox_top();?>

			<table border="0" width="100%" height="100%" cellspacing="5" cellpadding="0" style="height:240px;">
                 <tr><td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td></tr>
                 <tr> <td class="main" colspan="2"><?php echo TEXT_RETURNING_CUSTOMER; ?></td></tr>
                 <tr><td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td></tr>
                 <tr><td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td></tr>
                 <tr><td class="main"><?php echo tep_draw_input_field('email_address'); ?></td></tr>
                 <tr><td class="main"><b><?php echo ENTRY_PASSWORD; ?></b></td></tr>
                   <td class="main"><?php echo tep_draw_password_field('password'); ?></td></tr>
                 <tr><td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td></tr>
                 <tr><td class="smallText"><?php echo '<a href="' . tep_href_link(FILENAME_PASSWORD_FORGOTTEN, '', 'SSL') . '">' . TEXT_PASSWORD_FORGOTTEN . '</a>'; ?></td></tr>
                 <tr><td height="100%"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td></tr>
                 <tr><td>
                 	<table border="0" width="100%" cellspacing="0" cellpadding="2">
                     <tr>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                       <td align="right"><?php echo tep_image_submit('button_login1.gif', IMAGE_BUTTON_LOGIN); ?></td>
                       <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                     </tr>

                     <tr>
<td>
<div id="fb-root"></div>
       <script type="text/javascript">
           window.fbAsyncInit = function() {
               FB.init({appId: '<?=$fbconfig['appid' ]?>', status: true, cookie: true, xfbml: true});

               /* All the events registered */
               FB.Event.subscribe('auth.login', function(response) {
                   // do something with response
                   login();
               });
               FB.Event.subscribe('auth.logout', function(response) {
                   // do something with response
                   logout();
               });
           };
           (function() {
               var e = document.createElement('script');
               e.type = 'text/javascript';
               e.src = document.location.protocol +
                   '//connect.facebook.net/en_US/all.js';
               e.async = true;
               document.getElementById('fb-root').appendChild(e);
           }());

           function login(){
               document.location.href = "login.php";
           }

           function logout(){
               document.location.href = "logoff.php";
           }

           function createAccount(){
               document.location.href = "create_account.php";
           }

</script>
   <p>
       <fb:login-button autologoutlink="true" perms="email,offline_access,user_birthday,user_location,user_work_history,user_religion_politics,user_relationships">Login with Facebook</fb:login-button>
   </p>
   <?php
   if($fbme>0){ 
    $fb_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . $fbme['email'] . "'");
   	$fb_customer_check = tep_db_num_rows($fb_customer_query);

    if($fb_customer_check > 0){
    	$fb_customer = tep_db_fetch_array($fb_customer_query);
    	$fb_country_query = tep_db_query("select entry_country_id, entry_zone_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$fb_customer['customers_id'] . "' and address_book_id = '" . (int)$fb_customer['customers_default_address_id'] . "'");
        $fb_country = tep_db_fetch_array($fb_country_query);
    	$customer_id = $fb_customer['customers_id'];
    	$customer_default_address_id = $fb_customer['customers_default_address_id'];
    	$customer_first_name = $fb_customer['customers_firstname'];
    	$customer_country_id = $fb_country['entry_country_id'];
    	$customer_zone_id = $fb_country['entry_zone_id'];
    	tep_session_register('customer_id');
    	tep_session_register('customer_default_address_id');
    	tep_session_register('customer_first_name');
    	tep_session_register('customer_country_id');
    	tep_session_register('customer_zone_id');

   		tep_db_query("update " . TABLE_CUSTOMERS . " set fb_user_id = " . $fbme['id'] . " where customers_id = '" . (int)$customer_id . "'");
   		tep_db_query("update " . TABLE_CUSTOMERS_INFO . " set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 where customers_info_id = '" . (int)$customer_id . "'");


    	//restore cart contents
    	$cart->restore_contents();

        if (sizeof($navigation->snapshot) > 0) {
          $origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array(tep_session_name())), $navigation->snapshot['mode']);
          $navigation->clear_snapshot();
          echo "<script type='text/javascript'>document.location.href = '".$origin_href."';</script>";

        } else {
          echo "<script type='text/javascript'>document.location.href = '".FILENAME_DEFAULT."';</script>";
       	}
   	}else{
       	echo "<script type='text/javascript'>document.location.href = '".FILENAME_CREATE_ACCOUNT."';</script>";
    	}
}

   ?>
</td>
</tr>
                   </table>
                 </td></tr>
               </table>

<?php echo tep_draw_infoBox_bottom();?>

		</td>
         </tr>
       </table>

<?php echo tep_draw1_bottom();?>

<?php echo tep_draw_bottom();?>

</form></td>
<!-- body_text_eof //-->
<td class="<?php echo BOX_WIDTH_TD_RIGHT; ?>"><table border="0" class="<?php echo BOX_WIDTH_RIGHT; ?>" cellspacing="0" cellpadding="0">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Cheers!

 

//Andreas

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×