How to redirect with header location in php when using ob_start?

后端 未结 4 961
北恋
北恋 2021-01-23 06:17

Hello \" if ($condition) { header( \"Location: http://www.google.com/\" ); exit; } echo \" World!

<
4条回答
  •  情歌与酒
    2021-01-23 06:49

    If I were you, I would have started what might go wrong first then do the processing.

    An example

    $exit_condition_1 = some_value1;
    $exit_condition_2 = some_value2;
    
    if($exit_condition_1 == false){
    
         //Redirect
         //Exit
    
    }
    
    if(!$exit_condition_2){
    
         //Redirect
         //Exit
    
    }
    
    
    //start the buffer ob_start()
    
    //show some HTML
    
    //flash the buffer ob_end_clean()
    
    there is no point of starting the buffer then if something goes wrong close it and redirect. Just do value testing at the begining then process the request.
    
    An example: lets say that you want to view a product's info and you have a function that will do that
    
    
    function view_product($product_id){
    
       if(!$product = getProductById($product_id)){
    
            //product does not exist, redirect
       }
    
    
       if(the user does not have enough access rights){
    
         //show a message maybe 
         //redirect
       }
    
    
       //everything is alright then show the product info
    
    }
    

提交回复
热议问题