0

所以我基本上复制了以下代码,执行重命名列名。

表格如下:

<table align="left" width="30%" border="0" >
<form action="company_edit_php.php" method="post">
<tr><td align="center" bgcolor="#ECE6E6">Location: <td align="center"> <input type="text" value="<?php echo $row['Location']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">User: <td align="center">  <input type="text" value="<?php  echo $row['User']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">Telephone: <td align="center">  <input type="text" value="<?php echo $row['Telephone']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">Email: <td align="center">  <input type="text" value="<?php echo $row['Email']?>"/><br></td></tr>
<td> <input type="submit" value="Change" /></td></tr>

和PHP代码:

<?php
$con = mysql_connect("localhost","username","password");
$id = isset($_GET['id']) ? (int)$_GET['id']: 1;
mysql_select_db("Database", $con);

if (isset($_POST['Location'])) {
    echo $_POST['Location'];
 } else {
    echo 'empty';
 } 

$Location = $_POST['Location'];

此代码的结果是未定义的索引:位置和从 if 语句我得到“空”。为什么相同的代码适用于另一个页面?我现在该怎么办?

感谢你付出的努力

4

7 回答 7

2

要更正索引帖子,请在文件开头使用此命令并使用变量$Location

$Location = (isset($_POST["Location"])?$_POST["Location"]:"");
于 2012-10-30T09:40:54.493 回答
1

要获取文本框的值,您需要给它们命名

<table align="left" width="30%" border="0" >
    <form action="company_edit_php.php" method="post">
    <tr><td align="center" bgcolor="#ECE6E6">Location: <td align="center"> <input type="text" value="<?php echo $row['Location']?>" name='location'/><br></td></tr>
    <tr><td align="center" bgcolor="#ECE6E6">User: <td align="center">  <input type="text" value="<?php  echo $row['User']?>" name='user'/><br></td></tr>
    <tr><td align="center" bgcolor="#ECE6E6">Telephone: <td align="center">  <input type="text" value="<?php echo $row['Telephone']?>" name='phone'/><br></td></tr>
    <tr><td align="center" bgcolor="#ECE6E6">Email: <td align="center">  <input type="text" value="<?php echo $row['Email']?>" name='mail'/><br></td></tr>
    <td> <input type="submit" value="Change" /></td></tr>
于 2012-10-30T09:49:24.253 回答
1

您必须更改表单,因为您错过name了输入,并且要检索值,$_GET您必须像这样使用它:

<tr><td align="center" bgcolor="#ECE6E6">Location: <td align="center"> <input type="text" name="Location" value="<?php echo $row['Location']?>"/><br></td></tr>
于 2012-10-30T09:46:27.513 回答
0

从您所写的内容来看,您制作的页面上没有名为“位置”的字段,或者它在表单之外(因此不在里面......)。由于它适用于从中获取原始源代码的站点,因此那里只有 2 个选项。

  1. 有问题的网站在适当的表格中有一个名为 location 的字段
  2. 有问题的站点会抑制将出现的错误消息。

为了使您的代码正常工作,您需要 1.)如果尚未将字段“位置”放入表单中,并且 2.)您需要“保护”变量的获取,以便不显示错误即使位置是空的。我为这两种变体提供了不同的示例:1.)将位置放在表单中

<form action="company_edit.php" method="post">
......
<input type="text" name="Location" id="Location>
......
</form>

2.) 确保即使 Location 没有注意到存在错误也不会发生,....我什至建议对您要在应用程序中使用的每个 $_POST 和 $_GET 变量执行以下步骤,因为它减少了机会特定 $_GET/$_POST 的错误消息没有设置很多(尽管为了调试和查找写入错误,最好有错误消息)。

if (isset($_POST['Location'])
     $Location = $_POST['Location'];
else
     $Location='';

另一方面,当您通过 POST 提供参数并且您没有将 id 放入 URL 中时,id 的 $_GET 将始终导致一个空的 id 字段(因此“1”始终用作 id)。要使其工作,您要么需要使用 id 作为 post 并将适当的字段放入表单中,要么您必须 eidt 表单的“action”部分,以便 id 在此处作为“?id=”参数给出

于 2012-10-30T09:49:43.143 回答
0

尝试这个:

<?php
$con = mysql_connect("localhost","username","password");
$id = isset($_GET['id']) ? (int)$_GET['id']: 1;
mysql_select_db("Database", $con);


$location= "";

if (isset($_POST['Location'])) {
    $location= $_POST['Location']; // <-------------    put this here!
    //echo $_POST['Location'];
 } else {
    echo 'empty';
 } 

 echo $location; // <-------------   added this


 //$Location = $_POST['Location'];  // it was erroring here as I am guessing that you were sometimes accessing the page without posting the location. If the variable does not exist, you cannot echo it.. thus the changes above
于 2012-10-30T09:41:27.863 回答
0

Location未在您显示的代码中传递。因为这个原因$_POST['Location']是未定义的。把它放在你的 if 语句中以避免错误。

喜欢:

$Location = 'empty';
if (isset($_POST['Location'])) {
    echo $_POST['Location'];
    $Location = $_POST['Location'];
 } else {
    echo 'empty';
 } 
于 2012-10-30T09:44:10.493 回答
0

完整的表格

<table align="left" width="30%" border="0" >
<form action="company_edit_php.php" method="post">
<tr><td align="center" bgcolor="#ECE6E6">Location: <td align="center"> <input type="text" value="<?php echo $row['Location']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">User: <td align="center">  <input type="text" value="<?php  echo $row['User']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">Telephone: <td align="center">  <input type="text" value="<?php echo $row['Telephone']?>"/><br></td></tr>
<tr><td align="center" bgcolor="#ECE6E6">Email: <td align="center">  <input type="text" value="<?php echo $row['Email']?>"/><br></td></tr>
<td> <input type="submit" value="Change" /></td></tr>
于 2012-10-30T09:45:08.150 回答