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 :

[POO] Problème avec $this de PHP4 à PHP5


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut [POO] Problème avec $this de PHP4 à PHP5
    Bonjour à vous tous. Mon hébergeur à passé à la version 5 sans m'en parler donc je voudrais faire fonctionner mes pages à nouveau.

    Tous les sites que j'ai fait fonctionne magnifiquement bien sur les serveurs PHP4.x mais ne veut rien savoir en version 5.

    J'utilise la structure suivante : Mon fichier index.php appel par include le fichier bll.php, qui lui-même appel dal.php et qui à son tour appel connection.php

    l'avantage est que si je change de type de base de données je n'ai qu'à changer mes requêtes dans le fichier dal.php et mon fichier de connexion.


    Voici mes fichiers

    inc/connection.php
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <?
    	class connection {
     
    		var $Host     = "mysql2.myserv.com"; // Hostname of our MySQL server.
    		var $Database = "mydatabasename"; // Logical database name on that server.
    		var $User     = "mydatabaseuser"; // User und Password for login.
    		var $Password = "mydatabasepass";
     
    		var $Link_ID  = 0;  // Result of mysql_myconnect().
    		var $Query_ID = 0;  // Result of most recent mysql_query().
    		var $Record   = array();  // current mysql_fetch_array()-result.
    		var $Row;           // current row number.
     
    		var $Errno    = 0;  // error state of query...
    		var $Error    = "";
     
    		## myhalt() start ##
    		function myhalt($msg) {
    			printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
    			printf("<b>MySQL Error</b>: %s (%s)<br>\n",
    				$this->Errno,
    				$this->Error);
    			die("Session halted.");
    		}		
    		## myhalt() end ##
     
    		## myconnect() start ##
    		function myconnect() {
    			if ( 0 == $this->Link_ID ) {
    				$this->Link_ID=mysql_myconnect($this->Host, $this->User, $this->Password);
    				if (!$this->Link_ID) {
    					$this->myhalt("Link-ID == false, connect failed");
    				}
    			  	if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
    					$this->myhalt("cannot use database ".$this->Database);
    			  	}
    			}
    		}	
    		## myconnect() end ##
     
    		## dispose() start ##
    		function dispose() {
    			$this->Link_ID = -1;
    		}
    		## dispose() end ##
     
    		## query() start ##
    		function query($Query_String) {
    			$this->myconnect();
     
    			$this->Query_ID = mysql_query($Query_String,$this->Link_ID);
    			$this->Row   = 0;
    			$this->Errno = mysql_errno();
    			$this->Error = mysql_error();
    			if (!$this->Query_ID) {
    				$this->myhalt("Invalid SQL: ".$Query_String);
    			}
     
    			return $this->Query_ID;
    		}		
    		## query() end ##
     
    		## next_query() start ##			
    		function next_record() {
    			$this->Record = mysql_fetch_array($this->Query_ID);
    			$this->Row   += 1;
    			$this->Errno = mysql_errno();
    			$this->Error = mysql_error();
     
    			$stat = is_array($this->Record);
    			if (!$stat) {
    				mysql_free_result($this->Query_ID);
    				$this->Query_ID = 0;
    			}
    			return $stat;
    		}		
    		## next_query() end ##
     
    		## seek() start ##
    		function seek($pos) {
    			$status = mysql_data_seek($this->Query_ID, $pos);
    			if ($status)
    				$this->Row = $pos;
    			return;
    		}		
    		## seek() end ##
     
    		function num_rows() {
    			return mysql_num_rows($this->Query_ID);
    		}
     
    		function num_fields() {
    			return mysql_num_fields($this->Query_ID);
    		}
     
    		function f($Name) {
    			return $this->Record[$Name];
    		}
     
    		function p($Name) {
    			print $this->Record[$Name];
    		}
     
    		function affected_rows() {
    			return @mysql_affected_rows($this->Link_ID);
    		}
     
    	}
    ?>
    inc/dal.php
    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
    <?
    	include("connection.php");
     
    	class DAL {  // CONNECTION
    		function conn(){
    			$this = new connection;		
    		}
     
    		function dispose(){
    			$this->dispose();
    		}	
     
    		///////////////////////////////////////////////////
    		//////////////////     LOGIN    ///////////////////
    		///////////////////////////////////////////////////
    		function mylogin($user, $pass){
    			if ($user != "" OR $pass != ""){
    				$qry = "SELECT * FROM tbl_user WHERE fld_username = '".$user."' AND fld_pw = '".$pass."';";			
    				$this->conn();
    				$this->query($qry);
    				if($this->num_rows() == 1){
    					$this->next_record();
    					$t = $this->Record['fld_userID'];
    					$this->dispose();
    					return $t;
    				}
    				else
    				{
    					return -1 ;
    				}
    			}
    			else
    			{
    				return -1 ;
    			}
    		}
    } // FIN CLASS
    ?>
    inc/bll.php
    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
    <?
    	include("dal.php");
     
    	class BLL {
     
    		function conn() {
    			$this = new DAL;
    		}	
     
    		function dispose() {
    			$this->dispose();
    		}
     
     
    		///////////////////////////////////////////////////
    		//////////////////     LOGIN    ///////////////////
    		///////////////////////////////////////////////////		
    		function mylogin($user, $pass){
    			$this->conn();
    			$t = $this->mylogin($user, $pass);
    			if ($t > 0){
    				$_SESSION['userID'] = $t; 
    				$this->dispose();
    				return $t;
    			}
    			else {
    				$this->dispose();
    				return false;
    			}
    		}
    } // FIN CLASS
    ?>

    index.php
    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
    <? 
    	session_start();
     
    	//INCLUDE
    	include("inc/bll.php");
    	include("inc/util.php");
    	include("inc/error.php");
     
    	//VARIABLES
    	$badUser = "";
    	$error = array();
     
    	//VALIDATION
    	if ($_SERVER['REQUEST_METHOD'] == "POST"){
    		$user = $_POST['user'];
    		$pw = md5($_POST['pw']);
     
    		if($user == "" || $pw == "") {
    				$error[] = 1;
    				$_SESSION['userID'] = 0;
    				$_SESSION['security'] = 0;
    		}
    		else
    		{
    			$conn = new BLL;
    			$login = $conn->mylogin($user, $pw);
    			if ($login > 0){
    				$conn->dispose();			
    				header("location: home.php"); 
    			}
    			else{
    				$conn->dispose();
    				$error[] = 2;
    				$_SESSION['userID'] = 0;
    				$_SESSION['security'] = 0;		
    			}
     
    		}
    	}
     
     
    	// COLLECTE D'INFORMATION POUR LES MESSAGES D'ERREUR A AFFICHER
    	if (count($error) > 0){
    		$errormsg = "";
    		for ($x = 0; $x <= count($error); $x++){
    			if ($error[$x] > 0){
    				$errormsg .= gestionError($error[$x])."<br>";
    			}
    		}
    	}
     
    ?>
    <html>
    <head>
    <title>TITRE</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css/general.css" rel="stylesheet" type="text/css">
    </head>
     
    <body>
    <form name="form1" method="post" action="">
      <table width="760" border="0" align="center" cellpadding="0" cellspacing="0" class="text">
        <tr>
          <td colspan="2"><img src="i/logo.gif" width="760" height="84"></td>
        </tr>
        <tr>
          <td width="28%" height="20">&nbsp;</td>
          <td width="72%" height="20">&nbsp;</td>
        </tr>
        <tr>
          <td height="20">&nbsp;</td>
          <td height="20" class="error"><? echo $errormsg; ?></td>
        </tr>
        <tr>
          <td height="20" colspan="2"><table width="760" border="0" cellspacing="0" cellpadding="0">
            <tr class="text">
              <td height="20"><div align="right">Nom d'Usager&nbsp;:&nbsp; </div></td>
              <td height="20"><input name="user" type="text" class="text" id="user"></td>
            </tr>
            <tr class="text">
              <td height="20"><div align="right">Mot de Passe&nbsp;:&nbsp;</div></td>
              <td height="20"><input name="pw" type="password" class="text" id="pw"></td>
            </tr>
            <tr class="text">
              <td height="20">&nbsp;</td>
              <td height="20"><input type="submit" name="Submit" value="Valider"></td>
            </tr>
          </table></td>
        </tr>
      </table>
    </form>
    </body>
    </html>

    Lorsque je tente d'exécuter le code sur la version 5, il me donne tout simplement une page blanche avec rien dedans, même si j'affiche la source.

    Après plusieurs heures de recherche, de lecture sur les différents forums et à mettre tout en commentaire et activer peu à peu mon code ... voici la ligne qui cause tous les problèmes selon moi mais qui est primordiale dans l'ensemble de mon code.


    dans le fichier dal.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function conn(){
    			$this = new connection;	 // ICI LE PROBLÈME	
    		}
    il ne semble pas aimer $this = ...


    qqun a une idée du problème causé par PHP 5 ????

    Merci à l'avance

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par c4l3m
    Après plusieurs heures de recherche, de lecture sur les différents forums et à mettre tout en commentaire et activer peu à peu mon code ... voici la ligne qui cause tous les problèmes selon moi mais qui est primordiale dans l'ensemble de mon code.


    dans le fichier dal.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function conn(){
    			$this = new connection;	 // ICI LE PROBLÈME	
    		}
    il ne semble pas aimer $this = ...


    qqun a une idée du problème causé par PHP 5 ????

    Merci à l'avance
    Salut,

    Et ça marchait ça en php4 ?

    Parce qu'il me semble que c'est de toute façon incorrect.
    Tu dois plutôt lui donner une variable publique $conx et affecter dans le constructeur, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class DAL {
        public $cnx;
     
        __construct {
            $this->cnx = new connection;
        }
    }
    Et encore, ça dépend de ce qu'est "connection", mais j'imagine que c'est défini dans ton include précédent la classe.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut oui
    Oui tout ca fonctionne très bien sous PHP4.x

    connection est la classe connection qui est dans le fichier connection.php appelé par le fichier dal.php qui lui est appelé par bll.php

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Etonnant. Peut être qu'en php4, le $this était interprété comme une propriété.
    Quoi qu'il en soit, je maintiens ma première remarque.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut je suis un boulet
    Rebonjour,

    je n'arrive malheureusement pas à faire ce que j'ai en tête

    Je veux avoir une classe qui serait entre ma classe de connexion et ma page web pour faire la gestion de la requête. C'est la que se corse mes trucs et ca fait 8h que je buche ...

    Mon fichier s'appel dal.php et est une classe .. il fonctionne sur php4 mais pas php5 et j'aimerais arriver à le faire fonctionner.


    Dans ma page web j'aimerais appeler le tout comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $t = new DAL;
    $infoUser = $t->getUserInfos($userID);
    $t->dispose();
    Le problème majeur que je n'arrive pas à faire fonctionner est que l'objet DAL ne veut pas connecter et faire le traitement de la requête puis retourner un array des champs.

    Voici le traitement dans mon fichier DAL
    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
    function getUserInfos($userID){
    			$qry = "SELECT  * FROM `TBL_USERS` WHERE `fld_id` =".$userID.";";
    			$this->conn();
    			$this->query($qry);
    			if($this->num_rows() >= 1){
    				$t = array();
    				while ($this->next_record()){
    					$t[] = array(
    								$this->Record['fld_id'], 						// 0
    								$this->Record['fld_land'],
    								$this->Record['fld_honor'],
    								$this->Record['fld_gold'],
    								$this->Record['fld_food'],
    								$this->Record['fld_rock'],						// 5
    								$this->Record['fld_gf'],
    								$this->Record['fld_joy'],
    								$this->Record['fld_high_networth'],
    								$this->Record['fld_high_land'],
    								$this->Record['fld_high_honor'],				// 10
    								$this->Record['fld_total_land_explored'],
    								$this->Record['fld_total_atk_made'],
    								$this->Record['fld_total_win'],
    								$this->Record['fld_total_gain'],
    								$this->Record['fld_total_atk_suffered'],		// 15
    								$this->Record['fld_total_lost'],
    								$this->Record['fld_era']
    								);
    				}
    				$this->dispose();
    				return $t;
    			}
    			else 
    			{
    				return -1;
    			}
    		}
    J'ai fait une tentative avec le début de code de jml94 mais je n'arrive pas à jumeler ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class DAL {
        public $cnx;
     
        __construct {
            $this->cnx = new connection;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getUserInfos($userID){
    			$qry = "SELECT  * FROM `TBL_USERS` WHERE `fld_id` =".$userID.";";
    			$this->conn();
    			$this->query($qry);  ........
    Qqun peut me diriger pour bâtir le début de ma classe DAL svp ??

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Et bien moi, je ne ferais pas une mais deux classes !

    Une couche db pure et ta classe DAL, surcouche d'accès à la base.

    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
     
    <?php
    class clsMysql
    {
    	public $cnx;
    	public $query_result;
     
    	function __construct($serveur, $user, $motpasse, $dbname) {
    		$this->cnx = @mysql_connect($db_host, $db_username, $motpasse);
     
    		if ($this->cnx) {
    			if (@mysql_select_db($dbname, $this->cnx))
    				return $this->cnx;
    			else
    				return 'Database inconnue. MySQL error: '.mysql_error();
    		}
    		else
    			return 'Connexion au serveur impossible. MySQL error: '.mysql_error();
    	}
     
     
    	function requete($sql) {
    		$this->query_result = @mysql_query($sql, $this->cnx);
     
    		if ($this->query_result) return $this->query_result;
    		else                     return false;
    	}
     
     
    	function fetch_assoc($query_id = 0) {
    		return ($query_id) ? @mysql_fetch_assoc($query_id) : false;
    	}
     
     
    	function nb_results($query_id = 0) {
    		return ($query_id) ? @mysql_num_rows($query_id) : false;
    	}
     
     
    	function close() {
    		if ($this->cnx) {
    			if ($this->query_result)
    				@mysql_free_result($this->query_result);
     
    			return @mysql_close($this->cnx);
    		}
    		else
    			return false;
    	}
    }
    ?>
    et la classe DAL, faite à ta guise, le principe de l'accès aux données étant le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $myDb = new clsMysql ($serveur, $user, $motpasse, $dbname);
     
    $objDAL = new DAL ($myDb);
     
    // puis à l'intérieur de ta classe
    $resultat = $myDb->requete('SELECT truc, bidule FROM table_machin;')
    $curseur_des_resultats = $myDb->fetch_assoc($resultat);
    $nombre_de_lignes = $myDb->nb_results($resultat);
    // etc...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    merci pour ta classe connexion. Je la comprend bien, mais la où je suis pas sûr et voir même perdu est ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objDAL = new DAL ($myDb);
    tu indiques à l'intérieur de ta classe ... donc je devrais avoir qqchose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class DAL (){
     
     
    		function getUser($userID){
    			$resultat = $myDb->requete('SELECT * FROM TBL_USER WHERE fld_userID = '.$userID.';')
    			$curseur_des_resultats = $myDb->fetch_assoc($resultat);
    			$nombre_de_lignes = $myDb->nb_results($resultat);
    			return $resultat;
    		}
    	} // END CLASS
    Mais, que faire avec le paramêtre $myDb que tu passes à la classe DAL ?

    [edit]Malgré tout tes efforts ... je sais pas si tu arrives bien à comprendre ce que je tente de réaliser

    J'ai fait un fichier clsMysql.php avec ta classe

    et j'ai fait un simple fichier index.php afin de la tester et ca ne fonctionne pas ... c'est mon serveur, mes connaissances ou bien je devrais plus dormir pour mieux comprendre !?

    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
    <?
     
    	include("clsMysql.php");
     
    	$serveur 	= "mysql2.serveur.com";
    	$user 		= "MyUsername";
    	$motpass 	= "MyPW";
    	$dbname 	= "MyDbName";
     
    	$myDb = new clsMysql ($serveur, $user, $motpasse, $dbname);
     
     
    	$resultat = $myDb->requete('SELECT * FROM tbl_user;')
    	$curseur_des_resultats = $myDb->fetch_assoc($resultat);
    	$nombre_de_lignes = $myDb->nb_results($resultat);
     
    	echo $curseur_des_resultats."<br>";
    	echo $nombre_de_lignes."<br>";
     
    ?>
    [/edit]

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut,

    Que donne le message de sortie ?

    A noter que $db->fetch_assoc retourne un tableau de résultats dans lequel tu dois effectuer une itération.
    Mais $db->nb_resultats devrait donner quelquechose.

    Et c'est un code à main levée, alors je ne garantit pas non plus à 100%
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    ca ne donne absolument rien ...

    page blanche et rien dans le code source non plus.

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Par exemple ma gestion d'erreurs est foireuse.
    J'essaie de corriger :

    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
     
    <?php
    class clsMysql
    {
    	public $cnx;
    	public $query_result;
     
    	function __construct($serveur, $user, $motpasse, $dbname) {
    		$this->cnx = @mysql_connect($db_host, $db_username, $motpasse);
     
    		if ($this->cnx) {
    			if (@mysql_select_db($dbname, $this->cnx))
    				return $this->cnx;
    			else {
    				print 'Database inconnue. MySQL error: '.mysql_error();
                                    exit;
                            }
    		}
    		else {
    			print 'Connexion au serveur impossible. MySQL error: '.mysql_error();
                            exit;
                   }
    	}
     
     
    	function requete($sql) {
    		$this->query_result = @mysql_query($sql, $this->cnx);
     
    		if ($this->query_result) return $this->query_result;
    		else                     return false;
    	}
     
     
    	function fetch_assoc($query_id = 0) {
    		return ($query_id) ? @mysql_fetch_assoc($query_id) : false;
    	}
     
     
    	function nb_results($query_id = 0) {
    		return ($query_id) ? @mysql_num_rows($query_id) : false;
    	}
     
     
    	function close() {
    		if ($this->cnx) {
    			if ($this->query_result)
    				@mysql_free_result($this->query_result);
     
    			return @mysql_close($this->cnx);
    		}
    		else
    			return false;
    	}
     
    }
    ?>
    Ca va te donner des messages d'erreur en cas de mauvaise connexion. La page sera crade, ça peut se faire de manière beaucoup plus classe, mais je fais au plus vite.

    PS : Petite appartée : je préfère largement require_once que include pour inclure les classes.
    Je te laisse avec google pour plus d'infos là-dessus...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    aucun problème avec require ou require_once ...

    toujours rien et même si je fais pas echo pour la sortie et que je prend print_r();


    merci

  12. #12
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par c4l3m
    Salut,

    merci pour ta classe connexion. Je la comprend bien, mais la où je suis pas sûr et voir même perdu est ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objDAL = new DAL ($myDb);
    tu indiques à l'intérieur de ta classe ... donc je devrais avoir qqchose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class DAL (){
     
     
    		function getUser($userID){
    			$resultat = $myDb->requete('SELECT * FROM TBL_USER WHERE fld_userID = '.$userID.';')
    			$curseur_des_resultats = $myDb->fetch_assoc($resultat);
    			$nombre_de_lignes = $myDb->nb_results($resultat);
    			return $resultat;
    		}
    	} // END CLASS
    Mais, que faire avec le paramêtre $myDb que tu passes à la classe DAL ?


    Malgré tout tes efforts ... je sais pas si tu arrives bien à comprendre ce que je tente de réaliser
    En fait il y plusieurs façons de passer l'objet d'accès à la base.
    Je t'avais proposé Dans ce cas, il faut coder une propriété "db" à ton objet DAL et l'initialiser lors de l'instantiation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class DAL {
         private $m_db;
     
        __construct ($db) {
            $this->m_db = $db;
        }
    }
    Ainsi, DAL est réutilisable indépendemment de la connection, il suffit de lui indiquer quelle connexion il devra utiliser.

    PS :
    Citation Envoyé par c4l3m
    aucun problème avec require ou require_once ...

    toujours rien et même si je fais pas echo pour la sortie et que je prend print_r();


    merci
    Tu as pris la classe "corrigée" avec les erreurs qui s'impriment ?
    Je serais pas surpris qu'il y ait un problème de connexion. Ma première classe ne te disait rien en cas de problème à ce niveau.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    oui j'ai copié ton dernier code de la classe

  14. #14
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Pour l'instant je sèche, et c'est l'heure de rejoindre mes potes sur Counter-Strike.
    Je repasserais plus tard.

    Bon courage.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    j'ai trouvé un erreur dans la déclaration de mes variables de serveur

    j'avais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $motpass = "asdfasdf" ;
    
    $myDb = new clsMysql ($serveur, $user, $motpasse, $dbname);
    malgré cela toujours ne s'affiche

  16. #16
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par c4l3m
    j'ai trouvé un erreur dans la déclaration de mes variables de serveur
    Et rien ne s'affichais en erreur : ma gestion d'erreur est donc bien foireuse.
    Faudra que je fasse du code testé sur une plateforme avec php alors ...
    Mais pas ce soir...

    Je continues à chercher, mais juste un petit détail à côté : es-tu sûr que le php5 soit interprété par défaut. Sinon, il faut soit un réglage dans .htaccess (pas top) ou simplement bien mettre l'extension php5 en fin de fichier pour que le bon interpréteur soit choisi.
    Car si c'est php4 et non php5 qui interprète, il ne tient pas compte du constructeur __construct.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    J'ai fait un test et c'est bien PHP5 qui est exécuté par défaut sur les extension .php

    je lache pas ... je vais finir par y arriver

  18. #18
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    J'ai lu un thread qui peut nous aider pour la connexion à la BDD :

    http://www.developpez.net/forums/sho...d.php?t=279931

    J'ai toujours pas le temps de tester, mais je pensais mettre en pratique pour repérer l'erreur :
    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
     
    <?php
    class clsMysql
    {
    	public $cnx;
    	public $query_result;
     
    	function __construct($serveur, $user, $motpasse, $dbname) {
                    try {
    		$this->cnx = @mysql_connect($db_host, $db_username, $motpasse);
     
    		if ($this->cnx) {
    			if (@mysql_select_db($dbname, $this->cnx))
    				return $this->cnx;
    			else {
    				throw new Exception('Database inconnue. MySQL error: '.mysql_error());
                            }
    		}
    		else {
    			throw new Exception('Connexion au serveur impossible. MySQL error: '.mysql_error());
                   }
            }
            catch(Exception $myException)
             { echo 'Erreur : '.$myException->getMessage(); }
     
    	}
     
     
    	function requete($sql) {
    		$this->query_result = @mysql_query($sql, $this->cnx);
     
    		if ($this->query_result) return $this->query_result;
    		else                     return false;
    	}
     
     
    	function fetch_assoc($query_id = 0) {
    		return ($query_id) ? @mysql_fetch_assoc($query_id) : false;
    	}
     
     
    	function nb_results($query_id = 0) {
    		return ($query_id) ? @mysql_num_rows($query_id) : false;
    	}
     
     
    	function close() {
    		if ($this->cnx) {
    			if ($this->query_result)
    				@mysql_free_result($this->query_result);
     
    			return @mysql_close($this->cnx);
    		}
    		else
    			return false;
    	}
     
    }
    ?>
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    désolé j'ai fait 2-3 tests et comme j'avais réussi à faire fonctionner le tout, dans l'énervement je ne suis pas revenu l'écrire

    mais pour la bonne cause j'insère mon code ici

    connection.php
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    <?
    	class connection {
     
    		var $Host     = "mysql2.serveur.com"; // Hostname of our MySQL server.
    		var $Database = "DBName"; // Logical database name on that server.
    		var $User     = "UserName"; // User und Password for login.
    		var $Password = "PassWord";
     
    		var $Link_ID  = 0;  // Result of mysql_myconnect().
    		var $Query_ID = 0;  // Result of most recent mysql_query().
    		var $Record   = array();  // current mysql_fetch_array()-result.
    		var $Row;           // current row number.
     
    		var $Errno    = 0;  // error state of query...
    		var $Error    = "";
     
     
    		## halt() start ##
    		function halt($msg) {
    			printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
    			printf("<b>MySQL Error</b>: %s (%s)<br>\n",
    				$this->Errno,
    				$this->Error);
    			die("Session halted.");
    		}		
    		## halt() end ##
     
    		## connect() start ##
    		function connect() {
    			if ( 0 == $this->Link_ID ) {
    				$this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
    				if (!$this->Link_ID) {
    					$this->halt("Link-ID == false, connect failed");
    				}
    			  	if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
    					$this->halt("cannot use database ".$this->Database);
    			  	}
    			}
    		}	
    		## connect() end ##
     
    		## dispose() start ##
    		function dispose() {
    			$this->Link_ID = -1;
    		}
    		## dispose() end ##
     
    		## query() start ##
    		function query($Query_String) {
    			$this->connect();
     
    			$this->Query_ID = mysql_query($Query_String,$this->Link_ID);
    			$this->Row   = 0;
    			$this->Errno = mysql_errno();
    			$this->Error = mysql_error();
    			if (!$this->Query_ID) {
    				$this->halt("Invalid SQL: ".$Query_String);
    			}
     
    			return $this->Query_ID;
    		}		
    		## query() end ##
     
    		## next_query() start ##			
    		function next_record() {
    			$this->Record = mysql_fetch_array($this->Query_ID);
    			$this->Row   += 1;
    			$this->Errno = mysql_errno();
    			$this->Error = mysql_error();
     
    			$stat = is_array($this->Record);
    			if (!$stat) {
    				mysql_free_result($this->Query_ID);
    				$this->Query_ID = 0;
    			}
    			return $stat;
    		}		
    		## next_query() end ##
     
    		## seek() start ##
    		function seek($pos) {
    			$status = mysql_data_seek($this->Query_ID, $pos);
    			if ($status)
    				$this->Row = $pos;
    			return;
    		}		
    		## seek() end ##
     
    		function num_rows() {
    			return mysql_num_rows($this->Query_ID);
    		}
     
    		function num_fields() {
    			return mysql_num_fields($this->Query_ID);
    		}
     
    		function f($Name) {
    			return $this->Record[$Name];
    		}
     
    		function p($Name) {
    			print $this->Record[$Name];
    		}
     
    		function affected_rows() {
    			return @mysql_affected_rows($this->Link_ID);
    		}
     
    	}
    ?>

    Fichier dal.php
    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
    <?	
    	class DAL {
    		private $m_db;
     
    		function __construct ($db) {
    			$this->m_db = $db;
    		}		
     
    		function dispose(){
    			$this->m_db = NULL;
    		}
     
    		///////////////////////////////////////////////////
    		//////////////////     LOGIN    ///////////////////
    		///////////////////////////////////////////////////
    		function mylogin($user, $pass){
    			if ($user != "" OR $pass != ""){
    				$qry = "SELECT * FROM tbl_user WHERE fld_username = '".$user."' AND fld_pw = '".$pass."' LIMIT 1;";			
    				$this->m_db->query($qry);
    				if($this->m_db->num_rows() == 1){
    					$this->m_db->next_record();
    					$t = $this->m_db->Record['fld_userID'];
    					//$this->m_db->dispose();
    					return $t;
    				}
    				else
    				{
    					return -1 ;
    				}
    			}
    			else
    			{
    				return -1 ;
    			}
    		}
     
     
     
     
    	} // END CLASS
    ?>
    Fichier login.php
    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
    97
    98
    99
    100
    101
    <? 
     
     
    	//INCLUDE
    	require_once("inc/connection.php");
    	require_once("inc/dal.php");
    	//require_once("inc/util.php");
    	include("inc/error.php");
     
     
    	session_start();
    	//VARIABLES
    	$badUser = "";
    	$error = array();
     
    	//VALIDATION
    	if ($_SERVER['REQUEST_METHOD'] == "POST"){
    		$user = $_POST['user'];
    		$pw = md5($_POST['pw']);
     
    		if($user == "" || $pw == "") {
    				$error[] = 1;
    				$_SESSION['userID'] = 0;
    				$_SESSION['security'] = 0;
    		}
    		else 
    		{
    			$myDb = new connection;
    			$conn = new DAL($myDb);
    			//print_r($conn);
     
    			$login = $conn->mylogin($user, $pw);
     
    			if ($login > 0){
    				$_SESSION['userID'] = $login;
    				//$conn->dispose();			
    				header("location: home.php"); 
    			}
    			else{
    				//$conn->dispose();
    				$error[] = 2;
    				$_SESSION['userID'] = 0;
    				$_SESSION['security'] = 0;		
    			}
    		}
    	}
     
     
    	// COLLECTE D'INFORMATION POUR LES MESSAGES D'ERREUR A AFFICHER
    	if (count($error) > 0){
    		$errormsg = "";
    		for ($x = 0; $x <= count($error); $x++){
    			if ($error[$x] > 0){
    				$errormsg .= gestionError($error[$x])."<br>";
    			}
    		}
    	}
     
     
    ?>
    <html>
    <head>
    <title>Samtack - Montr&eacute;al</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css/general.css" rel="stylesheet" type="text/css">
    </head>
     
    <body>
    <form name="form1" method="post" action="">
      <table width="760" border="0" align="center" cellpadding="0" cellspacing="0" class="text">
        <tr>
          <td colspan="2"><img src="i/samtack.gif" width="760" height="84"></td>
        </tr>
        <tr>
          <td width="28%" height="20">&nbsp;</td>
          <td width="72%" height="20">&nbsp;</td>
        </tr>
        <tr>
          <td height="20">&nbsp;</td>
          <td height="20" class="error"><? echo $errormsg; ?></td>
        </tr>
        <tr>
          <td height="20" colspan="2"><table width="760" border="0" cellspacing="0" cellpadding="0">
            <tr class="text">
              <td height="20"><div align="right">Nom d'Usager&nbsp;:&nbsp; </div></td>
              <td height="20"><input name="user" type="text" class="text" id="user"></td>
            </tr>
            <tr class="text">
              <td height="20"><div align="right">Mot de Passe&nbsp;:&nbsp;</div></td>
              <td height="20"><input name="pw" type="password" class="text" id="pw"></td>
            </tr>
            <tr class="text">
              <td height="20">&nbsp;</td>
              <td height="20"><input type="submit" name="Submit" value="Valider"></td>
            </tr>
          </table></td>
        </tr>
      </table>
    </form>
    </body>
    </html>

  20. #20
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Super, félicitations.

    Il ne manque que le tag "résolu" ou "fait" as you wish.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

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

Discussions similaires

  1. [POO] Erreur avec $this
    Par Touareg dans le forum Langage
    Réponses: 6
    Dernier message: 05/03/2007, 07h29
  2. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  3. [POO] Problème avec setInterval/méthodes d'écriture
    Par Lpu8er dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/07/2006, 15h37
  4. [POO] Probleme avec $this
    Par cubepiege dans le forum Langage
    Réponses: 5
    Dernier message: 01/03/2006, 15h39
  5. [POO] Problème avec l'utilisation de classes.
    Par sekiryou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 18h54

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