これには簡単な答えがあると確信していますが、今は一週間近くすべてのものを揺らしています。私はショッピングカートアプリを構築しようとしています。同じページにコードを含めると、すべてのコーディングソリューションが動作しますが、外部ページを使用して関数を実行しようとすると、データを返さないようです。私は何が起こっているのかを判断するために様々な監視技術を試しました。私はメインページをロードしようとするとPhPで外部ファイルへの関数呼び出しをしようとすると、WAMPを使用しているMySQL
<?php
class shoppingCart
{
private $dbConn = "";
private $dbName = "";
private $tableName = "";
private $orders = array();
private $orderTable = array();
function _construct()
{
$this->dbConn = @new mysqli("localhost", "root", "");
if (mysqli_connect_errno())
die("<p>Unable to connect to the database server.</p>" . "<p>Error Code " .
mysqli_connect_errno() . ": " . mysqli_connect_error() . "</p>");
}
public function setDatabase($Database)
{
$this->dbName = $Database;
@$this->dbConn->select_db($this->dbName)
Or die("<p>Unable to select the database.</p>" . "<p>Error code " . mysqli_errno($this->dbConn) .
": " . mysqli_error($this->dbConn) . "</p>");
}
public function setTable($Table)
{
$this->tableName = $Table;
}
public function getProductList()
{
$sqlString = "SELECT prodID, prodName, prodPrice FROM $this->tableName";
@$qryResult = $this->dbConn->query($sqlString)
Or die("<p>Unable to perform the query.</p>" . "<p>Error code " . mysqli_errno($this->dbConn) .
": " . mysqli_error($this->dbConn) . "</p>");
echo "<table width='100%' border='1'>";
echo "<tr><th>Product ID</th><th>Product Name</th><th>Product Price</th><th>Select Item</th></tr>";
$row = $qryResult->fetch_row();
do
{
echo "<tr><td>{$row[0]}</td>";
echo "<td>{$row[1]}</td>";
echo "<td>{$row[2]}</td>";
echo "<td><a href='showCart.php?PHPSESSID=" . session_id() . "&operation=addItem&productID=" . $row[0] .
"'>Add</a></td></tr>";
$row = $qryResult->fetch_row();
} while ($row);
echo "</table>";
}
......
?>
:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cart Connection</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>Will this display?</p>
<p><a href='<?php echo "showCart.php?PHPSESSID=" . session_id() ?>'>View Cart</a></p>
<?php
$Database = "L3TtL2B5DdY";
$Table = "tblProds";
if (isset($_SESSION['curCart']))
$Cart = unserialize($_SESSION['curCart']);
else
{
if (class_exists("shoppingCart"))
{
$Cart = new shoppingCart();
$Cart->setDatabase($Database);
echo ("<p>If statement ran successfully</p>");
}
else
exit("<p>The shoppingCart class is not available!");
}
$Cart->setTable($Table);
$Cart->getProductList();
$_SESSION['curCart'] = serialize($Cart);
?>
<p><a href='<?php echo "showCart.php?PHPSESSID=" . session_id() ?>'>View Cart</a></p>
</body>
</html>
ここで「shoppingCart.php」ページに関連するコードです:ここでは
は、メインページのコードがありますそれは2つの
行を表示し、それだけです。コードを最初に作成したときにすべてのエラーをデバッグし、それが機能すると思った。私がこのページのオリジナル版を書いたとき、私は同じページに「接続」コードを入れました。表はうまく表示されました。それで他に何ができるのか分かりません。 Windows XPのボックスにWAMPをインストールしましたが、うまくいくようです。私はプログラムのいずれかの設定ファイルに触れていないし、私の他のすべてのテストコードは正常に動作するようです。それは私が外部ファイルに連絡しようとするときです。 私の頭脳がぼんやりと変わっていると思うので、助けてくれれば大いに感謝します。 おかげでとても
グッドコール:
また、あなたはシリアル化についての自分を気にせず、セッション内のオブジェクトを格納することができ、ここでは簡単な例です。 –
私はメインページからコード全体をコピーしたと思った。私は必要なコードを追加しました。これは私が既に投稿したコードの前にあるものです: <?PHP \t require_once( "shoppingCart.php"); \t session_start(); \t $ _SESSION ['curCart']; ?><!DOCTYPE html PUBLIC " - // W3C // DTD XHTML 1.0 Strict // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict-dtd"> < HTMLのxmlns = "http://www.w3.org/1999/xhtml"> \t
\t \t質問を編集できます – David