Foros del Web » Programando para Internet » PHP »

URL Amigable Problemas

Estas en el tema de URL Amigable Problemas en el foro de PHP en Foros del Web. Hola, estoy empezando en este mundo de las urls amigables y me he topado con un pequeño inconveniente y el cual me esta resultando un ...
  #1 (permalink)  
Antiguo 08/10/2010, 10:12
hhc
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
URL Amigable Problemas

Hola, estoy empezando en este mundo de las urls amigables y me he topado con un pequeño inconveniente y el cual me esta resultando un problema y es el siguiente:

en mi .htaccess tengo el siguiente codigo:
Código:
RewriteEngine On # Turn on the rewriting engine RewriteRule 
RewriteRule ^([^/]*)/$ index.php?pagina=$1 [L]
el cual hace que mi url sea de este tipo
Código:
http://www.misitio.com/mipagina/
y en el index.php mando llamar una funcion que contiene lo siguiente:
Código:
function showPages() {
		if(isset($_GET['pagina'])) {
			$page = $_GET['pagina'];
		} else {
			$page = "home";
		}
		switch($page) {
			case "home":
				include('home.php');
				break;
			case "quienes":
				include('quienessomos.php');
				break;
			case "registrate":
				include('registrate.php');
				break;
			case "promociones":
				include('promociones.php');
				break;
			case "publicidad":
				include('publicidad.php');
				break;
			case "foro":
				include('foro.php');
				break;
			case "contactanos":
				include('contactanos.php');
				break;
			case "ayuda":
				include('ayuda.php');
				break;
			case "asociados":
				include('asociados.php');
				break;
			case "sobre":
				include('sobreelasfalto.php');
				break;
			case "indexvideos":
				include('videosindex.php');
				break;
			}
	}
Mi problema es que en la pagina de registrate.php tengo otra funcion que es practicamente lo mismo, que es mandar a llamar a la siguiente funcion:
Código:
function showPagesRegister() {
		if(isset($_GET['grupo'])) {
			$pageReg = $_GET['grupo'];
		} else {
			$pageReg = "selectGroup";
		}
		switch($pageReg) {
			case "selectGroup":
				include('selectregis.php');
				break;
			case "usuario":
				include('registuser.php');
				break;
			case "agencia":
				include('registdealer.php');
				break;
			}
	}
En esta pagina de registrate.php pues se manda llamar otra pagina que por default es selectregis.php y dentro de esta pagina hay dos links que tipo ?grupo=usuarios, que supuestamente cuando le das click al link en la pagina de registrate.php deberia de aparecer la seleccionada pero no me aparece no se que podria estar haciendo mal, deberia de quedar algo asi:
Código:
http://www.misitio.com/registrate/?grupo=usuario
y que me mostrara el formulario de registro para usuarios

Lo que quiero hacer es algo tipo como esta pagina:
[URL="http://www.autoconnect.com.mx/registration/"]Autoconnect.com.mx[/URL] que en su registro le salen las dos opciones y dependiendo de la opcion que escoja le sale el formulario de registro y su url es asi:
Código:
http://www.sitio.com/registration/?user_group_id=PrivateSeller
Espero haberme explicado y que alguien me ayude, de ante mano muchas gracias
  #2 (permalink)  
Antiguo 08/10/2010, 10:20
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 7 meses
Puntos: 34
Respuesta: URL Amigable Problemas

Man, una consulta, que quizás es algo que no entiendo. Si igualmente tienes un archivo para cada "case" no sería más fácil que armes tu sitio así...

sitio.com/quienessomos/

sitio.com/registrate/

sitio.com/publicidad/

sitio.com/ayuda/

Etc.


Prueba que pasa si en lugar de así

Código:
http://www.misitio.com/registrate/?grupo=usuario
Lo armas así al link

Código:
http://www.misitio.com/registrate.php?grupo=usuario
__________________
elGastronomo
  #3 (permalink)  
Antiguo 08/10/2010, 10:32
hhc
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URL Amigable Problemas

asi lo tengo
sitio.com/quienessomos/
sitio.com/registrate/
sitio.com/publicidad/
sitio.com/ayuda/
etc.

nada mas que en la pagina de registrate.php que es el sitio.com/registrate/ por el .htaccess mando llamar otro php dependiendo del get...

por defecto o default la pagina que te pondra en registrate.php es selectregis.php el cual trae las otras dos opciones las cuales son registuser.php y registdealer.php, cuando tu le das click a una de esas dos opciones te debe de quitar la pagina selectregis.php en registrate.php y poner ya sea la de registuser.php o registdealers.php dependiendo de la opcion que seleccionaste y esto lo deberia de tomar por medio del elemnto GET pero mi problema es que no lo agarra y no se porque...
  #4 (permalink)  
