如何在Classic ASP中重写以下PHP代码?
<head></head>
<body>
<h1>Test</h1>
<section><?php echo include('content/'.$_GET['p'].'.php') ?></section></body>
如果网址为http://foo.bar.com/admin.php?p=pages,则会显示 content / pages.php 。
答案 0 :(得分:2)
您不能使用INCLUDE执行此操作,但您可以使用Server.Transfer,例如。
Server.Transfer "content/" & Request.Form("p") & ".asp"
答案 1 :(得分:0)
你可以使用这样的东西
<!--#include file="somefile.asp"-->
在HTML文件中。
答案 2 :(得分:0)
永远不要相信来自客户端(浏览器)的内容,因为他们可能会试图入侵您。
由于“shdyhio3hlkehio.asp”或类似文件不太可能是正确的文件,因此您应该将选项限制为您的实际选择,并且还有一个“捕获所有其他请求”的默认文件。
将其与服务器端包含相结合,您的设置就已准备就绪。
您还应该检查用户是否实际请求了一个页面——如果“p”为空,则显示默认消息。
请注意在“LCase
”行中使用 Select Case
并在 Case
行中使用小写值。
这是因为字符串比较是区分大小写的,意思是“about”(小写“a”)和“About”(大写“A”)不一样。
埃克森普:
<% If Request.QueryString("p") = "" Then %>
no specific page was request, show a default message
<% Else %>
<% Select Case LCase(Request.QueryString("p")) %>
<% Case "content" %><!-- #include file="content.asp" -->
<% Case "about" %><!-- #include file="about.asp" -->
<% Case "contact" %><!-- #include file="contact.asp" -->
<% Case Else %><!-- #include file="404.asp" -->
<% End Select %>
<% End If %>