PHP: IE8 alatt legyen egy átirányítás

PHP: IE8 alatt legyen egy átirányítás
2012-01-16T16:54:05+01:00
2012-01-16T20:11:59+01:00
2022-11-24T09:35:40+01:00
SpeedyGonzales
Sziasztok,


case 'send_to_friend': $ip = $_SERVER['REMOTE_ADDR']; $country = file_get_contents('http://api.hostip.info/country.php?ip='.$ip); $send_to = "Yes"; if($id){ $success = false; if($mhash_real == $mhash_provided && $send_id){ $newsletter_data = $newsletter->get_newsletter($db,$id); if($_REQUEST['email']){ $fields = array( 'email' => $_REQUEST['email'], 'first_name'=>$_REQUEST['first_name'], 'last_name'=>$_REQUEST['last_name'], 'group_id'=>$_REQUEST['group_id'], "send_to_friend"=>$send_to, "ip_address"=>$_SERVER['REMOTE_ADDR'], "by"=>$member_id, "country"=>$country, "flag"=>$country, ); $new_member_id = $newsletter->save_member($db,'new',$fields,true); if($new_member_id){ } } if($_REQUEST['email']){ $fields = array( 'email' => $_REQUEST['email'], 'first_name'=>$_REQUEST['first_name'], 'last_name'=>$_REQUEST['last_name'], 'group_id'=>$_REQUEST['group_id'], ); $new_member_id = $newsletter->save_member($db,'new',$fields,true); if($new_member_id){ $sql = "REPLACE INTO `"._DB_PREFIX."newsletter_member` SET send_id = '$send_id', member_id = '$new_member_id', status = 1"; $res = query($sql,$db); $res = $newsletter->send_out_newsletter($db,$send_id,$new_member_id,false,true); $success = true; } } $member_data = $newsletter->get_member($db,$member_id,true); include("layout/send_to_friend.php"); }else{ echo 'Please click the link in the email you were sent'; $member_data=array(); } }

include("layout/send_to_friend.php"); - nél kéne nekem egy olyan, hogy ha IE8 alattiak csekkolják akkor átdobja őket egy include("layout/send_to_friend2.php"); oldalra.

Megoldható, hogy ide, tehát a fentiekbe valahogy egy ilyet beszúrjunk:

<?php

$ua = $_SERVER['HTTP_USER_AGENT'];

if (strpos($ua,'MSIE') != false && strpos($ua,'Opera') === false)
{
if (strpos($ua,'Windows NT 5.2') != false)
{
if(strpos($ua,'.NET CLR') === false) return;
}
if (substr($ua,strpos($ua,'MSIE')+5,1) < 9.9)
{
header('Location: ..... ......');
}
}

?>

Köszi. Persze valahogy átalakítva. Csak amikor a fenti php sor lefut, akkor ott kéne egy átirányítós dolog, hogy másik oldalra érkezzen a csóka, hash-el meg mindenestül.
Mutasd a teljes hozzászólást!
Megoldható.

Nézd meg, hogy ie8 alatt mit ír ki pl. a $_SERVER['HTTP_USER_AGENT'];

Utána a programba tedd be, ha tartalmazza a megdelelő azonosító részet, akkor header('location: .....');
Mutasd a teljes hozzászólást!

  • Nem értem. $_SERVER['HTTP_USER_AGENT']; itt 'HTTP_USER_AGENT' - helyett írjam be a megfelelő user agent-et?

    Ott a php - ben az a rohadék ad egy ilyet: include("layout/send_to_friend.php"); szóval ide érkezik meg az ember hash-el meg mindennel. És akkor ez elé tegyem be?

    Mutasd a teljes hozzászólást!
  • echo $_SERVER['HTTP_USER_AGENT'];
    pl. ilyet ír ki:

    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)

    (ez egy ie9

    Megnézed, (tesztként) mi az egyedi az IE8-ban. (vagy rákeresel a google-ban)

    A programkódban megvizsgálod, hogy a $_SERVER['HTTP_USER_AGENT'] tartalmazza-e az ie8-ra jellemző egyedi részt (pl. strpos).

    Ha igen, akkor ie8 elküldöd ahova gondolod
    Ha nem, akkor ....

    ---

    az a rohadék ad egy ilyet: include("layout/send_to_friend.php");
    Az include az ebbe a kódba betölt egy másik kódot.

    Az átirányítást célszerű minden kimeneti kód elé betenni, tehát a kódba minél előréb.
    Azt neked kell eldönteni, hogy az átirányítás elött mit hajtson végre, az után kell tenni.

    Mutasd a teljes hozzászólást!
  • Ahah, aha asszem sikerült. Végül és átment az send_to_friend2.php - re hash-el meg mindennel.

    Köszi.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd