gpt4 book ai didi

PHP 表单不发布

转载 作者:行者123 更新时间:2023-11-29 01:16:21 24 4
gpt4 key购买 nike

此表单根本没有发布值,我无法弄清楚。我试过同时使用 PHP_SELF 和单独的页面操作,但没有任何效果。所有其他表格都有效 - 所以它不是服务器问题。我究竟做错了什么?谢谢。

 <form name=\"projects\" action=\"upload.php\" method=\"POST\">

<?php
echo "<tr>
<td valign = \"top\" bgcolor=\"$row_color\"> $title </td>
<td valign = \"top\" bgcolor=\"$row_color\"> $description </td>
<td valign = \"top\" bgcolor=\"$row_color\"> $academicdiscipline </td>
<td valign = \"top\" bgcolor=\"$row_color\"> ";

$allowed = $academicdiscipline;
switch ($allowed) {
case "Civil and Environmental":
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option value=\"1\"> 1 </option>
<option value=\"2\"> 2 </option>
<option value=\"3\"> 3 </option>
<option value=\"4\"> 4 </option>
<option value=\"5\"> 5 </option>
<option value=\"6\"> 6 </option>
<option value=\"7\"> 7 </option>
<option value=\"8\"> 8 </option>
<option value=\"9\"> 9 </option>
<option value=\"10\"> 10 </option>
</select> ";
break;
case "Electronics":
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option value=\"1\"> 1 </option>
<option value=\"2\"> 2 </option>
<option value=\"3\"> 3 </option>
<option value=\"4\"> 4 </option>
<option value=\"5\"> 5 </option>
</select>";
break;
case "Environment and Management":
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option value=\"1\"> 1 </option>
<option value=\"2\"> 2 </option>
<option value=\"3\"> 3 </option>
<option value=\"4\"> 4 </option>
<option value=\"5\"> 5 </option>
</select>";
break;
case "Mechanical and Materials":
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option value=\"1\"> 1 </option>
<option value=\"2\"> 2 </option>
<option value=\"3\"> 3 </option>
<option value=\"4\"> 4 </option>
<option value=\"5\"> 5 </option>
<option value=\"6\"> 6 </option>
<option value=\"7\"> 7 </option>
<option value=\"8\"> 8 </option>
<option value=\"9\"> 9 </option>
<option value=\"10\"> 10 </option>
<option value=\"11\"> 11 </option>
<option value=\"12\"> 12 </option>
<option value=\"13\"> 13 </option>
<option value=\"14\"> 14 </option>
<option value=\"15\"> 15 </option>
</select> ";
break;
default:
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option value=\"1\"> 1 </option>
<option value=\"2\"> 2 </option>
<option value=\"3\"> 3 </option>
<option value=\"4\"> 4 </option>
<option value=\"5\"> 5 </option>
</select> ";
break;
default:
echo "<select name=\"priority\" class=\"priority\">
<option> </option>
<option> 1 </option>
<option> 2 </option>
<option> 3 </option>
<option> 4 </option>
<option> 5 </option>
</select>"; }


echo "</td></tr>
<tr bgcolor=\"#ffffff\"> </tr>
<tr bgcolor=\"#902C2E\"> </tr>";

$row_count++; }

echo"<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td ><input name=\"reset\" type=\"reset\" value=\"Reset\"/>
<input name=\"submit\" type=\"submit\" value=\"Select\"/>
</tr></table>" ; ?>
</form>

upload.php 页面可以上传除优先级之外的所有其他条目,我无法从上面的代码中获得 POST。这是 upload.php 文件:

if(isset($_POST[submit]) && !empty($_POST[submit])) { 

$fullname = ''.$data[0]["sn"][0].', '.$data[0]["givenname"][0].'';
$givenname = ''.$data[0]["givenname"][0].'';
$priority = '$_POST[priority]';

$sql = "SELECT * FROM flux_student_records WHERE studentname = '$fullname' ";
$retval = mysql_query($sql) or die(mysql_error());

if (!$retval) {
die('Could not retrieve data: There are no project proposals yet. <br /><br /> ' . mysql_error()); }

while ($row = mysql_fetch_array($retval)) {
extract($row); }

$sql = "INSERT INTO flux_project_selection( id, studentname, title, academicdiscipline, priority)
SELECT flux_student_records.id, flux_student_records.studentname, project_proposals.title, project_proposals.academicdiscipline, '$priority'
FROM project_proposals
JOIN flux_student_records ON project_proposals.academicdiscipline = flux_student_records.academicdiscipline
WHERE flux_student_records.studentname = '$studentname'
AND 'priority' IS NOT NULL
LIMIT 5";

$retval = mysql_query($sql) or die('Error: MySQL query failed. Project has not been added to the database. ');

echo "<p> Your project selection have been added to the system. <br> You'll be redirected to list of projects in the system. </p><br />";
//echo "<meta http-equiv=Refresh content=2;url=index.php>";


}

最佳答案

据我所知,根据您在问题中发布的代码,您使用的不是 PHP

<form name=\"projects\" action=\"upload.php\" method=\"POST\">

所以去掉斜线\来自所有这些。

然后是这些:

if(isset($_POST[submit]) && !empty($_POST[submit])) { 

$priority = '$_POST[priority]';

您需要添加和删除引号:

if(isset($_POST['submit']) && !empty($_POST['submit'])) { 

$priority = $_POST['priority'];

还有,你所有的<option>没有为它们设置值,因此您可能想对此做些事情。

即:<option value=\"1\"> 1 </option>

等等

另外,使用 mysql_ 删除功能。它们已被弃用,并将从 future 的 PHP 版本中删除。

使用 mysqli with prepared statements , 或 PDO with prepared statements . 它们更安全。


I have tried using both PHP_SELF...

您可以使用 action=""如果不在 PHP 中,它与 self 的作用相同。或者,action=\"\"如果在 PHP 中,或 action=''取决于你如何回应它。

添加error reporting到您的文件的顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告只应在试运行中进行,绝不能在生产中进行。


编辑:

我在您的查询中注意到的另一件事:

$sql = "INSERT INTO flux_project_selection( id, studentname, title, academicdiscipline, priority)
SELECT flux_student_records.id, flux_student_records.studentname, project_proposals.title, project_proposals.academicdiscipline, '$priority'
FROM project_proposals
JOIN flux_student_records ON project_proposals.academicdiscipline = flux_student_records.academicdiscipline
WHERE flux_student_records.studentname = '$studentname'
AND 'priority' IS NOT NULL
LIMIT 5";

尝试从 '$priority' 中删除引号来自 AND 'priority'因为那看起来是一列。

如果$priority包含 MySQL 可能会提示的任何字符,然后将其包装在刻度而不是引号中,并使用 mysql_real_escape_string() 转义变量.

即:

project_proposals.academicdiscipline, `$priority`
FROM project_proposals

...

AND `priority` IS NOT NULL

这对你也没有帮助

$retval = mysql_query($sql) or die('Error: MySQL query failed. Project has not been added to the database. '); 

使用or die(mysql_error());而不是 or die('Error: MySQL query failed. Project has not been added to the database. ');

关于PHP 表单不发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541527/

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