1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Problem redirecting to mobile device.

Discussion in 'PHP & Perl' started by bigmath, May 12, 2014.

  1. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    Hi guys!

    I have my code install on my header.php file but I receive message on mobile device : Warning : Cannot modify header information - headers already sent by (output started at / home2/..../public_html/..../index.php:1) in /home2/..../public_html/..../header.php on line 13

    <?php
    //$base_url = "...";
    $base_url = "...";
    //$base_url = "...";

    define("CONTACT_EMAIL", ........');
    define("CONTACT_NAME", '........');

    require_once('function.php');
    $useragent=$_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt|kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    header('Location: '. $base_url. 'mobi/index.php');

    Can someone help me please?

    Thanks!
     
  2. mrsubs

    mrsubs Newbie

    Joined:
    Mar 15, 2014
    Messages:
    48
    Likes Received:
    17
    Occupation:
    University Student
    Location:
    Ifrane, Morocco
    Right after <?php add the following ob_start();
    the ob_start() function will buffer the output of the page including headers, so when you will send them again, you won't have any problem.
     
    • Thanks Thanks x 1
  3. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    Still have the same problem also with ob_start(); Here is how I put the code :

    <?php
    ob_start();

    //$base_url = "...";
    $base_url = "...";
    //$base_url = "...";

    define("CONTACT_EMAIL", ........');
    define("CONTACT_NAME", '........');

    require_once('function.php');
    $useragent=$_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iem obile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\. (browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar (ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|b umb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a |jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt|kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t (\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran |owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(4 0|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98 )|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    header('Location: '. $base_url. 'mobi/index.php');
     
  4. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    <?php ob_start();

    Like this also.
     
  5. bartosimpsonio

    bartosimpsonio Jr. VIP Jr. VIP Premium Member

    Joined:
    Mar 21, 2013
    Messages:
    8,953
    Likes Received:
    7,573
    Occupation:
    ZLinky2Buy SEO Services
    Location:
    ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩
    Home Page:
    There is whitespace before or after your <?php or after ?> tags. PHP begins output at that whitespace, so when you send headers from your script, the headers are no longer useful.

    What sets HTTP headers apart from the actual content is just a blank line. If you send a blank line anywhere, then any header after that becomes content. That's what that message is telling you. Find where there's whitespace and fix it. HTH.
     
    • Thanks Thanks x 1
  6. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    I just check and I have absolutly no whitespace before and after my <?php ... ?>
     
  7. mrsubs

    mrsubs Newbie

    Joined:
    Mar 15, 2014
    Messages:
    48
    Likes Received:
    17
    Occupation:
    University Student
    Location:
    Ifrane, Morocco
    can you include the ob_start() in functions.php and index.php also?
     
    • Thanks Thanks x 1
  8. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    No still not working!
     
  9. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    Hi guys!

    Thanks for your help! I use a script on my .htaccess file. Better and it's working now.

    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|#opera mobile|palmos|webos" [NC]
    RewriteRule ^$ domain [L,R=302]
     
  10. WebsiteLiving

    WebsiteLiving Registered Member

    Joined:
    Feb 5, 2014
    Messages:
    99
    Likes Received:
    18
    Home Page:
    I suspect you include this file into another file which has already sent out headers?
     
  11. bigmath

    bigmath Newbie

    Joined:
    May 5, 2014
    Messages:
    9
    Likes Received:
    0
    I really don't know. Just try to understand why it's not working. I still newbie on php and I like to know why everything I do not working.

    For the script, I was just working on the header.php
     
  12. Rosales

    Rosales Newbie

    Joined:
    May 12, 2014
    Messages:
    14
    Likes Received:
    3
    On PHP you can not modify headers after any data is sent; it is logical if you know PHP and HTTP. You have to use `ob_start` function to delay data output in your PHP file to change headers.
     
    • Thanks Thanks x 1
  13. Macthetrix

    Macthetrix Regular Member

    Joined:
    Feb 21, 2013
    Messages:
    379
    Likes Received:
    390
    Occupation:
    The Boss
    Location:
    Silicon Valley
    define("CONTACT_EMAIL", ........');
    You are missing the ' here
     
    • Thanks Thanks x 1
  14. bpcl2

    bpcl2 Newbie

    Joined:
    Feb 7, 2013
    Messages:
    19
    Likes Received:
    1
    This usually mean you print out some stuff on the page before executing the redirect.
     
    • Thanks Thanks x 1