将帧/ iframe更改为仅一页#aspclassic

时间:2012-11-18 21:10:06

标签: asp-classic

如何在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

3 个答案:

答案 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 %>