gpt4 book ai didi

php - 完全相同的 html,为什么它的行为不同?

转载 作者:太空宇宙 更新时间:2023-11-04 14:06:27 25 4
gpt4 key购买 nike

我有一个问题,我真的不知道如何解决。我有同一个项目的 2 个不同页面。它允许用户创建一个表单并将其提交到不同的网页。并且有 2 个版本,一个只要求字段类型、名称和值,另一个允许用户手动输入完整表单。

因此,正如我的问题所述,在第一种情况下它运行良好,在第二种情况下它返回同一页面,这让我发疯!我会把代码放在最后,但现在是重现错误的步骤。到目前为止,这是一个免费托管的页面,因为我将其用于测试目的:

  1. 转到 http://saveyourself.vacau.com/form/
  2. 将其放入字段中(这实际上是该页面的测试帐户):

    • 页码:http://newfutureuniversity.org/
    • 方法:“发布”
    • 名称 1:“用户”
    • 值 1:“用户”
    • 类型 1:“文本”
    • 名称 2:“通过”
    • 值 2:“密码”
    • 类型 3:“密码”
    • 名称 3:“登录”
    • 值 3:“1”
    • 类型 3:“隐藏”。
  3. 点击“显示表单”,将显示表单

  4. 现在查看页面源代码,从“<form...>”复制到“</form>
  5. 转到此页面 http://saveyourself.vacau.com/form/manual/并将其粘贴到那里。
  6. 按“显示表单”,您应该会到达与第 3 步后完全相同的页面(检查 html,100% 相同,唯一的变化是地址/manual/)。

现在,技巧来了。尽管这两个页面具有完全相同的 html,如果您在第 3 步之后按下“发送表单”按钮,您将登录到新页面,但是如果您在第 6 步之后按下“发送表单”按钮(在/form/manual/),该页面将被刷新,您粘贴的表单将被删除。这怎么可能?据我所知,这里不涉及 PHP,因为当显示表单时,它只是普通的 html,新页面应该处理整个 PHP。所以,如果它收到相同的表格,它应该以相同的方式回答,对吧?在第二页中,它没有使用“$_SERVER['HTTP_REFERER'];” (访客来自哪里),也没有类似的东西。此外,还有 0 个 javascript。我现在发布 html 以防它有帮助,还有一些 PHP(不要放太多代码)。

所以问题是,有人知道为什么第二种形式不起作用吗?

非常感谢。

HTML 代码(在第 3 步或第 6 步之后的两个页面中相同):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Send form</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
</head>
<body style="background: #DDFFFF; width: 80%; height:100%; margin: 0 10% 0 10%; text-align: center;">
<h1>Send form</h1>

<form action="http://newfutureuniversity.org/" method="POST">
Web page: http://newfutureuniversity.org/<br>
Method: POST<br><br>
<table style="margin-left: auto; margin-right: auto;">
<tr>
<td style="text-align: right;">
User:</td><td><input type='text' name='User' value=''></td>
</tr>
<tr>
<td style="text-align: right;">
Pass:</td><td><input type='password' name='Pass' value=''></td>
</tr>
<tr>
<td style="text-align: right;">
Login:</td><td><input type='text' name='Login' value='1'></td>
</tr>
</table><br>
<input type="submit" value="Send form">
</form>
</body>
</html>

页面工作中的简化 PHP 代码 (http://saveyourself.vacau.com/form/):

//Header, body and others go before of this
<?php
if ($_POST['sent']==1&&empty($_POST['source'])) //If form is submited
{
$i = 1;
?>
<form action="<?php echo $_POST['page']; ?>" method="<?php echo $_POST['method']; ?>">
Web page: <?php echo $_POST['page']; ?><br>
Method: <?php echo $_POST['method']; ?><br><br>
<table style="margin-left: auto; margin-right: auto;">
<?php
while (!empty($_POST['nam'.$i]))
{ ?>
<tr>
<td style="text-align: right;">
<?php echo $_POST['nam'.$i].":</td><td><input type='".$_POST['typ'.$i]."' name='".$_POST['nam'.$i]."' value='".$_POST['val'.$i]; ?>'></td>
</tr>
<?php
$i++;
}
?>
</table><br>
<input type="submit" value="Send form">
</form>
<?php
}


elseif (!empty($_POST['source'])) //If user just wants to create a form and see the code
{
//I think this bit is irrelevant codereview, so I skipped it.
}


else //Body of the first page shown
{ ?>
<form method="post">
Web page: <input type="text" name="page">
Method to send: <select name="method"><option value="POST">Post</option><option value="GET">Get</option></select><br>

<table style="border: 1px solid #AAA; margin-left: auto; margin-right: auto;">
<tr>
<td>Number</td>
<td>Name</td>
<td>Value</td>
<td>Type</td>
</tr>
<?php for ($i = 1; $i <= 10; $i++)
{ ?>
<tr>
<td><?php echo $i; ?></td>
<td><input type="text" name="nam<?php echo $i; ?>"></td>
<td><input type="text" name="val<?php echo $i; ?>"></td>
<td>
<select name="typ<?php echo $i; ?>">
<option value="text">Text</option>
<option value="password">Password</option>
<option value="radio">Radio</option>
<option value="checkbox">Checkbox</option>
<option value="hidden">Hidden</option>
<option value="reset">Reset</option>
<option value="submit">Submit</option>
</select>
</td>
</tr>
<?php } ?>
</table><br>

Don't worry, a submit button is automatically added.<br>
<input type="hidden" name="sent" value="1">
<input type="submit" value="Show form">
<input type="submit" name="source" value="Form code">
</form><?php } ?>
</body>
</html>

页面中的完整 PHP 代码无法正常工作 (http://saveyourself.vacau.com/form/manual/):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Send form</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
</head>
<body style="background: #DDFFFF; width: 80%; height:100%; margin: 0 10% 0 10%; text-align: center;">
<h1>Send form</h1>

<?php
if ($_POST['sentbrr']==1) //If form is submited
echo stripslashes($_POST['code']);

else //First time
{ ?>
<form method="post">
Enter the code for the form manually<br>
<textarea name="code" style="width: 100%; min-height: 450px;"></textarea><br>
<input type="hidden" name="sentbrr" value="1">
<input type="submit" value="Show form">
</form>
<?php
} ?>

</body>
</html>

最佳答案

如果您查看第二个(不工作的)页面,您会:

<form method="post">

没有附加 action="" 属性。因此您的表单不知道将表单提交到哪里。

关于php - 完全相同的 html,为什么它的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9367064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com