Redirreción php

Iniciado por egiptoelcairo, 31 Mayo 2012, 23:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

egiptoelcairo

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/'; ) ;       
}
?> 

it3r


egiptoelcairo

Podrias especificarme un poco mas soy novato y no lo entiendo muy bien

WarGhost

#3
Se puede hacer de varias formas, con la funciona que te dijo it3r seria:

if(strpos($refer, "http://miweb.com/done?sessionid=")===true){

}


Pero te tengo que decir que HTTP_REFERER, no es muy fiable.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

egiptoelcairo

Que quedaria el codigo asi porque no me funcina

<?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' ) ;        
}
?>
 

WarGhost

<?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' ) ;        
}
?>
 
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

egiptoelcairo


it3r

Cita de: WarGhost en 31 Mayo 2012, 23:52 PM
<?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:


if(strpos($refer, "http://miweb.com/done?sessionid=")!==false)

Saludos

WarGhost

Sip ya me di cuenta, eso me pasa por no mirar antes xD.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

egiptoelcairo

Muchas gracias a los 2 ya me funciono