alterman
شنبه 04 خرداد 1392, 13:15 عصر
دوتا سوال از دوستان عزیز:
اولی اینکه من با متدهای get و post و session برای ارسال مقادیر بین صفحات php آشنایی دارم
اگر شما هم مثل http://phpsec.org/projects/guide/4.html و با رعایت مسائل امنیتی اعتقاد دارید که session
امن ترین راه برای ارسال مقادیر بین صفحات php هست اگر اطلاعات زیادی بخواهید بین صفحات رد و بدل کنید آیا بازهم session رو بهترین راه میدونید یا اینکه به خاطر زیاد شدن حجم اطلاعات روی سرور از روش دیگری استفاده میکنید؟
سوال دوم هم اینکه فرض کنید که میخواهیم یک range قیمت به مشتری برای یک محصول خاص پیشنهاد بدیم
(قیمت ها درتگهای ul li a هستند) و با کلیک کاربر روی هر کدوم وارد پنل قیمت نهایی میشه
کاری که من کردم
while($i<5){
$amountHash= md5(uniqid(rand(),true));
$priceHash = md5(uniqid(rand(),true));
// just calculating price , nothing more
$price = $chap + ($cp * $a[$i] ) + ($cb * $a[$i]) + ($cr * $a[$i]);
//مقدار
$_SESSION[$amountHash] = $a[$i];
//قیمت
$_SESSION[$priceHash] = $price;
echo '<td><div>
<ul><li><a href="pricePanel.php?qty='.$amountHash.'&prc='.$priceHash.'" ><span>تعداد :'.$amount.'</span><span> قیمت:'. $price .'ریال</span>
</a></li></ul></div>
</td>';
$i++;
}
که درواقع برای مقدار و قیمت با MD5 یک hash یونیک ساخته میشه و با اون hash در session ذخیره بشه
کاربر روی هر قیمتی که کلیک بکنه hash قیمت و مقدار همراه با url به صفحه pricePanel ارسال مییشه و
در اون صفحه هم
if(isset($_GET['amount']) && isset($_GET['price'])){
$amountHash = $_GET['qty'] ;
$priceHash = $_GET['prc'];
session_start();
$amount = $_SESSION[$amountHash];
$price = $_SESSION[$priceHash];
}
که این طوری محتویات session رو دریافت میکنم
این کد روی Local کاملا کار میکنه
ولی وقتی روی host آپ میکنم فقط دفعه اول کار نمیکنه!
اگه دوستان میدنن مشکل از کجاست یا کلا راه دیگه ای پیشنهاد میکنند ممنون میشم مطرح کنند
اولی اینکه من با متدهای get و post و session برای ارسال مقادیر بین صفحات php آشنایی دارم
اگر شما هم مثل http://phpsec.org/projects/guide/4.html و با رعایت مسائل امنیتی اعتقاد دارید که session
امن ترین راه برای ارسال مقادیر بین صفحات php هست اگر اطلاعات زیادی بخواهید بین صفحات رد و بدل کنید آیا بازهم session رو بهترین راه میدونید یا اینکه به خاطر زیاد شدن حجم اطلاعات روی سرور از روش دیگری استفاده میکنید؟
سوال دوم هم اینکه فرض کنید که میخواهیم یک range قیمت به مشتری برای یک محصول خاص پیشنهاد بدیم
(قیمت ها درتگهای ul li a هستند) و با کلیک کاربر روی هر کدوم وارد پنل قیمت نهایی میشه
کاری که من کردم
while($i<5){
$amountHash= md5(uniqid(rand(),true));
$priceHash = md5(uniqid(rand(),true));
// just calculating price , nothing more
$price = $chap + ($cp * $a[$i] ) + ($cb * $a[$i]) + ($cr * $a[$i]);
//مقدار
$_SESSION[$amountHash] = $a[$i];
//قیمت
$_SESSION[$priceHash] = $price;
echo '<td><div>
<ul><li><a href="pricePanel.php?qty='.$amountHash.'&prc='.$priceHash.'" ><span>تعداد :'.$amount.'</span><span> قیمت:'. $price .'ریال</span>
</a></li></ul></div>
</td>';
$i++;
}
که درواقع برای مقدار و قیمت با MD5 یک hash یونیک ساخته میشه و با اون hash در session ذخیره بشه
کاربر روی هر قیمتی که کلیک بکنه hash قیمت و مقدار همراه با url به صفحه pricePanel ارسال مییشه و
در اون صفحه هم
if(isset($_GET['amount']) && isset($_GET['price'])){
$amountHash = $_GET['qty'] ;
$priceHash = $_GET['prc'];
session_start();
$amount = $_SESSION[$amountHash];
$price = $_SESSION[$priceHash];
}
که این طوری محتویات session رو دریافت میکنم
این کد روی Local کاملا کار میکنه
ولی وقتی روی host آپ میکنم فقط دفعه اول کار نمیکنه!
اگه دوستان میدنن مشکل از کجاست یا کلا راه دیگه ای پیشنهاد میکنند ممنون میشم مطرح کنند