Título: Redirreción php Publicado por: egiptoelcairo en 31 Mayo 2012, 23:30 pm Hola tengo un codigo para redireccionar a mi web si el cliente procede de otra que realize una fuinción.
el texto que se encuentra en negrita cambia dependiendo del cliente y de la sesion como podria hacer para que sea cuals sea ese codigo en negrita ejecute la primera opcion de redirección. <?php if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $refer = strtolower( $_SERVER['HTTP_REFERER'] ); switch( $refer ) { case 'http://miweb.com/done?sessionid=35655944646764642&pgn_transaction_id=65a465f4a65s465se454f564&pag_status=complete': header( 'Location: http://miweb.com/prueba1.php/' ) ; } } else { header( 'Location: http://miweb.com/prueba2.php/' ) ; } ?> Título: Re: Redirreción php Publicado por: it3r en 31 Mayo 2012, 23:34 pm Esta función te ayudara
http://php.net/manual/es/function.strpos.php Saludos Título: Re: Redirreción php Publicado por: egiptoelcairo en 31 Mayo 2012, 23:37 pm Podrias especificarme un poco mas soy novato y no lo entiendo muy bien
Título: Re: Redirreción php Publicado por: WarGhost en 31 Mayo 2012, 23:42 pm Se puede hacer de varias formas, con la funciona que te dijo it3r seria:
Código: if(strpos($refer, "http://miweb.com/done?sessionid=")===true){ } Pero te tengo que decir que HTTP_REFERER, no es muy fiable. Título: Re: Redirreción php Publicado por: egiptoelcairo en 31 Mayo 2012, 23:50 pm Que quedaria el codigo asi porque no me funcina
Código: <?php if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $refer = strtolower( $_SERVER['HTTP_REFERER'] ); switch( $refer ) { if(strpos($refer, "http://miweb.com/done?sessionid=")===true){ } header( 'Location: http://miweb.com/prueba1.php' ) ; } } else { header( 'Location: http://miweb.com/prueba2.php' ) ; } ?> Título: Re: Redirreción php Publicado por: WarGhost en 31 Mayo 2012, 23:52 pm Código: <?php if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $refer = strtolower( $_SERVER['HTTP_REFERER'] ); if(strpos($refer, "http://miweb.com/done?sessionid=")===true){ header( 'Location: http://miweb.com/prueba1.php' ) ; } } else { header( 'Location: http://miweb.com/prueba2.php' ) ; } ?> Título: Re: Redirreción php Publicado por: egiptoelcairo en 31 Mayo 2012, 23:57 pm Tampoco me funciona
Título: Re: Redirreción php Publicado por: it3r en 1 Junio 2012, 00:04 am Código: <?php if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $refer = strtolower( $_SERVER['HTTP_REFERER'] ); if(strpos($refer, "http://miweb.com/done?sessionid=")===true){ header( 'Location: http://miweb.com/prueba1.php' ) ; } } else { header( 'Location: http://miweb.com/prueba2.php' ) ; } ?> strpos no devuelve true, devuelve la posición inicial donde se encontró el $refer o false si no se encontró por ende debería ser: Código: if(strpos($refer, "http://miweb.com/done?sessionid=")!==false) Saludos Título: Re: Redirreción php Publicado por: WarGhost en 1 Junio 2012, 00:05 am Sip ya me di cuenta, eso me pasa por no mirar antes xD.
Título: Re: Redirreción php Publicado por: egiptoelcairo en 1 Junio 2012, 00:09 am Muchas gracias a los 2 ya me funciono
Título: Re: Redirreción php Publicado por: egiptoelcairo en 1 Junio 2012, 01:50 am y por ejemplo si lo que quiero es si es direccionado desde esaweb que ejecute un scrip en vez de volver a redirrecionar como quedaria?
Título: Re: Redirreción php Publicado por: WarGhost en 1 Junio 2012, 12:55 pm Código: <?php if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $refer = strtolower( $_SERVER['HTTP_REFERER'] ); if(strpos($refer, "http://miweb.com/done?sessionid=")!==false){ // Aqui el script que tu quieras poner } } else { header( 'Location: http://miweb.com/prueba2.php' ) ; } ?> Título: Re: Redirreción php Publicado por: egiptoelcairo en 1 Junio 2012, 15:44 pm gracias por tu ayuda
Título: Re: Redirreción php Publicado por: [u]nsigned en 1 Junio 2012, 17:15 pm Código
Y para usar un script en lugar de redirigir: Código
Mas eficiente. En lugar de usar if's anidados, los combino con 'AND' (comparacion logica). Y en lugar de parsear al HTTP_REFERER a minusculas, y luego llamar a strpos, directamente llamo a stripos que no es case-sensitive ;). Acabo de probarlo y funciona. Y por ultimo, siempre luego de redireccionar con header, luego debemos llamar a la funcion exit() para evitar errores en la cabecera de la respuesta HTTP. Saludos |