Ayuda Loop en una app facebook

  • Autor Autor quimbox
  • Fecha de inicio Fecha de inicio
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

quimbox

1
Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
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 😀
 
Última edición:
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.

Temas similares

alejandro1507
Respuestas
0
Visitas
142
alejandro1507
alejandro1507
IsraelGT
Respuestas
8
Visitas
510
IsraelGT
IsraelGT
Y
Respuestas
2
Visitas
216
sanderpac
sanderpac
Atrás
Arriba