shopping cart με session variables

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

shopping cart με session variables

Δημοσίευση από Tania Vidaki » 03 Μαρ 2010 16:17

Καλησπέρα! Φτιάχνω το καλάθι ενός ηλεκτρονικού καταστήματος και αντιμετωπίζω ένα πρόβλημα με την προσθήκη των προϊόντων. Προστίθεται ένα προϊόν τη φορά και για κάποιο λόγο δεν δουλεύει το session του καλαθιού.
Σε αυτό το σημείο η συνθήκη if (isset($_SESSION['cart'][$prod_id])) είναι false.
Επίσης όταν εμφανίζω τον πίνακα με τα (το) προϊόν(τα) το πεδίο με την ποσότητα έχει την ποσότητα που έχει ήδη πληκτρολογηθεί κατά τη διάρκεια της καταχώρησης αλλά το κουμπί της ανανέωσης που έχω βάλει δεν λειτουργεί.
Παρακάτω έχω επισυνάψει όλο τον κώδικα... Αν μπορεί κάποιος να μου πει τι μπορεί να γίνει...

[/code]
<?php
session_start();

//Get quantity from #product.php#
$quantity = $_GET['quantity'];
$_SESSION['quantity'] = ($quantity);

//Checking if product has been transfert
if (isset ($_GET['prod_id']))
{
$prod_id = $_GET['prod_id'];
$_SESSION['prod_id'] = ($prod_id);
}
else
{
$prod_id = 1;
}

//Checking if action has been transfert
if (isset ($_GET['submit']))
{
$action = $_GET['submit'];
$_SESSION['action'] = ($action);
}
else
{
$action = "empty";
}

//ACTIONS @add @remove @empty
switch ($action)
{
case "Προσθήκη":
{
if (isset($_SESSION['cart'][$prod_id]))
{
$_SESSION['cart'][$prod_id]++;
}
else
{
$_SESSION['cart'][$prod_id] = 1;
}
}
break;

case "remove":
{
if (isset($_SESSION['cart'][$prod_id]))
{
$_SESSION['cart'][$prod_id]--;
}
if($_SESSION['cart'][$prod_id] == 0)
{
unset($_SESSION['cart'][$prod_id]);
}
}
break;

case "empty":
{
unset($_SESSION['cart']);
}
break;
}

//Display cart
if (isset($_SESSION['cart']))
{
echo "<table align=center border=1 width='550'>";

foreach($_SESSION['cart'] as $prod_id => $quantity)
{
//Product result
include("../common/connection.php");
mysql_query("SET NAMES 'utf8'");
$get_prod_result = mysql_query("SELECT prod_id, description FROM Products WHERE
prod_id = '".$prod_id."'");
while ($products = mysql_fetch_assoc($get_prod_result))
{
$prod_id = $products['prod_id'];
$description = $products['description'];
}
echo "<tr>";
echo "<td align=\"center\"> $description </td>";
"<form method=\"GET\" action=\"".$_SERVER['PHP_SELF']."\">";
echo "<td><input type=\"text\" size=\"7\" name=\"quantity\" value='".$_SESSION['quantity']."' /></td>";
echo "<td align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Ανανέωση\" /></td>";
"</form>";
echo "<td align=\"right\"><a href=\"cart.php?quantity=".$quantity."&prod_id=".$prod_id."&action=remove\">Αφαιρεση προϊόντος</a></td>";
echo "</tr>";
}
echo "<tr><a href=\"cart.php?action=empty\">Ακυρωση της υπαρχουσας παραγγελίας</a></tr>";
echo "</table>";
}
else
{
//otherwise tell the user they have no items in their cart
echo "Δεν υπάρχουν καταχωρημένα προϊόντα στην παραγγελία σας.";
}
?>

sxsweb
Δημοσιεύσεις: 33
Εγγραφή: 14 Δεκ 2009 16:24

shopping cart με session variables

Δημοσίευση από sxsweb » 03 Μαρ 2010 18:15

1.Στις cases "Προσθήκη" και "remove" εφόσον χρησιμοποιούνται αγκύλες { } για όλο το case, το break; θα πρέπει να είναι και αυτό μέσα στις αγκύλες όπως στο case empty
2. Δεν εμφανίζεται ο html κωδικας της φόρμας αλλα μονο των Inputs. Ξεχασες μάλλον να προσθέσεις echo πριν από
"<form method=\"GET\" action=\"".$_SERVER['PHP_SELF']."\">";
και "</form>"

Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

shopping cart με session variables

Δημοσίευση από Tania Vidaki » 07 Μαρ 2010 15:59

Το κουμπί της ανανεωσης δούλεψε με κάποιες προσθήκες αλλά το καλάθι εξακολουθεί να μη δουλεύει... :-?

sxsweb
Δημοσιεύσεις: 33
Εγγραφή: 14 Δεκ 2009 16:24

shopping cart με session variables

Δημοσίευση από sxsweb » 10 Μαρ 2010 15:16

Μπορείς να δοκιμάσεις τον παρακάτω τρόπο για την περίπτωση προσθήκης

Κώδικας: Επιλογή όλων

case "Προσθήκη"&#58;
&#123;
       if&#40;&#40;isset&#40;$_SESSION&#91;'cart'&#93;&#91;$prod_id&#93;&#41;&#41; 
             $_SESSION&#91;'cart'&#93;&#91;$prod_id&#93;++; 
       else
        &#123;
             $productArray = array&#40;$prod_id => 1&#41;
               array_push&#40;$_SESSION&#91;'cart'&#93;,$productArray&#41;; 
        &#125;
       break;
&#125;

Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

shopping cart με session variables

Δημοσίευση από Tania Vidaki » 10 Απρ 2010 06:19

Δυστυχώς ούτε αυτό δουλεύει και δοκίμασα να πειραματιστώ και με άλλους τρόπους αλλά δυστυχώς δεν κατάφερα κάτι. Υπάρχει το πρόβλημα ότι δεν αρχικοποιείται το καλάθι με μία τιμή όταν προστίθεται ένα προϊόν. Δεν έχω βρει λύση εδώ και αρκετό καιρό και το πρόβλημα είναι ότι θα πρέπει στη συνέχεια να συμπληρώνεται μια φόρμα με τα στοιχεία και να στέλνεται η παραγγελία που υπάρχει στο καλάθι μαζί με τα στοιχεία. Πως μπορεί με τα session variables να γίνει αυτό? Υπάρχει αρκετό άγχος οπότε οποιαδήποτε βοήθεια επιθυμητή!
Ευχαριχτώ!

sxsweb
Δημοσιεύσεις: 33
Εγγραφή: 14 Δεκ 2009 16:24

shopping cart με session variables

Δημοσίευση από sxsweb » 12 Απρ 2010 10:38

Πιστεύω ότι είναι θέμα δομής του array του SESSION. Δοκίμασε να εκτυπώσεις όλο το session με print_r.
Επίσης έλεγξε αν υπάρχουν sessions στο κάθε αρχείο ( session_start() )
Για να περάσεις τις μεταβλητές που είναι αποθηκευμένες σε sessions χρειάζεται να αρχικοποιείς το session με κάποιο sessionId,(για να τα ξεχωρίζεις μεταξυ τους) και υπάρχει η δυνατότητα μετατροπής του session σε string και το αντίστροφο.

Κώδικας: Επιλογή όλων

$string = session_encode&#40;&#41;;
session_decode&#40;$string&#41;;
[/quote]

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες