Fatal error: Cannot re-assign $this

Fatal error: Cannot re-assign $this - PHP - Programmation

Marsh Posté le 15-02-2008 à 15:04:22    

:hello:

 

Tout d'abord je tiens a préciser que j'ai deja fait des recherches sur Google et sur Hardware mais je ne trouve pas la solution de plus ce n'est pas moi qui ait fait le code.

 

Le site marche sous php4 mais pas le 5

 

J'obtiens cette erreur "Fatal error: Cannot re-assign $this ..." quand je veux voir le site sur le navigateur j'ai tésté sous WAMP et EasyPHP toujours la même erreur

 

Sur un site on me dit de remplacer
http://www.oscommerce-fr.info/faq/qa_info.php?qID=172
Le probleme c'est que je ne trouve pas le upload.php

 

Sur un autre de mettre unset = $this
http://www.frxoops.org/modules/new [...] _id=137416
OU
commenter // $this = null

 

Celui la est le plus pertinent je pense
http://www.developpez.net/forums/s [...] p?t=107725

 

Je vous passe le bout de code ou ça coince

 
Code :
  1. function ICharger($PourAdmin=FALSE,$menu=FALSE){
  2.  if($this->id!=0){
  3.   $UseCache = parent::_cacheOuPas('rubrique-'.$this->id,$PourAdmin,FALSE);
  4.   if($UseCache===FALSE){
  5.    $result = IPWG_DataConnector::select('
  6.     SELECT * FROM '.PREFIX_DB.'rubriques
  7.     WHERE id='.stringToDB($this->id));
  8.    if($result!==FALSE && is_array($result)!==FALSE){
  9.     $result = current($result);
  10.     $this->id = $result['id'];
  11.     $this->type = $result['type'];
  12.     $this->idparent = $result['idparent'];
  13.     $this->datecrea = $result['datecrea'];
  14.     $this->datemaj = $result['datemaj'];
  15.     $this->ordre = $result['ordre'];
  16.     $this->statut = $result['statut'];
  17.     $this->menu = $result['menu'];
  18.     $this->affichage = $result['affichage'];
  19.     $TableContent = new IPWG_Table_Content();
  20.     if($TableContent->IChercher('rubriques',$this->id,'libelle')!==FALSE) $this->libelle = $TableContent->valeur;
  21.     $this->enfants = IPWG_Rubrique::IListe($PourAdmin,$this->type,$this->id,$menu);
  22.     $this->produits = IPWG_Produit::IListe($PourAdmin,'rubrique',$this->id);
  23.     $this->articles = IPWG_Article::IListe($PourAdmin,'rubrique',$this->id);
  24.     $this->fichiers = IPWG_Fichier::IListe($PourAdmin,'rubrique',$this->id);
  25.     return parent::_cacheOuPas('rubrique-'.$this->id,$PourAdmin,$this);
  26.    }else return FALSE;
  27.   }else $this = $UseCache;
  28.  }else return FALSE;
  29. }


L'érreur est à la ligne 31

 

Merci pour votre aide  :jap:


Message édité par pulsarghost le 15-02-2008 à 15:10:18
Reply

Marsh Posté le 15-02-2008 à 15:04:22   

Reply

Marsh Posté le 15-02-2008 à 15:11:19    

ben tu peux pas, dans un objet faire ça  
essaye de decomposer  
$this = $UseCache;
 
en
 $this->id = $UseCache->id;
$this->type= $UseCache->type;
 
et ainsi de suite pour toutes tes proprietés


---------------

Reply

Marsh Posté le 15-02-2008 à 15:14:25    

Salut merci pour ta réponse  
J'ai fait un BTS option réseau et donc je n'ai fait que du dev en 1ere année
Si j'ai bien compris il faut que je change tout les $this en  
$this->id = $UseCache->id;
$this->type= $UseCache->type;  
C'est bien ça ?
 
Donc a la place de

Code :
  1. [...] # }else $this = $UseCache;
  2. #  }else return FALSE;
  3. # }


 
je met

Code :
  1. [...]# }else $this->id = $UseCache->id;
  2. $this->type= $UseCache->type;
  3. #  }else return FALSE;
  4. # }


Message édité par pulsarghost le 15-02-2008 à 15:17:40
Reply

Marsh Posté le 15-02-2008 à 15:16:22    

Je pense que flo850 parle uniquement de la ligne 31


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 15-02-2008 à 15:18:12    

ok merci ;)
je fais ça de suite pour voir

Reply

Marsh Posté le 15-02-2008 à 15:19:00    

n'oublie pas de metre des accolade

Code :
  1. else
  2. {
  3.      $this->id = $UseCache->id;
  4.      $this->type= $UseCache->type;
  5. // ici tu mets a jour toutes les autre propietés
  6. }


---------------

Reply

Marsh Posté le 15-02-2008 à 15:46:50    

J'ai oublié de préciser en fait le site marche sur notre serveur et le client a son propre serveur mais pas avec les memes version de logiciels je pense surtout que c'est le passage de php4 a 5 qui coince puisque sur notre serveur le site marche mais pas sur le leur  
 
J'ai créer une nouvelle BDD et j'ai importer le fichier sql sur phpmyadmin
 
J'ai réussi a avancer en changeant comme tu me l'as dit dans tous les fichier ayant cette erreur mais j'ai cette autre erreur
 
