Ir para conteúdo

POWERED BY:

Arquivado

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

Julio Andolfo

Servidor está pegando GET como se fosse uma pasta !

Recommended Posts

 

 

Boa tarde a todos da IMaster, estou com um probleminha, estou criando um sistema de indicação em meu site.

 

O cara digita vamos supor meusite.com.br/?id=julioandolfo

 

Que é o indicado, estava testando localmente, e consegui guardar o GET, ou seja julioandolfo, digitado na URL, usando esse código :

 

<?php
if (isset($_GET['id'])){
  $login = $_GET['id'];
  setcookie("id",$login,time()+3600*24*30);
}else{
  if (isset($_COOKIE['id'])){
     $login = $_COOKIE['id'];
  }
}

?>

 

 

Porém, o que está acontecendo agora que coloquei no servidor online, eu consigo entrar no site sem colocar indicações, mas a partir do momento que coloco a indicação, ele está transformando a indicação como se fosse uma pasta do site.

 

meusite.com.br/julioandolfo

 

E não está pegando como se fosse um GET e sim como um diretório, alguém pode me ajudar ?

 

Obrigado !

 

 

 

 

Eu consegui fazer funcionar assim :

 

 

 

ao invez de colocar : meusite.com.br/?id=julioandolfo

 

Eu coloquei meusite.com.br/index.php?id=julioandolfo

 

Alguém sabe como eu poderia mudar isso para somente meusite.com.br/julioandolfo

 

?

 

Obrigado desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara eu já vi de tudo de URL amigável, tudo que tento não funciona !

 

O pior que está acontecendo é o seguinte :

 

Quando eu coloco a primeira vez meusite.com.br/index.php?id=julioandolfo

 

Funciona a index, mas se eu troco de página, já da o erro :

 

 

Not Acceptable

An appropriate representation of the requested resource /index.php could not be found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

 

Intendeu ?

 

Eu resolvendo pelo menos isso, vejo a URL amigável !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver dessa forma :

 

<?php
session_start();
if(isset($_GET['id'])){ 
$_SESSION['userid'] = $_GET['id'];
}else{
	$_SESSION['userid'] == NULL;
	}

?>

 

Agora só falta url amigável, se alguém souber exatamente como fazer e puder ajudar fico agradecido,

 

de como transformar isso : meusite.com.br/index.php?id=julioandolfo

 

para

 

meusite.com.br/julioandolfo

 

 

obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você tem que criar um arquivo .htaccess


Dentro dele colocar


RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f


RewriteRule ^/(.*) index.php?id=$1


Isso faz com o que foi passado depois da / (barra) seja o que vai para o $_GET['id'] se você conhece de expressões regulares você vai entender de URL amigável com facilidade.


Isso é o básico pra solucionar seu exemplo, de uma estudada maior pra suprir todas suas necessidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Você tem que criar um arquivo .htaccess
Dentro dele colocar
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*) index.php?id=$1
Isso faz com o que foi passado depois da / (barra) seja o que vai para o $_GET['id'] se você conhece de expressões regulares você vai entender de URL amigável com facilidade.
Isso é o básico pra solucionar seu exemplo, de uma estudada maior pra suprir todas suas necessidades.

 

Mesmo colocando somente o que você me passou, ele da erro na página como se eu estivesse tentando acessar uma pasta !

 

Mas obrigado desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certamente nao é com o PHP seu problema, é com as config do seu apache.

 

Vamo la

 

abra seu httpd.conf e buscque por: DirectoryIndex

 

Veja se o codigo la esta +- assim, se nao coloque feito esta abaixo...

<IfModule dir_module>
    DirectoryIndex index.html index.php index.html.var
</IfModule>

 

Segunda hipotese

 

Procure no mesmo arquivo por AddType

 

veja se esta assim... se nao o faça como esta.

 

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

vamo tentando, se nao resolver abra a pasta onde esta apache e procure pela pasta logs, acesse os arquivos de erro que tem la, provavelmente no arquivo access.log mostrara o que ta pegando que esta dando erro.

 

Posta ai que resolvo p vc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ter alguns problemas nesse caso não esta habilitado no servido o mode de reescrita do Apache se estiver utilizando o wamp pra testar é fácil solucionar abre o menu do wamp> Apache>Apache Modules>rewrite_module assim você ativa o modulo de rescrita do servidor apche acho que nesse caso o erro seria de internal server error. não custa tentar.

 

O arquivo de .htaccess não possui nome nenhum é apenas .htaccess no windows é um pé no saco criar esse arquivo tente renomear o arquivo novamente e certifique que ele esta no seu diretório principal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que está em um servidor online, já usei somente o Rewrite On, e não deu erro quando acessei uma pasta vazia com ele, agora tenho que ver o que o supertelnet disse.

 

Obrigado novamente, vou tentando aqui



Ele no LOG da o erro assim mesmo :

 

File does not exist: /home2/dreamopp/public_html/julioandolfo



O pior é que nem localhost aqui funciona esta tudo habilitado no Apache, tem alguma coisa em especial ?

 

Não funciona nem o básico de executar os arquivos sem as extensoes

 

Desde já obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa agradeço muito a ajuda de vocês, mas acredita que o erro era tão besta rsrsrsr

 

O Danilo postou o htaccess, mas ai não intendia muito bem só copiei e colei, estava assim :

 

 

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ index.php?id=$1
Onde deixei em vermelho ali, tinha uma barra " / " só tirei ela e funciona normal agora.
Ficando assim :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1
Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa agradeço muito a ajuda de vocês, mas acredita que o erro era tão besta rsrsrsr

acrescentando, aquela barra ali era inútil, póis para acessar a página

ela teria que tar assim meusite.com.br//julioandolfo

 

e para usar barras, você precisa escapar-las primeiro "\/"

 

só isso :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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