Jump to content
tiko165

Links com $_SERVER

Recommended Posts

tiko165

Estou a usar o $_SERVER, e neste momento estou a ter um pequeno problema

Estava a programar o meu site dentro de uma pasta, onde ficaria o link tipo

www.link.com/pasta/index.php

E para ler isso usava o seguinte codigo

http://<?php echo $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); ?>/index.php

Mas agora começei a usar na pasta de raiz, com o mesmo codigo, mas aparece-me com duas barras

www.link.com//index.php

Porque razão aparece assim?

**Queria que funciona-se de ambas as formas**

Edited by tiko165

collectioneuro300px.png

Share this post


Link to post
Share on other sites
I-NOZex

Estou a usar o $_SERVER, e neste momento estou a ter um pequeno problema

Estava a programar o meu site dentro de uma pasta, onde ficaria o link tipo

www.link.com/pasta/index.php

E para ler isso usava o seguinte codigo

http://<?php echo $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); ?>/index.php

Mas agora começei a usar na pasta de raiz, com o mesmo codigo, mas aparece-me com duas barras

www.link.com//index.php

Porque razão aparece assim?

**Queria que funciona-se de ambas as formas**

porque a variavel $_SERVER['HTTP_HOST'] retorna sempre uma / no fim ;)

vais ter de fazer uma verificação se a dirname($_SERVER['PHP_SELF']) tem valor ou nao, se tiver? entao a frente insere /index.php

Caso teja vazia, adiciona so index.php

Espero que me entendas...


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
tiko165

porque a variavel $_SERVER['HTTP_HOST'] retorna sempre uma / no fim ;)

vais ter de fazer uma verificação se a dirname($_SERVER['PHP_SELF']) tem valor ou nao, se tiver? entao a frente insere /index.php

Caso teja vazia, adiciona so index.php

Espero que me entendas...

Entendo, mas não era bem dessa forma que pretendia, até porque ja tinha testado antes!

Aconselho-te a definir o url base numa variável acessível em qualquer página, num único ponto, facilita imenso.

Sim, eu sei que facilita, eu só pretendia fazer isto, caso mais tarde, pretendesse alterar da pasta da raiz e não ter obrigatoriamente a mexer no código.

Mas como também, a partir de hoje, vou parcialmente só usar a pasta de raiz, vou deixar desta forma.

http://<?php echo $_SERVER['HTTP_HOST']; ?>/index.php

Edited by tiko165

collectioneuro300px.png

Share this post


Link to post
Share on other sites
taviroquai

@tiko

Vê lá se gostas desta...

/**
 * Gets an array of URL parts
 * Hint: use implode to glue all parts
 * @param boolean $only_domain
 * @return array
 */
function parseRoute($only_domain = false) {
	$url = array();
	$url[] = strtolower(substr($_SERVER["SERVER_PROTOCOL"], 0, 4)) == 'https' ? 'https' : 'http';
	$url[] = '://';
	$url[] = $_SERVER['SERVER_NAME'];
	if (!$only_domain) $url[] = $_SERVER['REQUEST_URI'];
	return $url;
}

Para obteres apenas a parte do protocolo + domínio...

$domain = implode('', parseRoute(true));

Para obteres o pedido atual...

$url = implode('', parseRoute());

Por incrivel que pareça, ainda podes definir uma constante para usares em qualquer lado na aplicação com...

define('BASE_URL', implode('', parseRoute(true)));

Edited by taviroquai

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.