m_luism 1 Denunciar post Postado Maio 30, 2013 Tinha um website 100% funcional. Tive trocar servidor...Ao trocar para outro servidor/alojamento surgiu o seguinte problema:Sempre que no backoffice do site em php, gravo algum texto com um link. (por exemplo link para wikipedia)Posteriormente na interface ao clicar no texto/link em vez de abrir uma nova paginaabre o link no seguinte formato:meusite.com//"//"////"http://wikipedia.org/"////"//"/"alguma solucao para isto?sera que tem alguma coisa a haver com configuração novo servidor?Algum problema de base dados?ou mascaras? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 30, 2013 consulte o desenvolvedor ou mantenedor do sistema Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Maio 30, 2013 Sou eu :)Eu desenvolvi o site em php, mas nao encontro o defeito! Num servidor funciona bem, no outro passou a mostrar os links dessa forma Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 30, 2013 debugue o código até encontrar o motivo do erro.. Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Maio 30, 2013 Nao sera nenhuma configuracao servidor? Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Maio 30, 2013 Ninguém aqui possui uma bola de cristal. É necessário código ou será impossível ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Maio 31, 2013 eu sei que ninguem tem bola cristal.... e que ninguem adivinha eu posso postar o codigo e explicar. Se nao postei ate agora foi porque pensei que fosse um erro comum! Ou seja pensei que fosse normal criar essas mascaras nos links "////" e que alguem conhecesse a solucao. Primeiro porque o site tem o backoffice que tem caixas texto (tipo as que se esta a usar no forum, e onde eu guardo e faz o registo na base dados. No frontoffice/interface tenho o seguinte para mostrar: // ISTO É UMA PAGINA COM COLUNAS LADO DIREITO, E CONTEUDO LADO ESQUERDO // AO CLICAR NA COLUNA ESQUERDA APARECE DO LADO DIREITO O CONTEUDO <? $res = mysql_query("SELECT * FROM Pages WHERE subpage='links"); $paginasquemsomos = array(); while($row = mysql_fetch_array($res)){ $paginasquemsomos[] = $row['PageName']; } $sub = $_GET['sub']; $flagquemsomos = false; if(isset($sub)){ if(!in_array($sub, $paginasquemsomos)){ $flagquemsomos = true; } } $res = mysql_query("SELECT * FROM Pages WHERE subpage='links'"); while($row = mysql_fetch_array($res)){ if(!$flagquemsomos){ ?> <li><a href="?page=links⊂=<?=$row['PageName'] ?>" class="activo" ><?=$row['Title'.$lang['lang']] ?></a></li><? $flagquemsomos = true; $sub = $row['PageName']; $subText = $row['Text'.$lang['lang']]; }else{ ?> <li><a href="?page=links⊂=<?=$row['PageName'] ?>" <?= ($sub == $row['PageName']) ? 'class="activo"' : '' ?> ><?=$row['Title'.$lang['lang']] ?></a></li><? if($sub == $row['PageName']) $subText = $row['Text'.$lang['lang']]; } } ?> O codigo da interface esta correcto, eu pelo menos tenho quase certeza disso! mas o backoffice esta a guardar da seguinte forma na base dados os links <p><a href=\"\\"\\\\"sapo.pt\\\\"\\"\" target=\"\\"\\\\"_blank\\\\"\\"\">sapo.pt</a></p> <p> </p> <p><a href=\"\\"sapo.pt\\"\">sapo.pt</a></p> <p> </p> <p><a title=\"\\"www.sapo.pt\\"\" href=\"\\"http:/www.sapo.pt\\"\" target=\"\\"_top\\"\">sapo.pt</a></p> Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Maio 31, 2013 Mas você está inserindo os links de que forma? Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Junho 3, 2013 Através de backoffice, usando ferramentas com caixas de texto através do JS tiny_mce que é o que uso nos backoffice que crio.... (tem boa interface para os administradores dos websites) Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Junho 3, 2013 Você está com magic quotes ligado ou fazendo algum tipo de htmlspecialchars/htmlentities? Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Junho 4, 2013 obrigado pelas respostas e agradeço a atenção neste topico ;) sabe dizer me como vejo isso? Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Junho 4, 2013 Verifique o retorno deste código (precisa ser executado no servidor no qual o site está rodando e dando este problema). <?php var_dump(get_magic_quotes_gpc()); Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Junho 4, 2013 Imprimiu isto: int(1) Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Junho 4, 2013 SEMPRE COLOQUE ASSIM SEU PHP <?php E NÃO ASSIM: <? Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Junho 4, 2013 Bru_ce, bem lembrado! O problema é que você está com o magic_quotes habilitado, você possui acesso ao PHP.ini? é que você precisa desabilitá-lo, pois ele está causando o problema. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Junho 4, 2013 Imprimiu isto: int(1) Isso significa que a diretiva magic_quotes_gpc está habilitada no seu servidor, no PHP.INI. Essa... porcaria teimosa insiste em escapar alguns caracteres considerados especiais automaticamente. O problema maior é que um dos caracteres que ela escapa é o próprio caractere usado para escapar, ou seja, ao encontrar uma barra invertida ( \ ) ela vai adicionar outro ( \\ ), só que esse, adicionado à esquerda, precisa ser escapado ( \\\ ) e como também é um caractere de controle, escapado novamente ( \\\\ ). Para os outros caracteres, a substituição pára em três barras invertidas. SEMPRE COLOQUE ASSIM SEU PHP <?php E NÃO ASSIM: <? Apesar de pertinente, isso não influencia no problema. O problema é que você está com o magic_quotes habilitado, você possui acesso ao PHP.ini? é que você precisa desabilitá-lo, pois ele está causando o problema. E se não tiver acesso ao PHP.INI essa diretiva pode ser configurada também via .htaccess. Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Junho 5, 2013 Boas, obrigado pela ajuda! Tentei procurar o php.ini e nao encontrei... tentei o usar o phpinfo() mas esta desactiva Encontrei o ficheiro .htaccess mas se tento editar, o site nao funciona. Sabem dizer-me se é possivel editar o ficheiro? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 5, 2013 depende do que vc enfiou no htaccess para conseguir travar o apache.. afinal, o que vc fez? php_flag magic_quotes_gpc off ou php_value magic_quotes_gpc off ou php_admin magic_quotes_gpc off depende de como está as permissões e setagens do ambiente olhe no log o motivo do erro.. se nada funcionar terá que aplicar aquela beleza de gambiarra usando array_map Note que isso apenas desativará o magic_quotes, mas o seu problema mesmo acredito que persistirá para os dados que já estão salvos com as barras invertidas... ainda terá que corrigir, no banco de dados, removendo os caracteres de escape Compartilhar este post Link para o post Compartilhar em outros sites
m_luism 1 Denunciar post Postado Junho 5, 2013 Sim eu sei que depois tenho de actualizar a base dados. O ficheiro estava em branco, editei e acrescentei o que mencionou exemplo: <? php_admin magic_quotes_gpc off ?> O erro que da é o seguinte: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 5, 2013 htacess não tem nada a ver com php.. o erro é provavelmente devido as tag... remova as tags coloque apenas essa linha php_admin magic_quotes_gpc off se falhar, troque php_admin por php_value ou php_flag Compartilhar este post Link para o post Compartilhar em outros sites