コンテキストを作成するだけです。私はPHPの新人です。私は、「アカウント」に1つ以上の「アドレス」を関連付けることができるeコマースウェブサイトのアカウントシステムを作成しています。ユーザーがアドレスを追加、更新、削除できるようにしたいと思っています。後の2つの関数では、whileループを通して特定の変数を渡す方法がわからないために苦労しています。whileループから特定の変数を別のPHPファイルに渡す
は、ここで私が何を意味するかです:
while ($row = mysqli_fetch_array($result)) {
//address data variables
$addrId = $row['id'];
$accId = $row['account_id'];
$addrName = $row['full_name'];
$addr1 = $row['address1'];
$addr2 = $row['address2'];
$townCity = $row['towncity'];
$countyState = $row['countystate'];
$postZip = $row['postzip'];
$country = $row['country'];
$phone = $row['phone'];
//$count++;
//$_SESSION['address']=array();
$_SESSION['address'] = $addrId;
?>
<div class="addrWrapper">
<div class ="large-3 columns callout row">
<?php
echo $addrId."</br>";
echo $accId."</br>";
echo $addrName."</br>";
echo $addr1."</br>";
echo $addr2."</br>";
echo $townCity."</br>";
echo $countyState."</br>";
echo $postZip."</br>";
echo $country."</br>";
echo $phone."</br>";
//echo $count;
?>
<div class ="large-3 columns">
<a href="PHP/backend/account/addressDelete.php" class="button">Delete</a>
</div>
上記は、フロントエンドで、私は、ユーザーにこの情報のすべてが表示されることはありません実際に、それはただのテストのためです。
<?php
session_start();
//require_once('config.php');
$dbserver = "localhost";
$dbusername = "root";
$dbpassword = "";
$db = "TheNameHere";
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);
//Check connection
if ($conn->connect_error){
die("connection failed".$conn->connect_error);
}
$address = $_SESSION['address'];
//$query1=mysqli_query($conn,"DELETE FROM useraddress WHERE id = $addrId");
echo $address;
//header("Location: ../../../index.php?page=address");
die();
?>
これは、デバッグ中のアドレスを削除するために使用されるスクリプトです。基本的には、アドレスの隣の「削除」ボタンをクリックすると、常に最大の「id」を持つアドレスの変数を渡します(明らかに、1つのセッションが存在し、ループが再生されるたびに更新され、 '$ address'はリストの最後のアドレスです)。
私は今、数日間戻ってこれに来て守ってきた、私はさまざまなソリューションの多くを試みたと私は非常に異なった私はおそらくこれを構造化する必要がありますするつもりだという結論に達しましたしました私のやり方
すべてのポインタは非常に高く評価されます。
PS。私は、セキュリティ上の懸念からURLに「id」というアドレスを渡したくないので、この変数を渡すことをユーザーから隠す必要があります。セッションを使用して
$ _SESSION ['address'] [$ addrId] = $ accId'またはそれに類似していますか? – Peon
私の提案は、Idトラフhtmlをそのアドレスを削除するPHPバックエンドページに渡すことです。それはパーミッションをよりよくチェックし、物理的な削除ではなく、論理的な削除を行います。この方法で、チェックボックスで複数選択削除を考えることができます:) – Goikiu
$ _SESSION ['address'] = $ addrId;ループ内の はループするたびに上書きされるので、常に配列/結果の最後の要素になります。 – Farkie