0

さて、私はPHP / HMTLプログラミングを検討している完全な初心者であり、私はこれらの問題に何日も立ち往生しています。

最初に、次の列(id、Name、Surname、Telephone_number、Email)を含むMysqlテーブルを作成しました。次に、テーブルを読み取るためのフォームを正常に作成しました。今、私は次のコードを使用して特定の行を読み、後で編集したいと思います:

41 <?php
42 $con = mysql_connect("localhost","username","password");
43 mysql_select_db("database", $con);
44 $id=$_GET["id"];
45 $result = mysql_query("SELECT * FROM Table  where id='$id'");
46 $row = mysql_fetch_array($result);
47 ?>

しかし、私が得るのは次のエラーだけです:注意:未定義のインデックス:44行目のC:\ xampp \ htdocs\contacts_edit.phpのid

どんな助けでも大歓迎です!

4

5 に答える 5

6

URL にGETパラメータが設定されていません。これが、グローバルでidが定義されていない理由です。

その問題を防ぐには、前に変数を確認してください。

$id = isset($_GET['id']) ? (int)$_GET['id']: 0;

または

if (!isset($_GET['id']) {
    $_GET['id'] = 0;
}

あなたのための短いヒント...

非常に大きなセキュリティ ホールを構築した SQL インジェクションを実際に確認する必要があります。

$_GET$_POSTを SQL クエリで直接使用しないでください。PDO または MySQLi を使用した準備済みステートメントを優先する必要があります。ソリューションを使用する場合は、ID を次のように整数値にキャストします。

$id = (int)$_GET['id'];

設定されていない場合、デフォルト値は 0 です。

于 2012-10-19T07:55:03.973 に答える
2

最初にIDが設定されていることを確認する必要があります

<?php

$con = mysql_connect("localhost","username","password");
mysql_select_db("database", $con);

if(isset($_GET['id'])) {

   $id=$_GET["id"];
   $result = mysql_query("SELECT * FROM Table  where id='$id'");
   $row=mysql_fetch_array($result);
}
?>

より良いアプローチは、pdo または mysqli を使用することです。

PHPでSQLインジェクションを防ぐにはどうすればよいですか?

于 2012-10-19T07:55:40.960 に答える
1

私はこれをして私のために働いた

 <?php
 $con = mysql_connect("localhost","***","***");
 mysql_select_db("***", $con);
 if(isset($_GET["id"]) && !empty($_GET["id"])){
    $id= $_GET['id'];
    $result = mysql_query("SELECT * FROM core_usuarios  where id=".$id);
    $row = mysql_fetch_array($result);
    print_r($row);
}
 ?>

ちなみに、データベースに接続したいときに「plain php」を使用している場合は、PDOPHPhttp://www.php.net/manual/en/pdo.construct.phpを使用した方がよいでしょう

于 2012-10-19T08:05:28.460 に答える
-1

次のようにする必要があります。

$con = mysql_connect("localhost","username","password");
mysql_select_db("database", $con);
if(isset($_GET['id'])) {
  $id=$_GET["id"];
  $result = mysql_query("SELECT * FROM Table  where id='$id'");
  $row = mysql_fetch_array($result);
}
于 2012-10-19T07:59:59.293 に答える
-1

あなたはこのようなものを持っている必要があります

http://site.com/contacts_edit.php?id=1

そしてcontacts_edit.phpで使用できます$_GET['id']

さよなら

于 2012-10-19T07:55:03.750 に答える