0

したがって、データベースから注文テーブルにアイテムを渡すためのこのコードがあります。セッションをエコーし​​ているとき。セッション変数には何かが含まれているため、問題はありません。しかし、これらの変数を numrows の下にエコーすると、何も表示されません。何か問題がありますか?

<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
require("connect.php");
$UserID = $_SESSION['CustNum'];
$UserN = $_SESSION['UserName'];

        $ProdGTotal = $_SESSION['ProdGTotal'];

        $queryord = mysql_query("SELECT * FROM customer WHERE UserName = '$UserN'");
        $numrows = mysql_num_rows($queryord);

        if(numrows == 1){
            $row = mysql_fetch_assoc($queryord)or die ('Unable to run query:'.mysql_error()); // fetch associated: get function from a query for a database
            $dbstreet = $row['Street']; 
            $dhousenum = $row['HouseNum']; 
            $dbcnum = $row['CelNum']; 
            $dbarea = $row['Area'];
            $dbbuilding = $row['Building'];
            $dbcity = $row['City'];
            $dbpnum = $row['PhoneNum'];
            $dbfname = $row['FName'];
            $dblname = $row['LName'];

        }
        else
        die(mysql_error());

        $query4=mysql_query("INSERT INTO orderdetails VALUES ('', '$UserID', Now(), '$dbhousenum', '$dbstreet', '$dbarea', '$dbbuilding', '$dbcity',     '$dbfname', '$dblname', '$dbcnum', '$dbpnum', '$ProdGTotal')",$connect);

            if ($query4){

            header("location:index.php");

            }
            else
        die(mysql_error());


?>
4

2 に答える 2

0

if(numrows == 1) => if($numrows == 1){

于 2012-10-14T03:30:45.120 に答える
0

最初に入力します

if(numrows == 1){

代わりに変数:

if($numrows == 1){

ユーザーをチェックする代わりに、次のことができます。

$queryord = mysql_query("SELECT * FROM customer WHERE UserName = '$UserN'");    
$numrows = mysql_num_rows($queryord);

使用:

$queryord = mysql_query("SELECT * FROM customer WHERE UserName = '$UserN' LIMIT 1");    
$numrows = mysql_num_rows($queryord);

1 人のユーザーを取得したいのですが、エスケープされていないために失敗したためです。

$UserN = mysql_real_escape_string($UserN);
$queryord = mysql_query("SELECT * FROM customer WHERE UserName = '$UserN' LIMIT 1");    
$numrows = mysql_num_rows($queryord);

より良い方法でコードを記述し、stackoverflow でデータを取得する方法のベスト プラクティスの例を確認する必要があります。SQL インジェクションと脆弱性を阻止するためのベスト プラクティスをご覧ください。

このサイトに例が示されています: PHP で SQL インジェクションを防ぐにはどうすればよいですか?

于 2012-10-14T03:34:38.517 に答える