Antiguo 08/10/2010, 10:37
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: URL Amigable Problemas

Mas alla de que no tenga mucho que ver con la URL, y para evitar otro tema te comento lo siguiente:

esta forma de llamar páginas
if(isset($_GET['pagina'])) {
$page = $_GET['pagina'];
} else {
$page = "home";
}

es muy pasible a ataques de spam... a parte de proporcionarte problemas a la hora de hacer las llamadas de URL amigables.

Imaginate que algun robot (cosa que te pasará) inserte un codigo tipo

Cita:
http://www.misitio.com/registrate/?grupo=main784`code?78=id3214A1f22..
a tí no te afectaría de manera directa, pero podria ser un spam de envio masivo que a travez de tu URL que la dejas abierta para la recepcion de una variable que va a ser incrustada en una página, afectando tu IP o la IP de tu cliente, o la IP de tu proveedor, lo cual tarde o temprano bloquerá tu server, o te traerá una sanción... estos includes via GET son bastante vulnerables a todo tipo de ataques, por ello, es preferible usar estructuras de armado mas convencionales, y para tal efecto existen herramientas que ayudan a ser efectivo ese trabajo, como el DRIM GUIVER con sus DWT, o templates de Dream Weaver el cual genera páginas similares, interconectadas entre si, de tal manera que cuando actualices el temp, tambien actualiza las demas páginas creadas a partir de ese temp...

Es mi humilde consejo
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 08/10/2010, 10:50
hhc
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URL Amigable Problemas

Cita:
Iniciado por loncho_rojas Ver Mensaje
Mas alla de que no tenga mucho que ver con la URL, y para evitar otro tema te comento lo siguiente:

esta forma de llamar páginas
if(isset($_GET['pagina'])) {
$page = $_GET['pagina'];
} else {
$page = "home";
}

es muy pasible a ataques de spam... a parte de proporcionarte problemas a la hora de hacer las llamadas de URL amigables.

Imaginate que algun robot (cosa que te pasará) inserte un codigo tipo



a tí no te afectaría de manera directa, pero podria ser un spam de envio masivo que a travez de tu URL que la dejas abierta para la recepcion de una variable que va a ser incrustada en una página, afectando tu IP o la IP de tu cliente, o la IP de tu proveedor, lo cual tarde o temprano bloquerá tu server, o te traerá una sanción... estos includes via GET son bastante vulnerables a todo tipo de ataques, por ello, es preferible usar estructuras de armado mas convencionales, y para tal efecto existen herramientas que ayudan a ser efectivo ese trabajo, como el DRIM GUIVER con sus DWT, o templates de Dream Weaver el cual genera páginas similares, interconectadas entre si, de tal manera que cuando actualices el temp, tambien actualiza las demas páginas creadas a partir de ese temp...

Es mi humilde consejo
de que manera podria hacerlo entonces, no se si viste el link a la pagina que tiene un sistema similar a lo que quiero hacer... toda comentario o sugerencia son bienvenidos, yo apenas estoy empezando meterme a este maravilloso mundo del PHP... jejej

Dejo tambien el diagrama de como esta mas o menos el comportamiento de las paginas
  #6 (permalink)  
Antiguo 08/10/2010, 10:52
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 7 meses
Puntos: 34
Respuesta: URL Amigable Problemas

Pero entonces saca el Mod Rewrite. No hagas links del estilo

index.php?pagina=ayuda

Simplemente linkeas con sitio.com/ayuda/index.php o sitio.com/ayuda/ y listo

Y para el registro linkeas así sitio.com/registrate/index.php?grupo=usuario
__________________
elGastronomo
  #7 (permalink)  
Antiguo 08/10/2010, 11:04
hhc
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URL Amigable Problemas

Cita:
Iniciado por American2010 Ver Mensaje
Pero entonces saca el Mod Rewrite. No hagas links del estilo

index.php?pagina=ayuda

Simplemente linkeas con sitio.com/ayuda/index.php o sitio.com/ayuda/ y listo

Y para el registro linkeas así sitio.com/registrate/index.php?grupo=usuario
los links principales que estan en index.php para las demas secciones son simples, nada mas puse:

home/ == home.php
quienessomos/ == quienessomos.php
registrate/ == registrate.php

Código:
<a href="home/">Inicio</a>
<a href="quienessomos/">Quienes Somos</a>
<a href="registrate/">Registrate</a>
los links originales son algo asi:
misitio.com/index.php?pagina=registrate que con el .htaccess los convierte o lo interpreta a asi misitio.com/registrate/

y en la pagina de selectregis.php los links estan asi
Código:
<a href="?grupo=usuario">Usuario</a>
<a href="?grupo=agencia">Agencias</a>
Entonces a este ultimo le tengo que poner: index.php?grupo=usuarios ?
  #8 (permalink)  
Antiguo 08/10/2010, 11:50
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 7 meses
Puntos: 34
Respuesta: URL Amigable Problemas

Pero en mi forma de entender esto de los Links amigables, no tiene sentido manipularlos como tu dices si finalmente cada link sea cual sea, desencadena en una página físicamente existente en el servidor.

Creo que tendría sentido en el caso de caer todas en una misa y que segun el formato se muestre una u otra información.

Por ejemplo en un sitio que hice tengo algo así.

dominio.com/america
dominio.com/asia
dominio.com/europa
dominio.com/oceania

en index.php leo que información hay en la URL y los mando a "continente.php" en el cual muestro el continente que corresponda.

Luego el sitio sigue así.

dominio.com/america/chile
dominio.com/america/argentina
dominio.com/america/mexico

Entonces en ese caso el index.php me reconoce que además de un continente hay un segundo dato, que se trata de un pais y los redirecciono a pais.php y muestro los datos del pais en sí.

¿Se entiende? Ojo, quizás yo haya hecho algo mal o los casos sean totalmente distintos, pero en mi entender es en casos como el mío que sirve meterse con el mod rewrite ya que estamos hablando de enlaces que "físicamente" no existen.
__________________
elGastronomo
  #9 (permalink)  
Antiguo 08/10/2010, 12:10
hhc
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URL Amigable Problemas

pues es que la que contiene toda la estructura es el index.php las demas nada mas son como este tipo
Código HTML:
<table width="522" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="522" valign="top">
          	<div id="selectRegistro" style="text-align:center;">
            	<table width="500" border="0" cellspacing="0" cellpadding="0">
  					<tr>
					    <td width="246">
					    	<div style="width:246px; height:138px; text-align:center; padding-top:12px;">
                            	<a href="?grupo=usuario"><img src="<?=_path?>images/useregist.png" border="0" alt="Usuario" /></a>
                               <!-- <a href="grupo/usuario/"><img src="<?=_path?>images/useregist.png" border="0" alt="Usuario" /></a>-->
                            </div>
					    </td>
					    <td width="8">&nbsp;</td>
					    <td width="246">
					    	<div style="width:246px; height:138px; text-align:center; padding-top:12px;">
                            	<a href="?grupo=agencia"><img src="<?=_path?>images/dealeregist.png" border="0" alt="Agencia" /></a>
                            </div>
					    </td>
				    </tr>
				</table>
            </div>
            <div class="beneUsersDealers" style="text-align:center;">
            	<table width="500" border="0" cellspacing="0" cellpadding="0">
  					<tr>
					    <td width="246" valign="top">
					    	<div style="background:url(<?=_path?>images/bg_ben_regist.png) no-repeat; width:246px; height:180px;">
                            	<div class="regiTitulo">Beneficios Particulares</div>
                                 <div style="text-align:justify; font-size:10px; color:#FFF; width:200px; margin:auto; font-family:Verdana; padding-left:10px;">
                                	<ul>
                                    	<li>Incluye excelente servicio y atenci&oacute;n a sus necesidades, por 3 d&iacute;as!</li>
                                        <li>Su anuncio lleva su informaci&oacute;n de contacto</li>
                                        <li>Pueden subir hasta 7 fotos y un video</li>
                                    </ul>
                                </div>
                            </div>
					    </td>
					    <td width="8">&nbsp;</td>
					    <td width="246" valign="top">
					    	<div style="background:url(<?=_path?>images/bg_ben_regist_2.png) no-repeat; width:246px; height:342px;">
                            	<div class="regiTitulo">Beneficios Agencias</div>
                                <div style="text-align:justify; font-size:10px; color:#FFF; width:200px; margin:auto; font-family:Verdana; padding-left:10px;">
                                	<ul>
                                    	<li>Todos nuestros paquetes cuentan con enormes descuentos, puedes anunciar tu agencia desde $599 pesos al mes.</li>
                                        <li>Cada paquete incluye excelente servicio y atenci&oacute;n a sus necesidades, sin l&iacute;mites!</li>
                                        <li>Todos sus anuncios llevan su logotipo junto con su informaci&oacute;n de contacto</li>
                                        <li>Las agencias pueden subir hasta 12 fotos y un video a cada uno de sus anuncios.</li>
                                        <li>Ser&aacute;s atendido por un asesor cada 7 d&iacute;as para actualizar sus veh&iacute;culos y subir su nuevo inventario sin ning&uacute;n costo extra.</li>
                                    </ul>
                                </div>
                            </div>
					    </td>
				    </tr>
				</table>
          	</div>
          </td>
        </tr>
</table> 

Última edición por hhc; 08/10/2010 a las 12:18

Etiquetas: url, amigables
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 22:08.