προβλημα με e-shop

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

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

Απάντηση
miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

προβλημα με e-shop

Δημοσίευση από miltiadisf » 17 Οκτ 2011 01:27

χαιρετε , φτιαχνω ενα e-shop πωλησης μουσικων cd και εχω ενα προβλημα δεν μου αποθηκευει τα δεδομενα του πελατη κατα την διαδικασια της παραγελλιας του πελατη.
Το μνμ που εμφανιζει ειναι Could not store data, please try again
παραθετο τα δυο script...

purchase.php

<?php

include ('music_sc_fns.php');

session_start();

do_html_header("checkout");

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$address = $_POST['address'];
$city = $_POST['city'];
$country = $_POST['country'];
$zip_code = $_POST['zip_code'];

if (($_SESSION['cart'] && ($firstname) && ($lastname) && ($address) && ($city) && ($country) && ($zip_code))) {
if (insert_order($_POST) != false ) {
display_cart($_SESSION['cart'], false, 0);

display_shipping(calculate_shipping_cost());

display_card_form($name);

display_button("show_cart.php", "continue-shopping", "Continue Shopping");
} else {
echo "<p> Could not store data, please try again.</p>";
display_button('checkout.php', 'back', 'BACK');
}
} else {
echo"<p> You did not fill in all the fields, please try again.</p><hr />";
display_button('checkout.php', 'back', 'Back');
}

do_html_footer();
?>



order_fns.php

<?php
function process_card($card_details) {
return true;
}

function insert_order($order_details) {
extract($order_details);

if((!$ship_name) && (!$ship_lastname) && (!$ship_country) && (!$ship_zip) && (!$ship_city) && (!$ship_address)) {
$ship_name = $firstname;
$ship_lastname = $lastname;
$ship_country = $country;
$ship_zip = $zip_code;
$ship_city = $city;
$ship_address = $address;
}
$conn = db_connect();
$conn->autocommit(FALSE);

$query = "select id_user from my_users where
firstname = '".$firstname."' and lastname = '".$lastname."'
and country = '".$country."' and zip_code = '".$zip_code."' and city = '".$city."' and address = '".$address."'";


$result = $conn->query($query);

if($result->num_rows>0) {
$customer = $result->fetch_object();
$id_user = $customer->id_user;
} else {
$query = "insert into my_users values
('', '".$firstname."', '".$lastname."', '".$country."', '".$zip_code."', '".$city."', '".$address."' )";
$result = $conn->query($query);

if(!$result) {
return false;
}
}
$id_user = $conn->insert_id;

$date = date("Y-m-d");

$query = "insert into orders values
('', '".$id_user."', '".$_SESSION['total_price']."', '".$date."', '".$ship_name."',
'".$ship_lastname."', '".$ship_country."', '".$ship_zip."', '".$ship_city."', '".$ship_address."')";

$result = $conn->query($query);
if (!$result) {
return false;
}

$query = "select id_order from orders where
id_users = '".$id_user."' and
amount > (".$_SESSION['total_price']."-.001 and
amount < (".$_SESSION['total_price']."+.001 and
date = '".$date."' and
order_status = 'PARTIAL' and
ship_name = '".$ship_name."' and
ship_lastname = '".$ship_lastname."' and
ship_country = '".$ship_country."' and
ship_zip = '".$ship_zip."' and
ship_city = '".$ship_city."' and
ship_address = '".$address."'";



$result = $conn->query($query);

if($result->num_rows>0) {
$order = $result->fetch_object();
$id_order = $order->id_order;
} else{
return false;
}

foreach($_SESSION['cart'] as $isdn => $quantity) {
$detail = get_music_details($isdn);
$query = "delete from order_items where
id_order = '".$id_order."' and isdn = '".$isdn."'";
$result = $conn->query($query);
$query = "insert into order_items values
('".$id_order."', '".isdn."', ".$detail['price'].", $quantity)";
$result = $conn->query($query);
if(!$result) {
return false;
}
}
$conn->commit();
$conn->autocommit(TRUE);
return $id_order;

}

?>

diamond
Δημοσιεύσεις: 69
Εγγραφή: 15 Μάιος 2001 03:00
Τοποθεσία: 127.0.0.1
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από diamond » 17 Οκτ 2011 02:40

IMHO αυτή η γραμμή είναι λάθος..

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

if &#40;insert_order&#40;$_POST&#41; != false &#41;

Δεν θα έπρεπε να είναι όπως παρακάτω;

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

if &#40;$_POST&#91;'insert_order'&#93; != false &#41;

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από korgr » 17 Οκτ 2011 10:05

@diamond
Η insert_order() είναι function που παίρνει ως παράμετρο όλο τον πίνακα του POST :wink:

Γενικά είναι πασιφανές πως αυτός ο κώδικας δεν είναι του φίλου και δεν νομίζω πως έχει πρόβλημα.
Το πρόβλημα πρέπει να είναι στις μεταβλητές POST που περνάει. Κάποια data μάλλον λείπουν και επιστρέφει false η function insert_order($_POST)

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από gvre » 17 Οκτ 2011 10:57

Το πρόβλημα πιθανότατα είναι κάποιο ' σε κάποια από τις μεταβλητές του παρακάτω ερωτήματος ή λείπουν κάποια data όπως είπε και ο Νότης.

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

$query = "select id_user from my_users where 
firstname = '".$firstname."' and lastname = '".$lastname."' 
and country = '".$country."' and zip_code = '".$zip_code."' and city = '".$city."' and address = '".$address."'"; 
Η λύση στην 1η περίπτωση είναι τα prepared statements

@miltiadisf Προτείνω να χρησιμοποιήσεις κάποια έτοιμη και δοκιμασμένη λύση eshop.

diamond
Δημοσιεύσεις: 69
Εγγραφή: 15 Μάιος 2001 03:00
Τοποθεσία: 127.0.0.1
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από diamond » 17 Οκτ 2011 11:22

korgr έγραψε:@diamond
Η insert_order() είναι function που παίρνει ως παράμετρο όλο τον πίνακα του POST :wink:

Ooops... My bad... :oops:
Δεν βρήκα άλλο πρόβλημα, οπότε το θέμα βρίσκεται στο $_POST που στέλνει. Κάτι δεν αρέσει στη function και γυρίζει false :p

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από gvre » 17 Οκτ 2011 11:34

korgr έγραψε:Γενικά είναι πασιφανές πως αυτός ο κώδικας δεν είναι του φίλου
Μάγος είσαι; :)

http://bit.ly/mXszNg

ps. Το βιβλίο είναι για τα μπάζα.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από korgr » 17 Οκτ 2011 12:14

gvre έγραψε:
Μάγος είσαι; :)

http://bit.ly/mXszNg

ps. Το βιβλίο είναι για τα μπάζα.
Πρέπει να είναι αρκετά παλιά έκδοση ε; :)

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από gvre » 17 Οκτ 2011 12:35

Του 2003 είναι αλλά ούτε η 4η έκδοση (2008) είναι καλή. πχ. στο part "E-commerce and Security" έχει το παρακάτω:

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

$name = $_POST&#91;'name'&#93;;
$password = $_POST&#91;'password'&#93;;


// query the database to see if there is a record which matches
$query = "select count&#40;*&#41; from authorized_users where
name = '".$name."' and
password = '".$password."'";
$result = mysqli_query&#40;$mysql, $query&#41;;

diamond
Δημοσιεύσεις: 69
Εγγραφή: 15 Μάιος 2001 03:00
Τοποθεσία: 127.0.0.1
Επικοινωνία:

προβλημα με e-shop

Δημοσίευση από diamond » 17 Οκτ 2011 14:32

Νιαχμ...
Ο κώδικας μοιάζει να γράφτηκε από κάποιον που κάπου στην πορεία ανακάλυψε τα classes και άρχισε να παίζει με αυτά...

miltiadisf
Δημοσιεύσεις: 43
Εγγραφή: 28 Ιουν 2010 13:51

προβλημα με e-shop

Δημοσίευση από miltiadisf » 22 Οκτ 2011 17:30

ευχαριστω για της απαντησεις σας αλλα το προβλημα δεν λυθηκε ακομα......

Χρησιμοποιω το wamp και ειδα οτι κατω κατω γραφει:

Οι επιπρόσθετες λειτουργίες για εργασία με συσχετισμένους πίνακες έχουν απενεργοποιηθεί. Για να μάθετε γιατί, πατήστε εδώ.

Ξερει καποιος αν αυτο διμιουργει προβλημα στον κωδικα και αν ναι τι πρεπει να κανω για να το λυσω?????

Απάντηση

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

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

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