Warning: mysql_connect() [function.mysql-connect]: Access denied for user '***'@'localhost' (using password: YES) in C:\wamp\www\***\includes\librairies\IPWG_01_DataConnector.class.php on line 15
Impossible de se connecter : Access denied for user '***'@'localhost' (using password: YES)
 
J'ai alors regarder sur ledit fichier ligne 15 mais c'est une ligne vide (Je sais que certaines erreur se trouve soit au dessus ou en dessous de la ligne cité)
 

Code :
  1. //Type de cache
  2. //define('TYPE_CACHE', 'BDD');
  3. define('TYPE_CACHE', 'FS');
  4. // PATH
  5. define('PATH_CLASS',PATH_PAGE.'includes/classes/');
  6. define('PATH_LIBRARY',PATH_PAGE.'includes/librairies/');
  7. define('PATH_CACHE',PATH_PAGE.'includes/caches/');
  8. define('PATH_SCRIPT',PATH_PAGE.'scripts/');
  9. define('PATH_STYLE',PATH_PAGE.'styles/');
  10. define('PATH_TEMPLATE',PATH_PAGE.'templates/');
  11. define('PATH_FICHIER',PATH_PAGE.'files/');


 
la ligne 15 est la ligne vide


Message édité par pulsarghost le 15-02-2008 à 15:52:42
Reply

Marsh Posté le 15-02-2008 à 15:51:27    

deux possibilité :  
quand tu as cloné la BDD tu n'as pas remis de mot de passe
Le mot de passe de connection est faux  


---------------

Reply

Marsh Posté le 15-02-2008 à 15:58:05    

Si j'ai bien compris quand on clone une BDD il faut changer le mdp mais je dois le faire sur phpmyadmin ou dans le code
 
Je suis sur que le mdp de connection est bon

Reply

Marsh Posté le 15-02-2008 à 16:00:08    

est ce que tu as indiqué , dnas phpmyAdmin , que ta Base avait un mot de passe ?


---------------

Reply

Marsh Posté le 15-02-2008 à 16:00:08   

Reply

Marsh Posté le 15-02-2008 à 16:34:28    

En fait tu devais avoir raison
J'ai donc creer un utilisateur sur phpmyadmin avec les login qui sont sur le fichier et ça marche on voit bien le site
Cependant il manque pas mal de truc je pense que cela ai du au changement que j'ai fait avec $this

 

Ya un probleme, sur le phpmyadmin de notre serveur on a bien la fenetre privilèges mais sur le leur non O_o
Donc quand on a importer la BDD de notre serveur qui contenait tout avec privilege sur le leur il y en a aucun (je veux dire que vu qu'il ny a pas la fenetre de privilege ya rien quoi)

 

Merci pour ton aide :jap:

 

PS : Il faut créer un utilisateur avec un pwd et nom de base avec exactement les memes que ceux sur le fichier config.inc


Message édité par pulsarghost le 30-04-2008 à 12:41:53
Reply

Marsh Posté le 30-04-2008 à 17:17:03    

J'ai refait le test sur free sans changer le code ($this)
et ça marche sauf que j'ai des erreurs

 

Warning: session_start() [function.session-start]: open(/.../sessions/sess_877f735b2ea24628a29f219dd7827602, O_RDWR) failed: No such file or directory (2) in /.../includes/session.inc.php on line 3

 

la ligne 3 correspond a session_start();

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /.../includes/session.inc.php:3) in /.../includes/session.inc.php on line 3

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /.../includes/session.inc.php:3) in /.../includes/session.inc.php on line 3

 


Warning: Unknown(): open(/.../sessions/sess_d563f20f4dd08c89ac15a4eec064de8f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

 

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/.../sessions) in Unknown on line 0

 

Est-ce un probleme du a free ? la fonction php doit être bloquée ?


Message édité par pulsarghost le 30-04-2008 à 17:22:26
Reply

Marsh Posté le 30-04-2008 à 17:23:28    

Reply

Marsh Posté le 05-05-2008 à 10:29:49    

Merci
Je vais testé ça

Reply

Marsh Posté le 05-05-2008 à 10:37:13    

ça marche plus de message d'erreur mais il y a du code sur le site
Merci babasss :jap:

 

Pourtant en local j'ai eu pas mal de corrections a faire (voir ci dessus)
J'ai voulu tester sur free pour tester sur un hebergement et je n'ai pas eu a modifier l'ancien code et le passage de php4 a php5 est nikel

 

Si quelqu'un peut m'expiquer :??:


Message édité par pulsarghost le 05-05-2008 à 10:40:05
Reply

Marsh Posté le 05-05-2008 à 10:44:11    

C'est quoi la question exactement ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 05-05-2008 à 11:59:46    

Pourquoi en local il y a des bugs et pas sur un hebergement parce que j'ai perdu pas mal de temps en corrigeant les erreurs en local alors qu'il n'y en a pas sur une hebergement j'ai meme pas eu a changer le code

Reply

Marsh Posté le 05-05-2008 à 12:05:10    

pulsarghost a écrit :

Pourquoi en local il y a des bugs et pas sur un hebergement parce que j'ai perdu pas mal de temps en corrigeant les erreurs en local alors qu'il n'y en a pas sur une hebergement j'ai meme pas eu a changer le code


Peut être qu'il y a toujours des bugs mais que le niveau d'alerte est plus faible sur l'hébergement.
Place un error_reporting(E_ALL) en tête de page et tu verras si il n'y a vraiment plus de problème...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed