<?php
include("db.php");
Function index(){
echo "Ürünler<br><hr>";
$sor = mysql_query("Select * From urunler order by id desc");
while($yaz = mysql_fetch_array($sor)){
$id = $yaz["id"];
$urunadi = $yaz["urunadi"];
$fiyat = $yaz["fiyat"];
$aciklama = $yaz["aciklama"];
echo "<table width=\"200\" border=\"1\">
<tr>
<td>$urunadi</td>
</tr>
<tr>
<td>$aciklama</td>
</tr>
<tr>
<td>$fiyat</td>
</tr>
<tr>
<td><a href=\"index.php?git=sepeteekle&id=$id\">Sepete Ekle</a></td>
</tr>
</table>
";
}
}
Function sepeteekle(){
echo "<br><br>";
echo "Sepetimdekiler<br><hr>";
@$sepetid = $_GET["id"];
$sor = mysql_query("Select * From urunler where id = $sepetid order by id desc");
while($yaz = mysql_fetch_array($sor)){
$id = $yaz["id"];
$urunadi = $yaz["urunadi"];
$fiyat = $yaz["fiyat"];
$aciklama = $yaz["aciklama"];
$_SESSION["id"] = $id;
$_SESSION["urunadi"] = $urunadi;
echo $_SESSION["id"];
echo "<br>";
echo $_SESSION["urunadi"];
echo "<br><a href=\"index.php?git=satinal\">Satın Al</a>";
}
}
@$git = $_GET["git"];
switch($git){
default:
index();
break;
case "sepeteekle";
index();
sepeteekle();
break;
}
?> session ile sepete ekleme
10
●7.103
- 29-09-2009, 23:56:24Kimlik doğrulama veya yönetimden onay bekliyor.merhabalar arkadaşlar sepete ekleme modülü yapmaya çalışıyorum ip ye göre veritabanına ekleyerek denedim ancak tam verim alamadım şimdi session ile yapmaya çalışıyorum ancak biraz yardıma ihtiyacım var kodlar aşağıda ürünler için sepete ekle dediğimde sepette ürün çıkıyor ancak bir başka ürün ekle dediğimde bir önceki ürün siliniyor.. bir önceki ürün ile birlikte session ile nasıl bütün sepete eklenen ürünleri alt alta sıralatabilirim...yardımcı olursanız sevinirim
- 30-09-2009, 00:25:26Kimlik doğrulama veya yönetimden onay bekliyor.Arkadaşım öncelikle $_GET['id'] o şekilde kullanılmaz açığa sepep olur en azından intval($_GET['id']) de, hatta kendine göre bir temizleme fonksiyonu yazıp ondan geçir.
Sessiona attığın zaman da dizi olarak tutman gerekir, bu şekilde devamlı üstüne yazar. Misal:
<?php $_SESSION['urun'][$id] = array('id' => $id, 'ad' => $urunadi, 'ozel' = > $ozellik) ; ?>gibi. Daha sonra istediğin ide göre okutursun. Ayrıca önce kontrol edersin o idde ürün eklenmiş mi diye ki tekrar ekleme. - 30-09-2009, 00:51:08Eksik yazmışım; şu şekilde atman lazım, arkadaş yukarıda uzunca anlatmış..ACYN adlı üyeden alıntı: mesajı görüntüle
$_SESSION["id"][$id]
Yani her id değerini diziye atacaksın, sonrada gösterdiğin yerde foreach ile listeleyeceksin, listelediğin id numarasına görede ürünün adını falan sorgulatırsın, yada üstteki gibi yine sessiona atarsın, binbir türlü yöntemi var, sepet olayı biraz dikkat ister biraz araştırma yamanı öneririm, sayfanın başınada session_start() koymayı unutma.. - 30-09-2009, 12:08:00teşekkürler hocam ama dizine atıp bi türlü yazdıramadım bu hatayı verio
Notice: Array to string conversion in C:\wamp\www\s\index.php on line 52
Warning: Invalid argument supplied for foreach() in C:\wamp\www\s\index.php on line 53
Function sepeteekle(){ ob_start(); session_start(); echo "<br><br>"; echo "Sepetimdekiler<br><hr>"; @$sepetid = $_GET["id"]; $sor = mysql_query("Select * From urunler where id = $sepetid order by id desc"); while($yaz = mysql_fetch_array($sor)){ $id = $yaz["id"]; $urunadi = $yaz["urunadi"]; $fiyat = $yaz["fiyat"]; $aciklama = $yaz["aciklama"]; } $_SESSION["id"] = $id; $_SESSION["urunadi"] = $urunadi; $_SESSION["id"][$id] = array('id'=>$id, 'urunadi'=>$urunadi); foreach($_SESSION["id"][$id] as $deger=>$key){ echo "<table width=\"200\" border=\"1\"> <tr> <td>".$deger."</td> </tr>";} echo "<tr> <td>".$_SESSION["urunadi"]."</td> </tr> <tr> <td><br><a href=\"index.php?git=satinal\">Satin Al</a><br> <br><a href=\"index.php?git=sil\">Sil</a> </td> </tr> </table>"; }52 ve 53. satırda bu kodlar var
$_SESSION["id"][$id] = array('id'=>$id, 'urunadi'=>$urunadi); foreach($_SESSION["id"][$id] as $deger=>$key){
array konusunda tam yapamadım sanırım - 30-09-2009, 12:16:19Sorunu tam bilmiyorum, net okuyamadım yalnız registers_globals açıksa,$id değişkeni ile $_SESSION['id'] değüişkeni aynı oluyo. yani sizin $id değişkeni ile $_SESSION['id'] yi aynı anda kullanmanız problem yaratıyor olabilir. yani $id değişkenini array olarak görüyorsa, onu bir başka diziye anahtar olarak kullanamazsın. Velhasılı kelam $id yerine bir başka isim de değişken kullanarak deneyin
- 30-09-2009, 23:21:48hocam dizine attım ancak yine sepete atarken üzerine yazıo kodlar aşağıda sorun nerde bulamadım...
Function sepeteekle(){ ob_start(); session_start(); echo "<br><br>"; echo "Sepetimdekiler<br><hr>"; @$sepetid = $_GET["id"]; $sor = mysql_query("Select * From urunler where id = $sepetid order by id desc"); while($yaz = mysql_fetch_array($sor)){ $id = $yaz["id"]; $urunadi = $yaz["urunadi"]; $fiyat = $yaz["fiyat"]; $aciklama = $yaz["aciklama"]; } $_SESSION["idd"][$id] = array('id'=>$id, 'urunadi'=>$urunadi); foreach($_SESSION["idd"][$id] as $deger=>$key){ echo "<table width=\"200\" border=\"1\"> <tr> <td>".$key."</td>";} echo "</tr> <tr> <td><br><a href=\"index.php?git=satinal\">Satin Al</a><br> <br><a href=\"index.php?git=sil\">Sil</a> </td> </tr> </table>"; } - 30-09-2009, 23:32:07Arkadaşım sen benim mesajımı dikkatli incelemişmiydin ?
<?php $_SESSION['urun'][$id] = array('id' => $id, 'ad' => $urunadi ) ; ?>Burada $_SESSION['urun'] isimli bir değişken yapıyoruz önce ve $id değeri ile ayırıp diğer değerleri ekliyoruz. Diyelim ki senin ürünün anakart ve id'i 5 olsun. Yukarıda ki şekilde yazınca değişken şu hale gelmiş oluyor.
<?php $_SESSION['urun'][5] = array('id' => 5, 'ad' => 'Anakart') ; ?>Sonra yeni bir ürün eklenecek olursa misal ekran kartı ve id 3 olsun.Değişken bu hale gelecek:
<?php $_SESSION['urun'][5] = array('id' => 5, 'ad' => 'Anakart') ; $_SESSION['urun'][3] = array('id' => 3, 'ad' => 'Ekran Kartı') ; ?>Senin burayı listelemen için örnek olarak bu şekilde yazabilirsin:
<?php foreach($_SESSION['urun'] as $key => $val){ echo '<table width="200" border="1"> <tr> <td>İD : '.$val['id'].'</td> </tr> <tr> <td>AD : '.$val['ad'].'</td> </tr> <tr> <td><br><a href="index.php?git=satinal">Satin Al</a><br> <br><a href="index.php?git=sil">Sil</a> </td> </tr> </table>'; } ?>Yani bunu direk $_SESSION['urun'] = array('id' => $id, 'ad' => $urunadi ) ; olarak da kullanabilirsin, ancak diğer türlü kullanımı daha kolay olur, çünkü istediğin idde ki sırayı almak için $_SESSION['urun'][$idnosu] olarak kullanırsın.