fonction de verification qui ne fonctionne pas...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonction de verification qui ne fonctionne pas...

par Ryle » 16 juin 2006, 11:12

Petit rappel : PHP s'exécute sur le serveur (donc en tout premier), c'est lui qui génère le html qui sera envoyé au client. Tu ne peux donc pas exécuter du php depuis ta page html, tu es obligé de recharger la page (où tout du moins de faire appel au serveur)

Tel que tu as écrit ton code, il va donc faire appel à ta fonction vider_panier() lorsqu'il exécutera php et générer le code html ensuite. D'où la perte de tes données à chaque fois :)

par azerty53 » 16 juin 2006, 10:40

j'ai teste cela mais ca fonctionne pas il me vide toujours le panier
<a href="#" onclick="<?php vider_panier()?>">vider le panier</a>
:cry: :cry:

EDIT: Je vais tester ta solution mouet ;)

par Mouet » 16 juin 2006, 10:39

Bhen tu fais un bouton qui rafraichi la page avec un element en _GET ou _POST qui dit que c'est pour vider le pannier.

Ensuite, pour pas le vider plusieurs fois, tu vérifie simplement avec count() sur ton array :D Si c'est = 0, il n'y a plus rien donc, rien à faire

par azerty53 » 16 juin 2006, 10:33

si il raffraichit la page et me vide le panier mais je ne veux pas qu'il le vide a chaque fois que je raffraichis la page (genre quand j'appuye sur f5) mais vraiment que si je clique sur le lien

par Mouet » 16 juin 2006, 10:32

Sans rafraichissement de page?

par azerty53 » 16 juin 2006, 10:31

juste encore une petite question.

j'ai une fonction vider le panier qui vide la variable de session.

est ce que je peux faire un lien hypertexte qui fait appel a une fonction php ??

mais qui ne s'execute que si on clique sur le lien
:roll: :roll: :roll:

par azerty53 » 16 juin 2006, 10:23

1 point for ryle c'est le in_array qu'il fallait !

MERCHI BEAUCOUP A TOI :wink: :wink: :wink: et bonne journée à vous

par Ryle » 16 juin 2006, 10:15

Met des echo dans ta fonction pour savoir dans quels if() il rentre, cela t'aidera à voir à quel endroit il y a un problème.

Affiche nottament les valeurs que tu tests, ca te permettra :

- echo $ref_produit;
- print_r($_SESSION['panier']['id_produit']);
- echo array_search($ref_produit,$_SESSION['panier']['id_produit']);

array_search() retourne la clé associée à l'élément que tu recherche s'il le trouve... je ne sais pas s'il est très judicieux de le comparer à un boolean
in_array() me semble plus adapté dans ce cas...

fonction de verification qui ne fonctionne pas...

par azerty53 » 16 juin 2006, 10:06

Bonjour a toute la communauté.

j'ai un catalogue.php panier.php et fonctionpanier.php

dans mon catalogue j'ai un lien qui me fait passer dans l'url l'id du produit que je veux ajouter au panier.


je recupere l'id dans ma page panier.php et je l'ajoute a ma variable de session et je fais un echo dans mon tableau.

j'ai aussi une fonction qui doit verifier que le produit n'est pas deja dans le panier
// En parametre on passe la reference de l'article et on retourne un booleen
function verif_panier($ref_produit)
{
	// Initialisation de la variable a false
	$present = false;
	if ($nb_prod = count($_SESSION['panier']['id_produit']) != 0)
	{
		// On teste la presence ou non de la ref dans le array
		if (array_search($ref_produit,$_SESSION['panier']['id_produit']) == true)
		{
			$present = true;
		}
	}
	return $present;
}
et dans mon panier je verifie comme ca
$present = verif_panier($id_produit);
if ($present == true)
{
	echo 'produit existant';
}
else
{
ajout($select);
}
mais il me rajoute quand meme le produit meme si il est deja dans le panier.

:: Si je fais un echo du $id_produit j'ai bien l'id du produit à ajouter.

mais je comprend pas pourquoi il ne veut pas faire la verification.

si quelqu'un pouvait me donner un petit coup de main

merci beaucoup