Foros del Web » Programando para Internet » PHP »

Identificando sólo dominio

Estas en el tema de Identificando sólo dominio en el foro de PHP en Foros del Web. Hola a todos. En el pasado he aplicado php para identificar parte del código en función de la existencia de palabras en url: <?php $uri ...
  #1 (permalink)  
Antiguo 15/11/2012, 05:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Identificando sólo dominio

Hola a todos.

En el pasado he aplicado php para identificar parte del código en función de la existencia de palabras en url:

<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'lapalabra') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>

Así, sólo se aplica el archivo.css a las páginas en cuya url se contenga "lapalabra".

Mi conocimiento de php es básico y me gustaría preguntar si existe alguna lógica similar para hacer que se identifique el dominio sin más, es decir, que sólo se apliquen cosas al dominio.

Esto no funciona:


<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'domino.com') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>


Ni esto otro:


<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'www.domino.com') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>


Os diré que no puede ser utilizando el sufijo index (www.dominio.com/index.php)

Se trata de identificar www.dominio.com sin más.

Un saludo y gracias por vuestra atención.
  #2 (permalink)  
Antiguo 15/11/2012, 06:43
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 13 años
Puntos: 95
Respuesta: Identificando sólo dominio

No tiene ningún sentido basarse en la url para cargar o no un archivo de estilos. Eso debería depender de la propia "configuración" del módulo/sección.

Puedes usar $_SERVER['DOCUMENT_ROOT']
http://php.net/manual/es/reserved.variables.server.php
__________________
Web Designer.
Themes-Up!, próximamente
  #3 (permalink)  
Antiguo 15/11/2012, 07:27
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Perdona fishdesign, pero sí tiene sentido en mi proyecto.

Se trata de aplicar reglas sólo al índex con una terminación .com sin más.

Por cierto, no soy capaz de dar con la forma de condicionar con $_SERVER['DOCUMENT_ROOT']
  #4 (permalink)  
Antiguo 15/11/2012, 07:48
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Identificando sólo dominio

Con $_SERVER['REQUEST_URI'] solo vas a saber el archivo en el cual estas, por ejemplo si estas en test.php te imprimirá /test.php

Y el DOCUMENT_ROOT solo te saldra la ruta completa de donde esta dicho archivo, por ejemplo /home/user/public_html/test.php.

Revisa este enlace http://www.php.net/manual/en/reserve...les.server.php alomejor te sirve de ayuda.

Saludos!
__________________
Twitter: @ed33x
  #5 (permalink)  
Antiguo 15/11/2012, 08:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Tampoco me ha resultado.

No puedo creerme que no se pueda lograr sólo para el dominio.
  #6 (permalink)  
Antiguo 15/11/2012, 08:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

En una extensión de joomla utilicé la expresión "^/$" para identificar el índex. Es decir, para que sólo se aplique la regla al index.

No puede articularse de esta forma???
  #7 (permalink)  
Antiguo 15/11/2012, 08:13
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Identificando sólo dominio

Listo, utiliza $_SERVER["SERVER_NAME"].

Para probar pon:

Código:
echo $_SERVER["SERVER_NAME"];
Saludos!
__________________
Twitter: @ed33x
  #8 (permalink)  
Antiguo 15/11/2012, 08:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Sí, pero cómo lo encajo aquí?


<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'lapalabra') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>
  #9 (permalink)  
Antiguo 15/11/2012, 08:51
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Identificando sólo dominio

Ejemplo:

Código:
<?php
$uri = $_SERVER['SERVER_NAME'];
if (strpos($uri,'localhost') !== false ) {
echo "esta";
}else{
echo "no esta";
}
?>
Si lo ejecutas en localhost te dara "esta" sino, el else.

Es sencillo, un saludo.
__________________
Twitter: @ed33x
  #10 (permalink)  
Antiguo 15/11/2012, 09:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Lo he colocado, pero me da el mismo resultado "no esta" en el índex y en páginas interiores. Siempre el mismo.

Si coloco el nombre del dominio en lugar de "localhost" arroja siempre "esta", tanto en el índex como en páginas interiores.

Se trata de que muestre "esta" sólo para el dominio, pero no para ninguna sección interior.
  #11 (permalink)  
Antiguo 15/11/2012, 09:09
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Identificando sólo dominio

Y no es lo que quieres, lo que tu quieres no es, que si es un dominio en concreto haga una funcion y si es otro que haga otra funcion?

Lo que hace ese codigo es revisar en la url si existe una palabra, si existe realiza una funcion sino otra.

Si ese if lo pones en todos los archivos .php de "dominio1.com" y busca la palabra "dominio1.com" te va a salir todas "esta" ya que lo que varia es el archivo .php.

Acoplado al if que tu has puesto seria a si:

Código:
<?php
$uri = $_SERVER['SERVER_NAME'];
if (strpos($uri,'www.domino.com') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>
No se si me e expicado bien, Un saludo.
__________________
Twitter: @ed33x
  #12 (permalink)  
Antiguo 15/11/2012, 10:24
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

1. Si www.dominio.com entonces una función

2. Si cualquier otra posibilidad dentro del dominio, otra función


1. www.dominio.com (como una posibilidad)

2. www.dominio.com/paginaa o www.dominio.com/paginab o www.dominio.com/paginac o lo que sea, pero distinto de www.dominio.com (como otra posibilidad)


Se trata de aplicar un css sólo a "www.dominio.com" es decir, al índex sin más (sin index.php) en una página donde hay multitud de secciones y subsecciones.

Con la solución que acabas de poner, siempre sale

'<link href="/css/archivo.css" rel="stylesheet" type="text/css" />
  #13 (permalink)  
Antiguo 15/11/2012, 10:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Identificando sólo dominio

Puedes usar parse_url, junto con $_SERVER['REQUEST_URI'] y así hacer tu comprobación
  #14 (permalink)  
Antiguo 15/11/2012, 10:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

He colocado

<?php
$uri = parse_url($_SERVER['REQUEST_URI']);
if (strpos($uri,'www.dominio.com') !== false ) {
echo '<link href="/css/archivo.css" rel="stylesheet" type="text/css" />';
}
?>

Y arroja el mismo resultado - introduce el archivo.css - en el dominio y en todas las secciones. Es decir, que no resulta.

Creo que no lo estoy aplicando correctamente.
  #15 (permalink)  
Antiguo 15/11/2012, 10:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Identificando sólo dominio

Lee el Manual parse_url te regresa un array
  #16 (permalink)  
Antiguo 15/11/2012, 11:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Creo que me doy por vencido con este tema. Tendré que buscar otra solución ya que mi entendimiento de php no me permite llegar a una solución.
  #17 (permalink)  
Antiguo 15/11/2012, 11:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Identificando sólo dominio

Que triste que te des por vencido, algo tan simple como ver el manual y pensar durante 1 minuto, te puede dar la solución:
Código PHP:
Ver original
  1. <?php
  2. if (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) == '/') {
  3.     echo 'estoy en raiz';
  4. } else {
  5.     echo 'no estoy en raiz';
  6. }
  #18 (permalink)  
Antiguo 15/11/2012, 12:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

No es cuestión de pensar, sino de que mi nivel es muy basiquito. Entiendo que eres un experto, pero yo sólo estoy aprendiendo poco a poco y cualquier problema se convierte en un mundo.

Solucionado. Me funcionó. Gracias.
  #19 (permalink)  
Antiguo 15/11/2012, 12:19
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Identificando sólo dominio

pero la persistencia y tenacidad de cada persona no tiene nada que ver con la experiencia
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #20 (permalink)  
Antiguo 15/11/2012, 12:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Sí, pero te indico que me he metido en ese tutorial, hecho bastantes pruebas con esto y lo otro, buscado fórmulas parecidas en internet y no me funcionaba.

Por cierto, como se pone esto como solucionado??
  #21 (permalink)  
Antiguo 15/11/2012, 12:30
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Identificando sólo dominio

Cita:
Iniciado por JUMASOL Ver Mensaje
Perdona fishdesign, pero sí tiene sentido en mi proyecto.

Se trata de aplicar reglas sólo al índex con una terminación .com sin más.

Por cierto, no soy capaz de dar con la forma de condicionar con $_SERVER['DOCUMENT_ROOT']
Creo que fishdesign tiene razón, la logica de negocio implicada deberia poder decidir que css usar. Seguramente estas incluyendo archivos php y quieres que se identifique por la url dodne estas y asi saber que hoja de estilo aplicar. Realmente no es una muy buena manera de hacerlo.

Yo te recomendaria que uses MVC aunque sea propio, con una estructura sencilla, donde cada pagina tiene su configuración propia y te evitas este tipo de problemas.

index.php
Código PHP:
Ver original
  1. <?php
  2. //configuracion de la pagina (declaracion de constantes)
  3. define('VISTA', basename($_SERVER['PHP_SELF'], '.php'));
  4. $foo = "hola mundo";
  5.  
  6. include('main.php');
  7. ?>

main.php
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <link rel="shortcut icon" href="favicon.ico" />
  4.         <title>Sistema de Turnos</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  6.         <?php if (VISTA != 'index') { ?>
  7.             <link href="/styles/admin.css" rel="stylesheet" type="text/css" />
  8.         <?php } ?>
  9.         <?php if (VISTA == 'index') { ?>
  10.             <link href="/styles/index.css" rel="stylesheet" type="text/css" />
  11.         <?php } ?>
  12.  
  13.     </head>
  14.     <body>
  15.         <?php include_once( 'vistas/'. VISTA . '.php'); ?>
  16.  
  17.         <script src="/js/scripts.js"></script>
  18.         <script type="text/javascript">
  19.           //codigo js
  20.         </script>
  21.  
  22.     </body>
  23. </html>

vistas/index.php
Código HTML:
Ver original
  1. <h1>
  2. <?php echo $foo;
  3. </h1>
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #22 (permalink)  
Antiguo 15/11/2012, 13:09
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

No he dicho para qué es todo esto, para preguntar las cosas asépticamente, pero ya que propones el MVC, te diré que es para maquetar Oscommerce a mi gusto.

Lo cierto es que no tengo experiencia con MVC. ¿Se puede aplicar a Oscommerce, que viene con 930 grid system?
  #23 (permalink)  
Antiguo 15/11/2012, 13:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Identificando sólo dominio

Realmente esto no es cuestión de nivel @JUMASOL, simplente viendo el manual y viendo que te extrae el path, puedes hacer la comparación con la raiz y hacer tu condicional, no es cuestión de buscar por internet y pegar códigos sin saber lo que hacen.

Si lo que esperas viniendo al foro es que la gente te de soluciones directas sin tú querer aprender pues creo vas a tener un mal momento, la idea es que encuentres las soluciones por ti mismo usando las herramientas que te podamos sugerir.

Te invito que a la siguiente trates de reflexionar un poco el problema y trates de encontrar un algoritmo que se ajuste a lo que necesitas y en base a eso te podemos apoyar

Saludos.
  #24 (permalink)  
Antiguo 15/11/2012, 13:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Identificando sólo dominio

Me metí en este lenguaje hace un par de meses y voy lento, en ratos libre.

Por otro lado, la solución que me diste funciona correctamente, pero ahora a entrado h2swider diciendo que no es la mejor forma de hacer las cosas.
  #25 (permalink)  
Antiguo 15/11/2012, 13:41
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Identificando sólo dominio

Cita:
Iniciado por JUMASOL Ver Mensaje
pero ahora a entrado h2swider diciendo que no es la mejor forma de hacer las cosas.
Se refiere a la forma en que usas el código que te dio GatorV. Es como usar un martillo como destornillador.
  #26 (permalink)  
Antiguo 16/11/2012, 06:48
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Identificando sólo dominio

Cita:
Iniciado por JUMASOL Ver Mensaje
Me metí en este lenguaje hace un par de meses y voy lento, en ratos libre.

Por otro lado, la solución que me diste funciona correctamente, pero ahora a entrado h2swider diciendo que no es la mejor forma de hacer las cosas.
MVC (Modelo vista controlador) sugiere separar el codigo puro de las "vistas" las paginas que tienen el html, no es mas que eso. El codigo que te expuse arriba es una manera muy muy simple de implementarlo
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: dominio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:13.