Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou pegando o url no bd, passo por uma função que da echo href do html mas o link para redirecionar esta ficando assim: http://www.localhost/astronews/%EF%BB%BFhttps://www.facebook.com/helmesvieirasantos
Mas se eu apenas coloca o link no href sem html ele fica normal: https://www.facebook.com/helmesvieirasantos
O problema é que da forma que esta ficando nao redireciona para outro site, alguma ideia do seja?
Ja tinha tentado com javascript tbm e nao deu certo
Olá, posta a função que dá o echo href, por favor.
Acredito que você possa estar passando o link relativo, por isso ele pega o seu endereço e adiciona o href passado...
Tentei assim so com php
function Status2($campo) {
include 'conexao.php';
$sql = "SELECT campo, valor FROM `config` WHERE campo='default'";
$query = $mysqli->query($sql);
$linha = $query->fetch_assoc();
$tabela = NULL;
if ($linha['valor'] == "true") {
$tabela = "default";
} else {
$tabela = "config";
}
$sql = "SELECT campo, valor FROM `$tabela` WHERE campo='$campo'";
$query = $mysqli->query($sql);
$linha = $query->fetch_assoc();
$valor = $linha['valor'];
echo $valor;
}
Chamando assim:
<?php Status2("facebook-url"); ?>
E desse forma com javascript:
<script type="text/javascript">
function redireciona (url){
location.href = ""+url;
}
</script>
Chamando assim;
redireciona('<?php Status2("facebook-url"); ?>')Faz o seguinte... tenta usar a função header(), do próprio PHP, para redirecionar a página. Lembre-se que para utilizar essa função, nenhum cabeçalho HTTP deve ter sido setado anteriormente.
>
$url = Status2("facebook-url");
header("Location: ".$url);Mas o header() vai me redirecionar do site que estou, eu quero que abra uma nova aba, tipo o target="_blank" do html
Ah sim. Como você está montando o "a" ?
<a href="#" target="_blank" onclick="redireciona('<?php Status2("facebook-url"); ?>')"><?php Status2("pseudonimo"); ?></a>
ou
<a href="<?php Status2("facebook-url"); ?>" target="_blank"><?php Status2("pseudonimo"); ?></a>Cara, sinceramente não estou entendendo o que está acontecendo. Acabei de testar aqui no meu computador e foi normalmente. Dá um var_dump() no retorno da função Status2() e posta o retorno por favor.
Outra coisa, o que vc quer dizer por "Mas se eu apenas coloca o link no href sem html ele fica normal:" ?
Ah escrevi errado. Se eu colocar o link no html puro ele vai normalmente. Ex.:
<a href="https://www.facebook.com/helmesvieirasantos" target="_blank"></a>
Assim da certo. Mas se eu for da um echo ai não funciona.
E a função ta normal, ja ate crie uma varivel com o link e dei echo la dentro e ficou a mesma coisa
E como ta salvo no banco esse campo???
Assim: "https://www.facebook.com/helmesvieirasantos"
Sem as aspas.
<a href="<?php Status2("facebook-url"); ?>" target="_blank"><?php Status2("pseudonimo"); ?></a>
da um ctrl+ U e vê no codigo html como fica esse link ai...
Cara, só por desencargo de consciência... experimenta na própria função dar o "echo" no elemento "a" inteiro.
echo '<a href="'.Status2("facebook-url").'" target="_blank">'.Status2("pseudonimo").'</a>';ficou recursivo isso ai Diogo :D
vai dar pau rsrs
>
ficou recursivo isso ai Diogo :D
vai dar pau rsrs
Por que daria pau? rsrs
Se esse echo estiver dentro da função, ele vai chamar dnvo a função no href (que está no echo, que está na função), que vai rodar a função e terminar no echo, que vai chamar a função, rodar a função e terminar no echo, que vai.... rsrsrs
recursivo rs
Ah sim. Mas quis dizer para dar o "echo" direto pela função, mas removendo no HTML a estrutura do "a". No local onde ficaria o "a" vai ficar apenas a chamada da função, sacou?
se voce pediu pra adicionar aquele echo na funcao e excluir o href externo, ficaria assim:
function Status2($campo) {
include 'conexao.php';
$sql = "SELECT campo, valor FROM `config` WHERE campo='default'";
$query = $mysqli->query($sql);
$linha = $query->fetch_assoc();
$tabela = NULL;
if ($linha['valor'] == "true") {
$tabela = "default";
} else {
$tabela = "config";
}
$sql = "SELECT campo, valor FROM `$tabela` WHERE campo='$campo'";
$query = $mysqli->query($sql);
$linha = $query->fetch_assoc();
$valor = $linha['valor'];
echo '<a href="'.Status2("facebook-url").'" target="_blank">'.Status2("pseudonimo").'</a>';
}
mas o echo acabaria chamando a função novamente, pois ele tem essa chamada no href... por isso disse que seria recursivo e forever and ever and ever rsrs
AAAAHH tá, é verdade, faz sentido. Acabei não me atentando nesta recursividade.. kkkkk
foi só pra não passar desapercebido, mas a ideia é boa... basta mudar as chamadas de função do echo pelas variaveis que contem os dados do banco.
Fiz das duas formas, a primeira o url aparece fora do href rs' e a segunda continua com o mesmo erro de antes. Sempre aparecendo o http://localhost/astronews/ mais o url desejado. O engraçado é que no codigo fonte ta a url normal
Usei a funçao assim:
function footer(){
$url = "www.facebook.com";
$ps = "Hell";
//Primeira opçao que usei
//echo "<a href=\"".Status2("facebook-url")."\" target=\"_blank\">". Status2("pseudonimo")."</a>";
//Segunda opção que usei
echo '<a href="'.$url.'" target="_blank">'.$ps.'</a>';
}Espera... você disse que no código fonte aparece a URL normalmente?
Espera... você disse que no código fonte aparece a URL normalmente?
Isso mesmo
Tente