Erreur Caddie_affichage.php

34 posts in this topic

Posted · Report post

Bonjour,

Au moment de supprimer un article dans le panier il s'affiche un message très particulier :

Notice: Trying to get property of non-object in achat\caddie_affichage.php on line 24

Notice: Trying to get property of non-object in achat\caddie_affichage.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at achat\caddie_affichage.php:24) in achat\caddie_affichage.php on line 56
Cela correspond au code suivant :
		case "enleve" :


			/* Décrementation de la table peel_stocks_temporaires */


			$error = array();


			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];


			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE om_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");


			$C = mysql_fetch_object($resC);


			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");


			$T = mysql_fetch_object($resT);

			// ligne 24

			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";


			@mysql_query($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$_SESSION['caddie']->enleve(intval($_GET['ligne']));


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			if (!empty($_SESSION['caddie']->code_cheque)) { 


			$error_check = calcul_code_cheque_cadeau($_SESSION['caddie']->code_cheque); 


			array_push($error, $error_check);


			}


			if (!empty($_SESSION['caddie']->code_bon)) { 


			$error_bon = calcul_code_bon_reduction($_SESSION['caddie']->code_bon); 


			array_push($error, $error_bon);


			}


			if (!empty($_SESSION['caddie']->type)) { 


			calcul_frais_expedition(vb($_SESSION['caddie']->type));


			}

			//ligne 56

			header("Location:".$_SERVER["PHP_SELF"]);


break;

Quelqu'un a déjà eu affaire à ce type de message ???

J'ai un serveur qui est configuré pour que des pages en PHP5 !

Merci d'avance.

Share this post


: post
Share on other sites

Posted · Report post

Je pense que ton erreur est dans une de ces lignes:

$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";

Tente de faire un echo de "intval($_SESSION['caddie']->articles[$_GET['ligne']])"

De "vn(intval($C->id))"

De "vn(intval($T->id))"

Willy

Share this post


: post
Share on other sites

Posted · Report post

Je pense que ton erreur est dans une de ces lignes:

$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";

Tente de faire un echo de "intval($_SESSION['caddie']->articles[$_GET['ligne']])"

De "vn(intval($C->id))"

De "vn(intval($T->id))"

Willy

Slt Willy,

Merci pour cette astuce mais je l'essaierai plus tard car la je suis au taf et je ne peux pas renvoyer la modif du code source. Par contre sache que c'est le code d'origine fourni par PEEL premium.

En plus chose bizarre sur le serveur de test qui est sur FREE cela fonctionne parfaitement. Mais quand je teste en réel sur leur serveur la j'ai cette erreur. Leur serveur est configuré en PHP5 et si je met le serveur en configuration PHP4 le script tourne en rond sans redonner la main et sans avoir enlevé l'article !

Tiens au passage, y t-il une solution pour décrémenter le nombre d'article commandé au lieu de le supprimer complètement.

++

Share this post


: post
Share on other sites

Posted · Report post

Tiens au passage, y t-il une solution pour décrémenter le nombre d'article commandé au lieu de le supprimer complètement.

Je pense que c'est faisable, le caddie est un objet, il faut donc modifier la ligne plutot que de la supprimer.

Par contre il faut revoir la gestion du stock apres, ne pas commander plus que le stock, MAJ du stock virtuel, etc...

Willy

Share this post


: post
Share on other sites

Posted · Report post

Je pense que ton erreur est dans une de ces lignes:

$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";

Tente de faire un echo de "intval($_SESSION['caddie']->articles[$_GET['ligne']])"

De "vn(intval($C->id))"

De "vn(intval($T->id))"

Willy

Slt Willy,

Peux-tu m'aider à faire cet ECHO stp !

Ou dois-je placer les lignes ???

Merci.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

juste avant votre requete sql :

$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";
Mettez:
echo "Ligne article: " .intval($_SESSION['caddie']->articles[$_GET['ligne']]) ."<BR>";

echo "C id " .vn(intval($C->id))."<BR>";

echo "T id " .vn(intval($T->id))."<BR>";

Ca vous affichera des lignes en plus.

Il y aura toujours l'erreur, mais au moins on saura sur quelle(s) ligne(s) ca plante.

retentez de supprimer un article d'une commande et dites nous ce qu'il se passe.

Willy

Share this post


: post
Share on other sites

Posted · Report post

n' y aurait il pas encore le souci avec les lignes blanches du code ?

Share this post


: post
Share on other sites

Posted · Report post

n' y aurait il pas encore le souci avec les lignes blanches du code ?

Slt,

C'est à dire ? Je comprend pas trop ta phrase Paulanna !

Share this post


: post
Share on other sites

Posted · Report post

Est ce qu'il n'y a pas uen ligne blanche tout en haut de ta page de code ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

Est ce qu'il n'y a pas uen ligne blanche tout en haut de ta page de code ?

Willy

Slt Willy,

A ma connaissance non je n'ai pas de ligne blanche en haute de ma page caddie_affichage.php.

ex :

<?

include("../configuration.inc.php");

if (isset($_REQUEST['func'])) {

	switch ($_REQUEST['func']) {

		case "enleve" :

			/* Décrementation de la table peel_stocks_temporaires */

			$error = array();

			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];

			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");

			$C = mysql_fetch_object($resC);

			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");

			$T = mysql_fetch_object($resT);


echo "Ligne rajoute à la demande de Willy :<br>";

echo "Ligne article: " .intval($_SESSION['caddie']->articles[$_GET['ligne']]) ."<BR>";

echo "C id " .vn(intval($C->id))."<BR>";

echo "T id " .vn(intval($T->id))."<BR>";


			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";

.....

.....

Je t'envoi en MP le lien du site pour tester !

Merci d'avance.

Share this post


: post
Share on other sites

Posted · Report post

Quelqu'un a-t-il de nouvelles idées pour mon problème ???

Merci

Share this post


: post
Share on other sites

Posted · Report post

Quelqu'un a-t-il de nouvelles idées pour mon problème ???

Merci

On ne peut pas vous contacter par Message Personnel

Merci de me contacter par mail

Share this post


: post
Share on other sites

Posted · Report post

Mon code est le suivant:

<?

include("../configuration.inc.php");


if (isset($_REQUEST['func'])) {


	switch ($_REQUEST['func']) {


		case "enleve" :


			/* Décrementation de la table peel_stocks_temporaires */


			$error = array();


			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];


			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");


			$C = mysql_fetch_object($resC);


			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");


			$T = mysql_fetch_object($resT);


			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";


			@mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$_SESSION['caddie']->enleve(intval($_GET['ligne']));


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			if (!empty($_SESSION['caddie']->code_cheque)) { 


			$error_check = calcul_code_cheque_cadeau($_SESSION['caddie']->code_cheque); 


			array_push($error, $error_check);


			}


			if (!empty($_SESSION['caddie']->code_bon)) { 


			$error_bon = calcul_code_bon_reduction($_SESSION['caddie']->code_bon); 


			array_push($error, $error_bon);


			}


			if (!empty($_SESSION['caddie']->type)) { 


			calcul_frais_expedition(vb($_SESSION['caddie']->type));


			}


			header("Location:".$_SERVER["PHP_SELF"]);



		break;

Sinon ya t'il des enregistrements dans les tables de taille et de couleur ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

On ne peut pas vous contacter par Message Personnel

Merci de me contacter par mail

Bonjour,

Le message personnel ne fonctionne pas !!!

Bref je viens d'envoyer un mail sur GMAIL.

Share this post


: post
Share on other sites

Posted · Report post

Sinon ya t'il des enregistrements dans les tables de taille et de couleur ?

Willy

slt willy,

oui il peut y avoir des options de type couleur ! tu n'as pas eu le lien du site en MP ???

Sinon merci pour ton bout de code ... je le teste ce soir !

++

Share this post


: post
Share on other sites

Posted · Report post

slt willy,

oui il peut y avoir des options de type couleur ! tu n'as pas eu le lien du site en MP ???

Sinon merci pour ton bout de code ... je le teste ce soir !

++

Bonjour,

j'ai bien eu le lien et j'ai bien l'erreur citée.

L'erreur dit que $C et $T ne sont pas des objets, alors que si... :)

Pour la session, on verra apres.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Sinon il faut tester avec ca:

<?

include("../configuration.inc.php");

if (isset($_REQUEST['func'])) {

	switch ($_REQUEST['func']) {

		case "enleve" :

			/* Décrementation de la table peel_stocks_temporaires */

			$error = array();

			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];

			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");

			$C = mysql_fetch_object($resC);

			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");

			$T = mysql_fetch_object($resT);


			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']]) ."'";



			if (mysql_num_rows(resC) > 0) { 

						$sql = $sql . " AND couleur_id = '".vn(intval($C->id))."'";

			}


			if (mysql_num_rows(resT) > 0) { 

						$sql = $sql . " AND taille_id = '".vn(intval($T->id))."'";


			}



			@mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$_SESSION['caddie']->enleve(intval($_GET['ligne']));


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			if (!empty($_SESSION['caddie']->code_cheque)) { 


			$error_check = calcul_code_cheque_cadeau($_SESSION['caddie']->code_cheque); 


			array_push($error, $error_check);


			}


			if (!empty($_SESSION['caddie']->code_bon)) { 


			$error_bon = calcul_code_bon_reduction($_SESSION['caddie']->code_bon); 


			array_push($error, $error_bon);


			}


			if (!empty($_SESSION['caddie']->type)) { 


			calcul_frais_expedition(vb($_SESSION['caddie']->type));


			}


			header("Location:".$_SERVER["PHP_SELF"]);



		break;

S'il n'y a pas de récultat sur les requetes de taille ou de couleur ca ce prend pas en compte les objets...

J'ai vu que si on met un de ses critères, il y a uen erreur en moins, par exemple la taille.

Si on met un cadre avec une taille et qu'on le supprime, il n'y a pas d'erreur sur la taille.

A tester :)

Willy

Share this post


: post
Share on other sites

Posted · Report post

ce n'est pas un proble de require qui ne se fait pas suite à un mauvais lien ou quelque chose comme ca qui fait que cela n'initialise pas les objets?

Share this post


: post
Share on other sites

Posted · Report post

Non visiblement s'il n'y a pas de taille ou de couleur ca met des messages d'erreur...

Sinon c'est à l'initialisation de la ligne de cde qu'il y a un soucis, peut etre que couleur et taille ne sont pas initialisés ?

Test (avec et sans critère de taille et de couleur) avec mon dernier code et dis moi si ca fonctionne. Il faut voir que l'article se supprime bien du caddie ET que le stock est bien affecté par le changement.

Dis nous aussi s'il y a encore l'erreur de session.

Willy

Share this post


: post
Share on other sites

Posted · Report post

Non visiblement s'il n'y a pas de taille ou de couleur ca met des messages d'erreur...

Sinon c'est à l'initialisation de la ligne de cde qu'il y a un soucis, peut etre que couleur et taille ne sont pas initialisés ?

Test (avec et sans critère de taille et de couleur) avec mon dernier code et dis moi si ca fonctionne. Il faut voir que l'article se supprime bien du caddie ET que le stock est bien affecté par le changement.

Dis nous aussi s'il y a encore l'erreur de session.

Willy

pas de problème, je teste et te donne la réponse au plus vite.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

j'ai le même problème que cedric ...

Share this post


: post
Share on other sites

Posted · Report post

pas de problème, je teste et te donne la réponse au plus vite.

Alors ca a donné quoi ? :)

Willy

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

j'ai le même problème que cedric ...

Et que donne ma solution ?

Quelle version avez vous ?

Peut on avoir une adresse de voter boutique ?

Willy

Share this post


: post
Share on other sites

Posted · Report post

Et que donne ma solution ? Quelle version avez vous ? Peut on avoir une adresse de voter boutique ?

Willy

Bonjour,

Les problèmes persistent et signent !!!!

Pour faire court :

j'ai remis la version d'origine de peel premium pour écarter toutes eventualités de modif de script apportés par mes soins.

Version PEEL : ici

Version Original : ici

Bien entendu la version de peel s'appuit sur les variables de l'original.

Les messages d'erreurs s'affichent encore.

Autres précisions sur l'hébergeur : http://www.hebergeur-discount.com/

Il est en safe-mode donc il interdit certaines fonctions. http://www.hebergeur-discount.com/faq/category.php?catID=5

Il est possible également de configurer le serveur en PHP4 - PHP5 - PHP6(dev)

Quand je met le serveur en PHP4 le script tourne en boucle sans afficher de message d'erreur mais il ne supprime pas l'article dans le panier (d'ailleur il n'affiche meme pas la boite de dialogue pour la confirmation de suppression)

Quand je met le serveur en PHP5 le script s'execute mais affiche un message d'erreur et n'affiche pas les images dans le reste de la page.

   <b>Notice</b>:  Trying to get property of non-object in <b>d:\www\digital-mouse.com\htdocs\peel\achat\caddie_affichage.php</b> on line <b>20</b>


	 <b>Notice</b>:  Trying to get property of non-object in <b>d:\www\digital-mouse.com\htdocs\peel\achat\caddie_affichage.php</b> on line <b>20</b>


	 <b>Warning</b>: Cannot modify header information - headers already sent  by (output started at  d:\www\digital-mouse.com\htdocs\peel\achat\caddie_affichage.php:20) in <b>d:\www\digital-mouse.com\htdocs\peel\achat\caddie_affichage.php</b> on line 52

Amicalement les z'amis PEEL pour votre aide.

Share this post


: post
Share on other sites

Posted · Report post

Même avec mon dernier code ?

<?

include("../configuration.inc.php");

if (isset($_REQUEST['func'])) {

	switch ($_REQUEST['func']) {

		case "enleve" :

			/* Décrementation de la table peel_stocks_temporaires */

			$error = array();

			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];

			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");

			$C = mysql_fetch_object($resC);

			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");

			$T = mysql_fetch_object($resT);


			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']]) ."'";



			if (mysql_num_rows(resC) > 0) { 

						$sql = $sql . " AND couleur_id = '".vn(intval($C->id))."'";

			}


			if (mysql_num_rows(resT) > 0) { 

						$sql = $sql . " AND taille_id = '".vn(intval($T->id))."'";


			}



			@mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$_SESSION['caddie']->enleve(intval($_GET['ligne']));


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			if (!empty($_SESSION['caddie']->code_cheque)) { 


			$error_check = calcul_code_cheque_cadeau($_SESSION['caddie']->code_cheque); 


			array_push($error, $error_check);


			}


			if (!empty($_SESSION['caddie']->code_bon)) { 


			$error_bon = calcul_code_bon_reduction($_SESSION['caddie']->code_bon); 


			array_push($error, $error_bon);


			}


			if (!empty($_SESSION['caddie']->type)) { 


			calcul_frais_expedition(vb($_SESSION['caddie']->type));


			}


			header("Location:".$_SERVER["PHP_SELF"]);



		break;

Willy

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping