PHP Header用于页面跳转要注意的几个问题总结

  1. 在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题 
  2. 1、location和“:”号间不能有空格,否则会出错。 
  3. 2、在用header前不能有任何的输出。 
  4. 3、header后的PHP代码还会被执行。 
  5. 下面是和asp中重定向response.redirect的比较: 
  6. 例1: 
  7. response.redirect "../test.asp" 
  8. header("location:../test.php"); 
  9. 两者区别: 
  10. asp的redirect函数可以在向客户发送头文件后起作用. 
  11. 如 
  12.  
  13. <%response.redirect "../test.asp"%> 
  14.  
  15. 查是php中下例代码会报错: 
  16.  
  17. header("location:../test.php"); 
  18. ?> 
  19.  
  20. 只能这样: 
  21. header("location:../test.php"); 
  22. ?> 
  23. ... 
  24. 即header函数之前不能向客户发送任何数据. 
  25. 例2: 
  26. asp中 
  27.  
  28. <% 
  29. response.redirect "../a.asp" 
  30. response.redirect "../b.asp" 
  31. %> 
  32.  
  33. 结果是重定向a.asp文件. 
  34. php呢? 
  35. header("location:../a.php"); 
  36. header("location:../b.php"); 
  37. ?> 
  38.  
  39. 我们发现它重定向b.php. 
  40. 原来在asp中执行redirect后不会再执行后面的代码. 
  41. 而php在执行header后,继续执行下面的代码. 
  42. 在这方面上php中的header重定向不如asp中的重定向.有时我们要重定向后,不能执行后面的代码: 
  43. 一般地我们用 
  44. if(...) 
  45. header("..."); 
  46. else 
  47. ... 
  48. 但是我们可以简单的用下面的方法: 
  49. if(...) 
  50. { header("...");exit();} 
  51. 还要注意的是,如果是用Unicode(UTF-8)编码时也会出现问题,需要调整缓存设置. 
  52. <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 
  53. <%if Request.ServerVariables("SERVER_NAME")="s.jb51.net" then 
  54. response.redirect "news/index.htm" 
  55. else%> 
  56. <%end if%> 
  57.  

你可能感兴趣的:(PHP)