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'];

このコードの結果は Undefined index: Location であり、if ステートメントからは「空」になります。この同じコードが別のページで機能するのはなぜですか? 私は今どうすればいい?

ご尽力いただきありがとうございます

4

7 に答える 7

2

インデックス ポストを修正するには、ファイルの先頭でこのコマンドを使用し、変数を使用します。$Location

$Location = (isset($_POST["Location"])?$_POST["Location"]:"");
于 2012-10-30T09:40:54.493 に答える
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 に答える
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 に答える
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

これを試して:

<?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

あなたが書いていることから、作成したページに「場所」という名前のフィールドがないか、フォームの外側にあります(したがって、内側ではありません....)。元のソースコードが取得されたサイトで動作するため、2 つのオプションしかありません。

  1. 問題のサイトには、適切なフォーム内に location という名前のフィールドがあります
  2. 問題のサイトは、表示されるエラー メッセージを抑制します。

コードが機能するためには、1.) フィールド "Location" がフォーム内にまだ配置されていない場合は配置し、2.) エラーが表示されないように変数の取得を "保護" する必要があります。 Location が空の場合でも。両方のバリアントに異なる例を挙げています: 1.) フォーム内に Location を配置する

<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 して、id が「?id=」パラメーターとして指定されるようにする必要があります。

于 2012-10-30T09:49:43.143 に答える
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 に答える