0

如何在 Classic ASP 中重写以下 PHP 代码?

<head></head>
<body>
<h1>Test</h1>
<section><?php echo include('content/'.$_GET['p'].'.php') ?></section></body>

如果 url 是http://foo.bar.com/admin.php?p=pages,则显示content/pages.php

4

3 回答 3

2

您不能使用 INCLUDE 执行此操作,但您可以使用 Server.Transfer 代替,例如。

Server.Transfer "content/" & Request.Form("p") & ".asp"
于 2012-11-19T06:11:22.723 回答
0

你可以使用这样的东西

 <!--#include file="somefile.asp"-->

在您的 HTML 文件中。

于 2012-11-18T21:23:47.227 回答
0

永远不要相信来自客户端(浏览器)的东西,因为他们可能会试图破解你。

由于“shdyhio3hlkehio.asp”或类似文件不太可能是正确的文件,因此您应该将选项限制为您的实际选择,并且还有一个默认文件,即“捕获所有其他请求”。

将它与 Server Side Includes 结合起来,您就可以准备好设置了。

您还应该检查用户是否确实请求了页面——如果“p”为空,则显示默认消息。

注意LCaseSelect 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 %>
于 2020-12-31T11:51:33.683 回答