Ayuda Loop en una app facebook

Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

quimbox Seguir

1
Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
22 Mar 2012
Mensajes
2.346
Hola forobetas tengo un problema con un script que estoy acomodando, es una app para facebook. El problema está en que cuando ingreso a la aplicación despues de aceptar la aplicación me queda en un loop y no termina de cargar nunca. Ya le añadi estos header en el index para los cookies en iframes:

PHP:
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
header('p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"');
header ('Content-type: text/html; charset=utf-8');
header('P3P: CP="NON DSP TAIa PSAa PSDa OUR IND UNI", policyref="/w3c/p3p.xml"');
header('P3P: CP="CAO PSA OUR"');

pero aun sigue el problema del loop, en firefox y chrome en IE trabaja bien la app.

Este es el código que uso para conectar:


PHP:
  $canvasPage = 'http://apps.facebook.com/mi_app';
  $canvasUrl = 'http://www.elsitio.tld/mi_app';
  
 //facebook application
  //set facebook application id, secret key here
  $fbconfig['appid' ] = "xxxxxxx";
  $fbconfig['secret'] = "xxxxxxxxxxx";

  //set application urls here
  $fbconfig['baseUrl'] = "http://www.elsitio.tld/mi_app";
  $fbconfig['appBaseUrl'] = "http://apps.facebook.com/mi_app";
  $uid = null; //facebook user id

  try{
      include_once "facebook.php";
  }
  catch(Exception $o){
      echo '<pre>';
      print_r($o);
      echo '</pre>';
  }
  // Create our Application instance.
  $facebook = new Facebook(array(
    'appId'  => $fbconfig['appid'],
    'secret' => $fbconfig['secret'],
    'cookie' => true,
  ));

  //Facebook Authentication part
  $session = $facebook->getUser();
  $loginUrl = $facebook->getLoginUrl(
          array(
          'canvas'    => 1,
          'fbconnect' => 0,
          'scope' => 'email,publish_stream,status_update,user_birthday,user_location,user_work_history'
		  //'redirect_uri' => $canvasPage
          )
  );

  $fbme = null;

 if (!$session) {
     echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
      exit;
  }
  else {
      try {
          $uid      =   $facebook->getUser();
          $fbme     =   $facebook->api('/me');

     } catch (FacebookApiException $e) {
          echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
          exit;
      }
  }

  function d($d){
      echo '<pre>';
      print_r($d);
      echo '</pre>';
  }

  $dbname = "xxxx"; //dbname
  $dbhost = "xxxxx";
  $dbuser = "xxxxx";
  $dbpass = "xxxxx";
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);
  mysql_select_db($dbname, $conn);

  mysql_query("SET NAMES utf8");
  mysql_query("SET character_set_results='utf8'"); 

  function dbPrepare($str){ 
    $str = mysql_real_escape_string($str); 
    return $str; 
  }

Tengo rato buscando la solución pero no he dado con la misma. Le agradezco su ayuda. :encouragement:

Ya pude solucionar el código de arriba

Ahora tengo otro error para obtener unos datos específicos de un determinado lugar. Si no puedo solucionarlo pediré un poco de ayuda.


El código que tengo es este para obtener la información que quiero

PHP:
require_once("db.php"); 
$url = "http://Urlparascrap.tld/.html";
$start_text2 = '<div class="fontdef1" style="padding-right:10px;" id="textline">';
$end_text2 = '<div align="right">';
$source2 = file_get_contents($url);
$start_pos2 = strpos($source2, $start_text2) + strlen($start_text2);
$end_pos2 = strpos($source2, $end_text2) - $start_pos2;
$content = substr($source2, $start_pos2, $end_pos2);
$scopeid = rand(10000, 600000);
$text = dbPrepare(trim(strip_tags($content)));
$scopeFriendsOne = rand(1, 4);
$scopeFriendsTwo = rand(5, 7);
$scopeFriendsThree = rand(9, 12);
$randNumOne = rand(0,20);
$randNumTwo = rand(21,40);
$randNumThree = rand(41,60);
$randNumFour = rand(61,80);
$randNumFive = rand(81,100);
$luckynumbers = $randNumOne.",".$randNumTwo.",".$randNumThree.",".$randNumFour.",".$randNumFive;
$starsLove = rand(1, 5);
$starsMoney = rand(1, 5);
$starsHealth = rand(1, 5);
$starsCareer = rand(1, 5);
$starsNumbers = $starsLove.",".$starsMoney.",".$starsMoney.",".$starsCareer;
mysql_query("INSERT INTO Aries (scopeid, horoscope, friendone, friendtwo, friendthree, luckynumbers, stars) VALUES ($scopeid, '".$text."', $scopeFriendsOne, $scopeFriendsTwo, $scopeFriendsThree, '".$luckynumbers."', '".$starsNumbers."')");

Traté añadiendo este codigo
PHP:
strpos($source2, $start_text2)!==false) + (strlen($start_text2)!==false);

pero agarra de mas de la cuenta y no el texto especifico que esta entre
HTML:
<div class="fontdef1" style="padding-right:10px;" id="textline"> y <div align="right">

Solucionado tambien :D
 
Última edición:

fisasti

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
11 Jun 2013
Mensajes
97
El problema parece complejo pero siempre es solucionable. Varias veces me encontré con loops infinitos.
Lo que me funcionó es hacer un debug usando la función die(). De esta manera pongo el die al principio del script, después lo muevo una línea, otar, otra... Además podés imprimir el contenido de la variable que quieras antes así comprobás que los valores son los que esperás.

Ejemplo:

Insertar CODE, HTML o PHP:
var_dump($var1);
var_dump($var2);
die();

O bien

Insertar CODE, HTML o PHP:
die($var1 . ' ' . $var2);

Un saludo!
 
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Arriba