Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
936 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP Object instanciation en double

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP Object instanciation en double

n°2113277
hyptnos
GT : Gui iom
Posté le 25-11-2011 à 15:55:55  profilanswer
 

Bonjour

 

Gros soucis sur mon application intranet que je suis entrain de créer pour ma boite (gestion dynamique de sondage).
J'ai fait le développement en PHP Objet comme d'habitude
En local aucun soucis mais une fois sur le serveur intranet il se passe des choses bizarre.

 

Le principe de foncitonne je clique sur le bouton "ajouter" il m'instancie la classe sondage, il me créer ensuite un objet sondage (vide) (ajout en bdd sans aucune information sauf la date de création, l'id, et le tri.

 

Cette action est appeler via un bouton et une action GET. que voici

 


Code :
  1. if (isset($_GET['add']) != "" ){
  2.    // Paramètre d'ajout d'un sondage
  3.     $tmpSondage = new sondage;
  4.     $tmpId = $tmpSondage->ajouter();
  5.     $tmpSondage = new sondage($tmpId);
  6.     $tmpSondage->update('sondage_auteur', $_SESSION['email']);
  7.     ob_clean();
  8.     header('location:mysondage.php?admin=1');
  9.  }
 


et voici le code du bouton

 
Code :
  1. echo '<p align="right"><a href="'.$urlModule.'&add=1"><input class="blueTxt" type="button" value="Créer un sondage"></a></p>';


La méthode ajouter comme je l'ai dit insert en bdd un sondage vide, et on lui rajoute ensuite l'auteur via la méthode update puis on redirige vers la page pour un raffraichissement (mais sans la variable GET)

 


voici le code de methode "ajouter"

Code :
  1. function ajouter()
  2. {
  3.  $maxTri = $this->getmaxorder() +1;
  4.  $requete = "INSERT INTO ".$this->_options['tablename'];
  5.  $requete .= "(".$this->_options['activefield'].",".$this->_options['datecreatedfield'].",".$this->_options['datemodifiedfield'].",".$this->_options['trifield']." )";
  6.  $requete .= "VALUE('0','".date("Y-m-d H:i:s", time())."','".date("Y-m-d H:i:s", time())."','".$maxTri."')";
  7.  $rs = mysql_query($requete);
  8.  if (!$rs) {
  9.   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
  10.   exit;
  11.  }
  12.  return mysql_insert_id();
  13. }
 

En local aucun soucis il me créer bien l'objet et le sondage.

 

Sur le serveur intranet il me créer pas un sondage, mais il m'en créer deux, idem meme chose quand je veux créer une question (c'est la meme méthode) il me créer deux question, idem pour les réponses, alors que en local aucun soucis.

 

j'ai toujours fonctionner comme cela j'ai toujours utiliser les mêmes classes pour mes différentes applications et jamais je n'ai rencontrer ce soucis

 

Autre précision quand je met l'url directement donc avec la variable Get pour la création &act=1 donc, aucun soucis il me créer bien 1 seul objet

 

une idée ?

 

merci d'avance car la je galère sérieusement depuis 1h à comprendre ce qu'il se passe :'(

 


Message édité par hyptnos le 25-11-2011 à 15:56:13
mood
Publicité
Posté le 25-11-2011 à 15:55:55  profilanswer
 

n°2113288
hyptnos
GT : Gui iom
Posté le 25-11-2011 à 16:37:57  profilanswer
 

J'ai un debut de solution mais c'est de la bidouille :-s cela permettra peut etre de comprendre le soucis.
 
 
je remplace le <a href>...</a> qui entoure le bouton
par une action onclick="window.location.href='....'"
Et la c'est bon cela fonctionne
 
Donc question pourquoi un <a href> m'exécute deux fois les actions alors qu'en passant par un onclick cela fonctionne

n°2113299
olivthill
Posté le 25-11-2011 à 17:29:42  profilanswer
 

Je pense que le problème ne vient pas des lignes de code qui sont montrées là, mais que ça viendrait de la définition du formulaire HTML qui, par exemple, contiendrait un bouton submit, et aussi une action onClick, ou d'autres choses de ce genre. Cela aurait pour effet d'envoyer deux fois le formulaire au serveur. Bref, ce serait intéressant de regarder la ligne <form...> et les lignes <input...>.
 
Sinon, petite remarque, pour if (isset($_GET['add']) != "" ),
il me semble qu'il serait plus simple d'écrire : if (isset($_GET['add']))

n°2113357
hyptnos
GT : Gui iom
Posté le 26-11-2011 à 15:06:41  profilanswer
 

Merci pour l'info sur l'isset
concernant le soucis pas de pb avec Firefox 7 et Firefox 8 mais seulement avec 3.2
Après une petite recherche c'est un bug Firefox et histoire de balisage html du genre SRC non renseigner même si on l'utilise pas il faut mettre =""
Mais bon ma page est immense je verrais lundi mais cela me rassure que mon système de classe soit pas en cause


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP Object instanciation en double

 

Sujets relatifs
Oracle et PHPPHP + JAVASCRIPT remplacer include / iframe cross domain sans AJAX
[ Résolu ] Comment lancer un fichier AcroRd32.exe en PHP ?Création d'un livre d'or en PHP : problème de débutant...
Récuperer info membre Php-Mysqlconfigurer PHP pour intaller Magento
problème pour ajouter un nombre à une variable (heure UTC et CEST)[Php/smtp/phpmailer] Envoi de mail smtp (pb ovh perso)
Problème de requête qui fonctionne sur SMS et pas en PHP 
Plus de sujets relatifs à : PHP Object instanciation en double


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR