Jump to content

Recommended Posts

Estou com um problema lógico que não consigo resolver, quando e faço login com o facebook com um usuário que não tem o email cadastrado ele retorna a mensagem "usuário não cadastrado",  ao invés disso eu gostaria de poder cadastrar o email desse usuário não cadastrado, alguém pode me ajudar?

 

facebook.php

<?php
session_start();
unset($_SESSION['face_access_token']);
require_once'lib\Facebook\autoload.php';

if(!$conect=mysqli_connect('localhost','root','','cadastros')) 
  die ('erro ao conectar');

$fb = new \Facebook\Facebook([
  'app_id' => '2259759927393128',
  'app_secret' => '8896a104c69194287cc879854a9d8671',
  'default_graph_version' => 'v2.10',
  //'default_access_token' => '{access-token}', // optional
]);

$helper = $fb->getRedirectLoginHelper();
//var_dump($helper);
$permissions = ['email']; // Optional permissions

try {
  if (isset($_SESSION['face_access_token'])) {
  $accessToken = $_SESSION['face_access_token'];
  }
  else{
  $accessToken = $helper->getAccessToken();
  } 
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

if (! isset($accessToken)) {
  $url_Login = 'http://localhost/Site(TCC)/facebook.php';
  $loginUrl = $helper->getLoginUrl($url_Login, $permissions);
}
else {
  $url_Login = 'http://localhost/Site(TCC)/facebook.php';
  $loginUrl = $helper->getLoginUrl($url_Login, $permissions);
if (isset($_SESSION['face_access_token'])) {
  $fb->setDefaultAccessToken($_SESSION['face_access_token']); 
}
else {
  $_SESSION['face_access_token'] = (string) $accessToken;
  $oAuth2Client = $fb->getOAuth2Client();
  $_SESSION['face_access_token'] = $oAuth2Client->getLongLivedAccessToken($_SESSION['face_access_token']);
  $fb->setDefaultAccessToken($_SESSION['face_access_token']); 
  }
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get('/me?fields=name, email');
  $user = $response->getGraphUser();
  //var_dump($user);
  $sql = "SELECT * FROM usuarios WHERE email='".$user['email']."' LIMIT 1";
  # Executa a instrução SQL no banco de dados
  $resultado = @mysqli_query($conect, $sql);
  # Verifica o numero de linhas retornadas
  $linhas = mysqli_num_rows($resultado);
  # Direciona o usuário ao menu de opções 
  if($linhas==0) {
  "INSERT INTO usuarios(nome, rm, id_curso, email, senha) 
  VALUES('$user','$user','$user','.$user['email']','$user')"));
  function myAlert($msg, $url){

    echo '<script language="javascript">alert("'.$msg.'");</script>';
    echo "<script>document.location = '$url'</script>";
}
myAlert("Email ou Senha incorretos! Verifique os dados inseridos!", "/SITE(TCC)/CADASTRO/index.html");
}
else{ 
$_SESSION["autenticado"]="rfc822_allowed";
$_SESSION["login"]=$email;
header("Location:/SITE(TCC)/LOGIN/profile.php");
}
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

}

?>
<a href="<?php echo $loginUrl; ?>">Facebook</a>

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

  • Similar Content

    • By Adriano Barbosa
      Olá, tudo bom?
       
      Se alguém puder me ajudar já agradeço de agora.
       
      Tenho um .htaccess da seguinte forma:
      RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1  
      No meu arquivo index.php eu pego a variável "page" e busco no banco de dados o arquivo correspondente ao valor informado, feito isso faço o seguinte:
       
      require ($Rs->nomeArquivo);
      que seria isso require (produto-detalhe.php);
       
      O que ocorre é o seguinte, algumas páginas eu preciso passar parâmetros e funciona quando utilizo ( & ) porém se for utilizar o ( ? ) não consigo recuperar os valores informados.
       
      Exemplos:
       
      Assim funciona:
      busca&b=carrinho
       
      Assim não funciona:
      busca?b=carrinho
       
      Não consigo pegar o valor informado.
      Alguém já passou por isso? ou estou fazendo da forma incorreta?
       
      Podem me ajudar.
      Abs
    • By peterstefan
      Olá, tenho 4 campos em um formulario, porem eles não são obrigatórios, queria ver qual tecnica para fazer que o cliente preencha pelo menos um dos campos. caso ele tente enviar vazio mostrar uma mensagem para ele avisando que tem que preencher pelo menos um dos 4 campos... 
       
      Obrigado!!
    • By Alex Dias
      Olá amigo, não sou usuário avançado, conseguir um código-fonte que lista arquivos de uma pasta no servidor, esses fontes listavam apenas os arquivos, daí eu dei uma incrementada nele para além dos arquivos ele listar também o tamanho do arquivo e a data da última modificação, segue ANEXO como ele está exibindo os resultados com perfeição.

      A minha dificuldade é que ele lista os arquivos da pasta por ordem alfabética de A a Z e eu gostaria muito que essa lista de arquivos fosse exibida por ordem de data de modificação decrescente, da mais atual para a mais antiga, e não estou conseguindo realizar essa tarefa, gostaria muito da ajuda dos amigos para solucionar esse ocorrido, desde já agradeço a ajuda de todos.

      Segue o código-fonte

       
      <?php //$diretorio = "D:\SERVIDOR-APACHE\PATRIMONIO TECNOLOGIA\images"; $diretorio = "/home/patrimonio/www/sites/default/files/ftpdata/download/Acesso Remoto"; //USADO PARA LISTAR OS ARQUIVOS DA PASTA $url = "sites/default/files/ftpdata/download/Acesso Remoto/"; // USADO PARA FAZER O LINK DE DOWNLOAD // abre o diretório $ponteiro = opendir($diretorio); // monta os vetores com os itens encontrados na pasta while ($nome_itens = readdir($ponteiro)) { $itens[] = $nome_itens; } // ordena o vetor de itens sort($itens); // percorre o vetor para fazer a separacao entre arquivos e pastas foreach ($itens as $listar) { // retira "./" e "../" para que retorne apenas pastas e arquivos if ($listar!="." && $listar!=".."){ // checa se o tipo de arquivo encontrado é uma pasta if (is_dir($listar)) { // caso VERDADEIRO adiciona o item à variável de pastas $pastas[]=$listar; } else{ // caso FALSO adiciona o item à variável de arquivos $arquivos[]=$listar; } } } // lista as pastas se houverem if ($pastas != "" ) { foreach($pastas as $listar){ print "";} } // lista os arquivos se houverem if ($arquivos != "") { foreach($arquivos as $listar){ //CONDICAO PARA NOMEAR EM BYTES, KB, MB, GB, TB $tamanho = filesize("$url/$listar"); $kb = "1024"; $mb = "1048576"; $gb = "1073741824"; $tb = "1099511627776"; if($tamanho<$kb){ $tamanho_resposta = ($tamanho." bytes"); }else if($tamanho>=$kb&&$tamanho<$mb){ $kilo = number_format($tamanho/$kb,2); $tamanho_resposta = ($kilo." KB"); }else if($tamanho>=$mb&&$tamanho<$gb){ $mega = number_format($tamanho/$mb,2); $tamanho_resposta = ($mega." MB"); }else if($tamanho>=$gb&&$tamanho<$tb){ $giga = number_format($tamanho/$gb,2); $tamanho_resposta = ($giga." GB"); } // FIM CONDICAO PARA NOMEAR EM BYTES, KB, MB, GB, TB // DATA DA ULTIMA MODIFICACAO $modificado = date("d/m/Y H:i:s", filemtime("$url/$listar"))."<br>"; // FIM DATA DA ULTIMA MODIFICACAO //echo"$modificado"; // FAZ A LISTA DE XIBICAO DOS AQRUIVOS DO DIRETORIO // FAZ A LISTA DE XIBICAO DOS AQRUIVOS DO DIRETORIO echo" <tr> <td width='438' height='30' bgcolor='#ffffff'><p><font size='2'>&nbsp;&nbsp;<a href='$url/$listar' target='_blank'>$listar</a></font></p></td> <td width='192' bgcolor='#ffffff'><p><font size='2'>&nbsp;&nbsp;$tamanho_resposta</font></p></td> <td width='340' bgcolor='#ffffff'><p><font size='2'>&nbsp;&nbsp;$modificado</font></p></td> <td width='202' bgcolor='#ffffff'><p align='center'><a href='$url/$listar' target='_blank'><img src='images/nuvem.jpg'/></a></p></td> </tr> "; } } else { echo "<p><font color='#ff0000' size='3'>Não há nenhum arquivo.</font><p><br>"; } echo"</table>" ?>  

    • By whoopic
      Olá a todos!
      Estou a tentar perceber qual a melhor abordagem para:
      (Campos/Colunas:)
      A - Moeda
      B - Igual a A
      C - (A+B)/2
      D - Caixa de seleção7Checkbox : Se "ligada": C=C/2
       
      Preciso que estes campos sejam "persistentes", para que os possa usar em relatórios.
       
      Pensei em colunas "computadas". Consigo realizar tudo isto com essa abordagem?
      Tentei por exemplo no campo B, usando o campo de fórmula para coluna computada e inserindo o nome da coluna A.
       
       
      Pode alguém dar-me um empurrãozinho?
      Obrigado desde já.
       
    • By luialcantara
      Olá, a empresa onde trabalho tem uma página de login para área restrita que está com problema na função de cadastro. O formulário está enviando os dados para o banco de dados e o usuário se torna ativo para acesso normalmente. O problema é que a mesma função que salva os dados deveria redirecionar o cliente para a área restrita ou então para a página inicial para que ele digite usuário e senha e consiga acessar a página. 
       
      A página já estava pronta quando comecei aqui e eu não tenho domínio sobre php, mas já corrigi alguns erros que estavam impedindo o cadastro. Porém os clientes reclamam pois após concluir o cadastro a imagem de carregamento não desaparece, então apenas coloquei um delay para evitar os questionamentos, pois o usuário fica ativo, então é só voltar para o login que eles conseguem usar nosso site.
       
      A página está dividida entre uma de login (php), uma para cadastro (php) e a principal, que está no wordpress. 
       
      Função do formulário de cadastro:
                  submitHandler: function(form) {                 $(".botoesactions").hide();                 $(".ajaxloader").show();                 var dados = jQuery( form ).serialize();                  $(".ajaxloader").fadeOut(1500);                 $.ajax({type: "POST", data: dados, url:"<?php echo get_site_url(); ?>/atendimento/cadastrar",success: function(data){                     console.log(data);                     try {             var ret = JSON.parse(data);                     } catch (e) {          var ret = false;                    }                     $(".ajaxloader").hide();                     if(ret !== false && ret.retorno === "ok"){                         console.log(ret);                         alert("Cadastrado realizado com sucesso!");                         window.location.href = "<--!?php echo get_site_url(); ?-->/atendimento/";                     }else if(ret !== false && ret.retorno === "fail"){                         alert(ret.mensagem);                         $(".botoesactions").show();                     }else{                         $(".botoesactions").show();                     }                 }});             }  
       
      Função de inserção de informações no banco de dados:
      elseif('cadastrar' == $syjusaten){                         if(!isset($_SESSION) || !isset($_SESSION['jusate_session']['answeris']) || $_SESSION['jusate_session']['answeris'] != 42 ){                 if($_POST && $_POST['typos'] == "iscadastro"){                     $url= $urlServer.'/Cliente/ClienteSite/cadastraclientesite';                     $parms = array(                         "usuario" => $_POST['user'],                         "Senha" => $_POST['pass'],                         "Cliente.ClienteId" => $_POST['clienteId'],                         "Cliente.Nome" => $_POST['nome'] /*Existem outros dados, mas acho que ficaria muito codigo e não contribuem para erro*/                     );                     $respServer = syJuCurl($url, $parms);                     if($respServer == ""){                         echo json_encode( array(                             "retorno" => "fail",                             "mensagem" => "Não foi possivel realizar o cadastro. Tente novamente mais tarde"                         ));                     }else{     echo $respServer;                         }                 }else{                     echo "ELSEE";                     header("Location: ".get_site_url()."/atendimento");                 }                         exit;             }else{                 header("Location: ".get_site_url()."/atendimento/");             }         }  
      Agradeço pela atenção ;)
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.