προβλημα με κωδικα για e-shop

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

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

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

προβλημα με κωδικα για e-shop

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

εχω εναν κωδικα για e-shop τον εχω παρει απο βιβλιο και εχω ενα προβλημα,
μου βγαζει το εξεις λαθος:

Notice: Undefined variable: _SESSION in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos1\output1_fns.php on line 8

Notice: Undefined index: total_price in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\miltos1\output1_fns.php on line 11

το output1_fns.php :

<?php

function do_html_header($title = '') {
// print an HTML header


// declare the session variables we want access to inside the function
if (!$_SESSION['items']) {
$_SESSION['items'] = '0';
}
if (!$_SESSION['total_price']) {
$_SESSION['total_price'] = '0.00';
}
?>
<html>
<head>
<title><?php echo $title; ?></title>
<style>
h2 { font-family: Arial, Helvetica, sans-serif; font-size: 22px; color: red; margin: 6px }
body { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
li, td { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
hr { color: #FF0000; width=70%; text-align=center}
a { color: #000000 }
</style>
</head>
<body>
<table width="100%" border="0" cellspacing="0" bgcolor="#cccccc">
<tr>
<td rowspan="2">
<a href="dokimi.php"><img src="images/Book-O-Rama.gif" alt="Bookorama" border="0"
align="left" valign="bottom" height="55" width="325"/></a>
</td>
<td align="right" valign="bottom">
<?php
if(isset($_SESSION['admin_user'])) {
echo "&nbsp;";
} else {
echo "Total Items = ".$_SESSION['items'];
}
?>
</td>
<td align="right" rowspan="2" width="135">
<?php
if(isset($_SESSION['admin_user'])) {
display_button('logout.php', 'log-out', 'Log Out');
} else {
display_button('show_cart.php', 'view-cart', 'View Your Shopping Cart');
}
?>
</tr>
<tr>
<td align="right" valign="top">
<?php
if(isset($_SESSION['admin_user'])) {
echo "&nbsp;";
} else {
echo "Total Price = $".number_format($_SESSION['total_price'],2);
}
?>
</td>
</tr>
</table>
<?php
if($title) {
do_html_heading($title);
}
}

function do_html_footer() {
// print an HTML footer
?>
</body>
</html>
<?php
}

function do_html_heading($heading) {
// print heading
?>
<h2><?php echo $heading; ?></h2>
<?php
}

function do_html_URL($url, $name) {
// output URL as link and br
?>
<a href="<?php echo $url; ?>"><?php echo $name; ?></a><br />
<?php
}

function display_categories($cat_array) {
if (!is_array($cat_array)) {
echo "<p>No categories currently available</p>";
return;
}
echo "<ul>";
foreach ($cat_array as $row) {
$url = "show_cat.php?id_cat=".$row['id_cat'];
$title = $row['catname'];
echo "<li>";
do_html_url($url, $title);
echo "</li>";
}
echo "</ul>";
echo "<hr />";
}

function display_cd_dvd($music_array) {
//display all books in the array passed in
if (!is_array($music_array)) {
echo "<p>No cd/dvd currently available in this category</p>";
} else {
//create table
echo "<table width=\"100%\" border=\"0\">";

//create a table row for each book
foreach ($music_array as $row) {
$url = "show_music.php?isdn=".$row['isdn'];
echo "<tr><td>";
if (@file_exists("images/".$row['isdn'].".jpg")) {
$title = "<img src=\"images/".$row['isdn'].".jpg\"
style=\"border: 1px solid black\"/>";
do_html_url($url, $title);
} else {
echo "&nbsp;";
}
echo "</td><td>";
$title = $row['title']." by ".$row['kalitexnis'];
do_html_url($url, $title);
echo "</td></tr>";
}

echo "</table>";
}

echo "<hr />";
}

function display_music_details($music) {
// display all details about this book
if (is_array($music)) {
echo "<table><tr>";
//display the picture if there is one
if (@file_exists("images/".$music['isdn'].".jpg")) {
$size = GetImageSize("images/".$music['isdn'].".jpg");
if(($size[0] > 0) && ($size[1] > 0)) {
echo "<td><img src=\"images/".$music['isdn'].".jpg\"
style=\"border: 1px solid black\"/></td>";
}
}
echo "<td><ul>";
echo "<li><strong>Kalitexnis:</strong> ";
echo $music['kalitexnis'];
echo "</li><li><strong>ISDN:</strong> ";
echo $music['isdn'];
echo "</li><li><strong>Our Price:</strong> ";
echo number_format($music['price'], 2);
echo "</li><li><strong>Description:</strong> ";
echo $music['description'];
echo "</li></ul></td></tr></table>";
} else {
echo "<p>The details of this book cannot be displayed at this time.</p>";
}
echo "<hr />";
}

function display_checkout_form() {
//display the form that asks for name and address
?>
<br />
<table border="0" width="100%" cellspacing="0">
<form action="purchase.php" method="post">
<tr><th colspan="2" bgcolor="#cccccc">Your Details</th></tr>
<tr>
<td>Name</td>
<td><input type="text" name="firstname" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" name="address" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>City/Suburb</td>
<td><input type="text" name="city" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>State/Province</td>
<td><input type="text" name="state" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>Postal Code or Zip Code</td>
<td><input type="text" name="zip" value="" maxlength="10" size="40"/></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="country" value="" maxlength="20" size="40"/></td>
</tr>
<tr><th colspan="2" bgcolor="#cccccc">Shipping Address (leave blank if as above)</th></tr>
<tr>
<td>Name</td>
<td><input type="text" name="ship_name" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" name="ship_address" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>City/Suburb</td>
<td><input type="text" name="ship_city" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>State/Province</td>
<td><input type="text" name="ship_state" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>Postal Code or Zip Code</td>
<td><input type="text" name="ship_zip" value="" maxlength="10" size="40"/></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="ship_country" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td colspan="2" align="center"><p><strong>Please press Purchase to confirm
your purchase, or Continue Shopping to add or remove items.</strong></p>
<?php display_form_button("purchase", "Purchase These Items"); ?>
</td>
</tr>
</form>
</table><hr />
<?php
}

function display_shipping($shipping) {
// display table row with shipping cost and total price including shipping
?>
<table border="0" width="100%" cellspacing="0">
<tr><td align="left">Shipping</td>
<td align="right"> <?php echo number_format($shipping, 2); ?></td></tr>
<tr><th bgcolor="#cccccc" align="left">TOTAL INCLUDING SHIPPING</th>
<th bgcolor="#cccccc" align="right">$ <?php echo number_format($shipping+$_SESSION['total_price'], 2); ?></th>
</tr>
</table><br />
<?php
}

function display_card_form($firstname) {
//display form asking for credit card details
?>
<table border="0" width="100%" cellspacing="0">
<form action="process.php" method="post">
<tr><th colspan="2" bgcolor="#cccccc">Credit Card Details</th></tr>
<tr>
<td>Type</td>
<td><select name="card_type">
<option value="VISA">VISA</option>
<option value="MasterCard">MasterCard</option>
<option value="American Express">American Express</option>
</select>
</td>
</tr>
<tr>
<td>Number</td>
<td><input type="text" name="card_number" value="" maxlength="16" size="40"></td>
</tr>
<tr>
<td>AMEX code (if required)</td>
<td><input type="text" name="amex_code" value="" maxlength="4" size="4"></td>
</tr>
<tr>
<td>Expiry Date</td>
<td>Month
<select name="card_month">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
Year
<select name="card_year">
<?
for ($y = date("Y"); $y < date("Y") + 10; $y++) {
echo "<option value=\"".$y."\">".$y."</option>";
}
?>
</select>
</tr>
<tr>
<td>Name on Card</td>
<td><input type="text" name="card_name" value = "<?php echo $name; ?>" maxlength="40" size="40"></td>
</tr>
<tr>
<td colspan="2" align="center">
<p><strong>Please press Purchase to confirm your purchase, or Continue Shopping to
add or remove items</strong></p>
<?php display_form_button('purchase', 'Purchase These Items'); ?>
</td>
</tr>
</table>
<?php
}

function display_cart($cart, $change = true, $images = 1) {
// display items in shopping cart
// optionally allow changes (true or false)
// optionally include images (1 - yes, 0 - no)

echo "<table border=\"0\" width=\"100%\" cellspacing=\"0\">
<form action=\"show_cart.php\" method=\"post\">
<tr><th colspan=\"".(1 + $images)."\" bgcolor=\"#cccccc\">Item</th>
<th bgcolor=\"#cccccc\">Price</th>
<th bgcolor=\"#cccccc\">Quantity</th>
<th bgcolor=\"#cccccc\">Total</th>
</tr>";

//display each item as a table row
foreach ($cart as $isdn => $qty) {
$music = get_music_details($isdn);
echo "<tr>";
if($images == true) {
echo "<td align=\"left\">";
if (file_exists("images/".$isdn.".jpg")) {
$size = GetImageSize("images/".$isdn.".jpg");
if(($size[0] > 0) && ($size[1] > 0)) {
echo "<img src=\"images/".$isdn.".jpg\"
style=\"border: 1px solid black\"
width=\"".($size[0]/3)."\"
height=\"".($size[1]/3)."\"/>";
}
} else {
echo "&nbsp;";
}
echo "</td>";
}
echo "<td align=\"left\">
<a href=\"show_music.php?isdn=".$isdn."\">".$music['title']."</a>
by ".$music['kalitexnis']."</td>
<td align=\"center\">\$".number_format($music['price'], 2)."</td>
<td align=\"center\">";

// if we allow changes, quantities are in text boxes
if ($change == true) {
echo "<input type=\"text\" name=\"".$isdn."\" value=\"".$qty."\" size=\"3\">";
} else {
echo $qty;
}
echo "</td><td align=\"center\">\$".number_format($music['price']*$qty,2)."</td></tr>\n";
}
// display total row
echo "<tr>
<th colspan=\"".(2+$images)."\" bgcolor=\"#cccccc\">&nbsp;</td>
<th align=\"center\" bgcolor=\"#cccccc\">".$_SESSION['items']."</th>
<th align=\"center\" bgcolor=\"#cccccc\">
\$".number_format($_SESSION['total_price'], 2)."
</th>
</tr>";

// display save change button
if($change == true) {
echo "<tr>
<td colspan=\"".(2+$images)."\">&nbsp;</td>
<td align=\"center\">
<input type=\"hidden\" name=\"save\" value=\"true\"/>
<input type=\"image\" src=\"images/save-changes.gif\"
border=\"0\" alt=\"Save Changes\"/>
</td>
<td>&nbsp;</td>
</tr>";
}
echo "</form></table>";
}

function display_login_form() {
// dispaly form asking for name and password
?>
<form method="post" action="admin.php">
<table bgcolor="#cccccc">
<tr>
<td>Username:</td>
<td><input type="text" name="username"/></td></tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"/></td></tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Log in"/></td></tr>
<tr>
</table></form>
<?php
}

function display_admin_menu() {
?>
<br />
<a href="dokimi.php">Go to main site</a><br />
<a href="insert_category_form.php">Add a new category</a><br />
<a href="insert_book_form.php">Add a new book</a><br />
<a href="change_password_form.php">Change admin password</a><br />
<?php
}

function display_button($target, $image, $alt) {
echo "<div align=\"center\"><a href=\"".$target."\">
<img src=\"images/".$image.".gif\"
alt=\"".$alt."\" border=\"0\" height=\"50\"
width=\"135\"/></a></div>";
}

function display_form_button($image, $alt) {
echo "<div align=\"center\"><input type=\"image\"
src=\"images/".$image.".gif\"
alt=\"".$alt."\" border=\"0\" height=\"50\"
width=\"135\"/></div>";
}

?>

και το login_admin.php εινα:

<?php
require_once('output1_fns.php');

do_html_header("Administration");

display_login_form();


do_html_footer();

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

προβλημα με κωδικα για e-shop

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

Άλλαξε το

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

if &#40;!$_SESSION&#91;'items'&#93;&#41; &#123; 
σε

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

if &#40;empty&#40;$_SESSION&#91;'items'&#93;&#41;&#41; &#123;
και το

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

if &#40;!$_SESSION&#91;'total_price'&#93;&#41; &#123; 
σε

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

if &#40;empty&#40;$_SESSION&#91;'total_price'&#93;&#41;&#41; &#123; 
Ρίξε μια ματιά και στο manual της php σχετικά με τα arrays

Άβαταρ μέλους
panxer
Δημοσιεύσεις: 113
Εγγραφή: 26 Ιουν 2011 20:29
Τοποθεσία: Athens, Greece
Επικοινωνία:

προβλημα με κωδικα για e-shop

Δημοσίευση από panxer » 30 Οκτ 2011 18:48

session_start() στην αρχή,
και τσεκάρεις με isset() για την καθε _SESSION var για να δεις αν υπάρχεις πριν κάνεις κάποια πράξη (λογική ή άλλη) με αυτή.

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

προβλημα με κωδικα για e-shop

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

thanks για της απαντησεισ σας ...

το εκανα ετσι κα δουλεψε

function do_html_header($title = '') {
// print an HTML header


// declare the session variables we want access to inside the function
if (!isset($_SESSION['items'])) {
$_SESSION['items'] = '0';
}

if (!isset($_SESSION['total_price'])) {
$_SESSION['total_price'] = '0.00';
}

αλλα για τι να βαλω session _start() ??????? χρειαζεται οποσδηποτε ????

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

προβλημα με κωδικα για e-shop

Δημοσίευση από gvre » 31 Οκτ 2011 21:45

Ναι, αν και λογικά υπάρχει κάπου σε κανένα index.php ή σε άλλο αρχείο.

Περισσότερα σχετικά με τα sessions μπορείς να βρεις στη διεύθυνση http://gr.php.net/manual/en/session.examples.basic.php

Απάντηση

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

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

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