Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diogosilvasantana

Remover parte do link com o PHP

Recommended Posts

tenta $url = basename($_SERVER['REQUEST_URI']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o #access_token=32xxxxx  é criado após o php 'cuspir' o html... nada mais você pode fazer (com php)

 

Ai só com JavaScript xD

https://www.w3schools.com/jsref/jsref_replace.asp

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

	$url = "http://localhost/login/admin/index.php?id=social#access_token=32xxxxxxxxxxxxxxxxx";
	$urlFragmento = parse_url($url, PHP_URL_FRAGMENT);
	$urlFragmento = str_replace ('access_token=', '', $urlFragmento);

	echo $urlFragmento; // * Resultado: 32xxxxxxxxxxxxxxxxx
	
?>

EDIT

 

Ops, vi que a situação mudou uhahuauhauh vou pensar em algo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive uma idéia... primitiva, mas tive.

 

Pegue esta URL via javascript (já que o Anchor é comportamento do navegador, não do servidor), e via ajax, execute as limpezas (se quiser fazer no js mesmo, pode fazer, mas aí não sei como faz... mas eu mandaria para o PHP com a URL captada no JS).

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maykel-ctba fala isso não broo doí meu  coração..

 


@diogosilvasantana

Pode explicar o objetivo de toda essa labaça de códigos que estamos fazendo?

O motivo do #access_token= aparecer ? (é um evento ? O que faz isso disparar?)

 

O que você pretende fazer com essa url 'tratada'?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá, deixa eu explicar melhor o que acontece e o que preciso para resolver meu problema que to quebrando a cabeça:

 

1 - Eu estou desenvolvendo um sistema e terá um módulo onde a pessoa vai cadastrar suas redes sociais e terá todas as informações como por exemplo, no Instagram, a quantidade de seguidores que possui. Só que as redes sociais exigem que seja cadastrado o token de acesso. Esse "#access_token" é fornecido pelo aplicativo que criei no Instagram, ou seja, ele direciona para um endereço que configurei no aplicativo, só que por padrão, ele retorna meu link seguido desse "#access_token=32xxxxxxxxxxxxx".

 

2 - A idéia é jogar esse Token via $_GET dentro do textbox no formulário de cadastro, porém pra isso preciso pegar apenas a numeração do TOKEN. 

 

3 - A idéia de criar o arquivo token.php (O que tá dando dor de cabeça) é fazer com que pegue a URL retornada do navegador, pegar somente o número do Token, jogar em uma variável e jogar um "header("pagina.php&token="$token) para que, ao voltar para a página, o $_GET['token'] preencha o textbox.

 

Objetivo:

To tentando remover o "#access_token=" ou substituir o "#" por "&" 

 

É isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

vem cá esse token não é do seu seu próprio aplicativo? por que precisa disso pra pegar ele se na teoria tu já o pega na hora que cria o aplicativo? não seria só jogar ele direto na programação sem precisar disso tudo aí não?

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, marsolim disse:

vem cá esse token não é do seu seu próprio aplicativo? por que precisa disso pra pegar ele se na teoria tu já o pega na hora que cria o aplicativo? não seria só jogar ele direto na programação sem precisar disso tudo aí não?

 

Esse token é gerado pelo APP criado no Instagram Developers. Ele gera de acordo com cada usuário. 

 

Estou fazendo a integração do Instagram ao meu sistema.

 

O App no Instagram ele retorna o link que configurei, seguido do #access_token=[token do usuario instagram]

 

Dai quero pegar o Token e jogar no $_GET, pois vou salvar esse valor no banco de dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

 nos fale nos mais sobre como tu pega ele porque nas postagem anteriores me parece me que não detalhaste o procedimento. é com um script js? como é o script que busca o bendito cujo?

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, marsolim disse:

 nos fale nos mais sobre como tu pega ele porque nas postagem anteriores me parece me que não detalhaste o procedimento. é com um script js? como é o script que busca o bendito cujo?

 

A única forma que consegui pegar a URL que retorna na barra de endereços, jogar em uma variável e imprimir com o echo foi no código abaixo:

 

<?php
$url = '<script>document.write(document.URL);</script>';

echo $url;
?>

 

Porém, ele só mostra na tela, não armazena dentro da $url como uma string

 

Se conseguir armazenar toda a url (incluindo o #access_token=numeração) que está na barra de navegação em uma variável PHP, a função "str_replace" que o @gabrieldarezzo passou vai solucionar o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

o php não pega o # na url porque isso é coisa do cliente e não do server o jeito é mesmo tentar passar isso em cookie pelo js e depois tentar pegar o kookie pelo php algo assim

 

echo "<script type='text/javascript'>document.cookie = 'tag=' + window.location.hash;</script>";
$chave = str_replace('#access_token=', '', $_COOKIE['tag']);
echo $chave;
unset($_COOKIE['tag']);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 minutos atrás, marsolim disse:

o php não pega o # na url porque isso é coisa do cliente e não do server o jeito é mesmo tentar passar isso em cookie pelo js e depois tentar pegar o kookie pelo php algo assim

 


echo "<script type='text/javascript'>document.cookie = 'tag=' + window.location.hash.replace('#','$');</script>";
$chave = str_replace('$access_token=', '', $_COOKIE['tag']);
echo $chave;

 

 

QUASE ISSO!!!

 

Ele até funcionou, mas por ser pelo cookie se fosse uma nova autenticação ele dá erro. Quando eu executo com as infos já no Cookie, ele funciona perfeitamente

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que excluir o cookie com unset() em seguida eu tinha editado o post anterior incluindo essa linha mas a edição se perdeu pelo jeito editei de novo olha lá e veja se resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, marsolim disse:

tem que excluir o cookie com unset() em seguida eu tinha editado o post anterior incluindo essa linha mas a edição se perdeu pelo jeito editei de novo olha lá e veja se resolve

 

Ele dá erro, dai se eu atualizo ele funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz um teste aqui com duas paginas sendo uma index e uma pra validar a chave e voltar para a index e assim me parece funfar legal

 

index.php

    session_start();
    if(isset($_GET['id'])){
        echo "<script type='text/javascript'>document.cookie = 'tag=' + window.location.hash;window.location = 'valida.php';</script>";
    }
    if(isset($_SESSION['chave'])){
        echo $_SESSION['chave'];
    }

 

validar.php

    session_start();
    if(isset($_COOKIE['tag'])){
        $_SESSION['chave'] = str_replace('#access_token=', '', $_COOKIE['tag']);
        unset($_COOKIE['tag']);
    }
    header('Location: ./');

 

aqui verifica se a url tem o parametro e se tiver seta o cookie e envia para a pagina de validar e essa pagina pega o baguio e se o cookie tiver setado ela pega e mete o valor numa sessão e elimina o cookie. uma vantagem que eu acho é que quando volta pra index a url em cima fica limpa sem os parametros

testa aí e veja se dá pra adaptar. aqui funca manero

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.