IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur : missing argument in __construct()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut Erreur : missing argument in __construct()
    Bonjour,

    Je suis nul en PHP, mais je dois absolument transférer une application développée en PHP pour la passer sur un serveur plus sur !

    Hors, la personne qui a développé l'appli est décédée il y a un moment de ça, et n'a laissé aucunes indications.

    Le serveur précédent était avec Fedora Core 4 (Noyau 2.6.15,):
    - PHP5.0
    - Apache2.0.54
    - Mysql4.1

    Nouveau serveur : Ubuntu 8.04 (Noyau 2.6.24)
    - PHP 5.2
    - Apache2.2
    - Mysql 5

    L'appli demande un login, je le rentre et là, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Missing argument 3 for User::__construct(), called in /var/www/appli/php/login.php on line 11 and defined in /var/www/appli/inc/php/class/User.php on line 13
    J'ai bien jeté un oeil dans les sources, mais je suis largué !

    L'application fonctionnait très bien sur l'ancien sevreur.

    Si quelqu'un pouvait de donner un indice qui puisse m'aider, je l'en remercie d'avance !

    A+

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Je détaille un peu plus, afin que quelque puisse me dire quelque chose !
    La ligne ou ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    --------------------------
    $userIdent = new User("identificateur", "cestqui");
    --------------------------
     
     
    La classe User :
    --------------------------
    class User
     
    {
     
    	private $_uid;
     
    	private $_pwd;
     
    	private $_type;
     
    	private $_uid2;
     
    	private $_new;
     
    	public $error = null;
     
    	private $_host = 'localhost';
     
    	private $_db = 'appli';
     
    	public function __construct($userId, $userPass, $userId2, $dataBase = null, $host = null)
     
    	{
    		$this->_uid = $userId;
     
    		$this->_pwd = $userPass;
    		$this->_uid2 = $userId2;
     
    		if(!empty($dataBase)){
     
    			$this->_db = $dataBase;
     
    		}
     
    		if(!empty($host)){
     
    			$this->_host = $host;
     
    		}
     
    	}
     
    	public function getUserId(){return $this->_uid;}
     
    	public function getUserId2(){return $this->_uid2;}
     
    	public function getPassWord(){return $this->_pwd;}
     
    	public function getUserType(){return $this->_type;}
     
    	public function getDep(){return substr($this->_uid, 0, 2);}
     
     
    	public function setUserId($userId){$this->_uid = $userId;}
     
    	public function setUserId2($userId2){$this->_uid2 = $userId2;}
     
    	public function setPassWord($userPass){	$this->_pwd = $userPass;}
     
    	public function setUserType($userType){$this->_type = $userType;}
     
    	//----------------------------
     
    	// Obtenir une connexion à la base
     
    	//----------------------------
     
    	public function getConnexion(){ 
    	  $connexion = @new mysqli($this->_host, $this->_uid, $this->_pwd, $this->_db);
    	  $error = mysqli_connect_errno();
     
    	  if (!$error){
     
    	    $this->_new = false;
     
      	  return $connexion;
     
    	  }
     
    	  if ( $error == 2002){
     
    	    $this->error = mysqli_connect_errno();
     
          return false;
     
    	}
     
    } 
    --------------------------
    Si vous avez la moindre suggestion, je suis preneur !

    Merci d'avance à ceux qui essayerons de me dépanner.

    A+

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $userIdent = new User("identificateur", "cestqui");
     
    public function __construct($userId, $userPass, $userId2, $dataBase = null, $host = null)
    Tu as trois arguments obligatoires, or tu n'en passes que deux lors de la création de l'objet. Donc, ça plante. Il te faudrait plutôt un appel du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $userIdent = new User("identificateur", "cestqui", "identificateur2");
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Ben oui, mais pourquoi ce source marchait en PHP 5 et ne marcherai plus en PHP 5.2 ?

    Je vais tester de ce pas.

    Merci.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Parce que ce n'est qu'un warning et que votre précédente configuration, contrairement à l'actuelle, devait tout simplement cacher ce genre d'erreur (cf error_reporting).

    Donc +1 pour Celira ou alors vous définissez une valeur par défaut à votre paramètre, comme cela est fait pour vos 4e et 5e paramètres.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    OK, merci c'est très sympa de votre part.

    Je vais essayer de modifier la configuration du error_reporting, car je veux éviter de toucher au code qui n'est pas le mien, et puis ce n'est pas mon boulot, de toutes façons !

    Par contre, je crois que j'ai également un problème d'accès à la base de données !

    Je vais approfondir tout ça, et s'il y a encore souci, je reviendrai pour voir que faire.

    Merci beaucoup de m'aider, quand on est en galère, on apprécie de genre de coup de patte.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur supplied argument is not a valid MySQL resource
    Par abidi_niz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/09/2006, 13h26
  2. mysqli_num_rows() --> erreur d'argument
    Par Invité dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 26/08/2006, 17h38
  3. Erreur d'argument avec runqq
    Par janviech dans le forum Fortran
    Réponses: 3
    Dernier message: 11/08/2006, 09h19
  4. Erreur "Runaway argument"
    Par Doom dans le forum Erreurs - Avertissements
    Réponses: 2
    Dernier message: 02/06/2006, 15h29
  5. [JDBC] erreur missing select keyord
    Par harris_macken dans le forum JDBC
    Réponses: 2
    Dernier message: 11/07/2005, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo