A quoi sert l'Arobase devant le THIS ?

Eléphanteau du PHP | 10 Messages

28 déc. 2005, 08:36

Salut à tous,

La classe suivante fonctionne, mais je ne comprends pas l'utilité de l'arobase devant le this dans :
if(!$result = @$this->dbO->query($sql)){

A vous tous.
Irunea
<?php
    class  BaseDeDonnees {
	    public $Host ;
		public $User ;
		public $Password ;
		protected $dbO;


		// le constructeur initialise les variables
		public function __construct(){
		    $this->Host = 'localhost';
			$this->User = 'root';
			$this->Password = '';
			//echo "construction OK <br>";
		}// fin du constructeur

		// méthode de connection à la base	
		public function doConnect($Base){
		      if(!$this->dbO = new mysqli($this->Host,$this->User,$this->Password,$Base)) {
			  echo  "echec connexion <br>" ;  
			  }
		}// fin de doConnect
		
		// méthode d'exécution d'une requête
		public function doQuery($sql){
             if(!$result = @$this->dbO->query($sql)){
			     echo  "echec execution requete  <br>" ;  
			 }
			 else {
			     return $result;
			 }
		}//fin doQuery
		
		// méthode d'exécustion d'une requête qui renvoi un jeu d'enregistrements SELECT...
		function doArrayQuery($sql){
		     $result = @$this->dbO->query($sql);
			 $R = array();
			 while($data = $result->fetch_assoc()){
			      $R[]  = $data; 
			 }// fin du while
			 return $R;
		}// fin doArrayQuery
		
		function doAssoc($result){
		    return $this->result->fetch_assoc;
		}
		
		function  doClose(){
		$thisdbO->close;
		echo "la connexion est fermée";
		}

}//fin de la classe

$db = new  BaseDeDonnees;
$db->doConnect('test');
$result=$db->doArrayQuery('SELECT * FROM chiffres');
print_r($result);

?>
Apprenons à penser par nous-même. Si nous ne le faisons pas, d'autres le ferons pour nous...

Mammouth du PHP | 19672 Messages

28 déc. 2005, 09:55

Le @ est à bannir en développement, il sert à indiquer à PHP de ne pas afficher de messages d'erreur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Francky683
Invité n'ayant pas de compte PHPfrance

28 déc. 2005, 21:15

Bonjour,
J'ai récememnt eu le même problème; j'ai uploadé mes fichiers sur l'hébergeur d'un client et j'avais toujours le même message d'erreur :
Notice: Undefined index: content in c:\Inetpub\wwwroot2\hard-clan.com\NEWSITE\_header.php on line 22
et la ligne 22 est :

Code : Tout sélectionner

if($_GET['content']){ $current_content = $_GET['content']; } else{ $current_content = 'news'; }
J'obtient aussic e mesage d'erreur quand il s'agit de $_POST et de $_SESSION ... Que devrais-je faire? La seule issus que j'ai trouvé est d'ajouter un @ en avant de mes variables. La version de PHP est PHP Version 4.3.10.

Respectueusement,

Francis Brassard.

Mammouth du PHP | 19672 Messages

28 déc. 2005, 21:52

non, il faut procéder autrement :
if(isset($_GET['content']))
{
    $current_content = $_GET['content'];
}
else
{
    $current_content = 'news';
}
ou plus simplement :
$current_content = isset($_GET['content']) ? $_GET['content'] : 'news';
Je précise un détail : faire simplement if($_GET['content']) revient à écrire de façon étendue:
if($_GET['content'] == true)
Or ce n'est à priori pas ce que tu cherches à vérifier puisque tu veux savoir si la variable existe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Francky683
Invité n'ayant pas de compte PHPfrance

29 déc. 2005, 01:13

Merci beaucoup, que devrais-je faire pour mes $_POST ... Jai un formulaire qui a des champs dans le genre de Name, Handle, etc ... et puis, un champs Hidden qui a la valeur True ... Admettons que je fais submit, si isset($_POST hidden ), je rentre les informations dans ma table ... mais jai toujours cette erreur quand je met seulement $_POST ...

Respectueusement,

Francis Brassard.[/list]

Mammouth du PHP | 19672 Messages

29 déc. 2005, 01:23

Le fonctionnement pour $_POST ou $_GET est sensiblement le même : donc ce que j'ai dit pour $_GET reste valable si ton formulaire est en method="post" en remplaçant $_GET par $_POST
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Francky683
Invité n'ayant pas de compte PHPfrance

29 déc. 2005, 18:54

Ok, mais c'est pas mon problème ... J'ai un formaulaire d'enregistrement et, quand $_POST['verify'], qui est "hidden" est enregistré, sur la même page, le tout est enregistré dans ma base de données ... Le problème est que quand !isset($_POST['verify']), je reçoit le message d'erreur comme quoi mes variables $_POST ne sont pas set ...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 déc. 2005, 20:16

peut tu nous montrer un bout de ce code qui pose probleme ?

parceque si tu t'y prend bien avec les renseignements de Cyrano tu devrais parfaitement résoudre ce probleme (je pense :wink: ).

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 1 Messages

29 déc. 2005, 21:12

EDIT : Tout e été arrangé, j'ai trouvé mon erreur ...

Merci beaucoup!

Respectueusement,

Francis Brassard.

Eléphanteau du PHP | 18 Messages

29 déc. 2005, 23:34

Tu as trouvé, c'est bien, fais en profiter les copains...

ton hébergeur utilise surement Apache et il a dû valider l'affichage de toutes les erreurs, sur notre serveur au pro, je n'ai fait afficher que les erreurs et non les warnings.

EDIT : Tout e été arrangé, j'ai trouvé mon erreur ...

Merci beaucoup!

Respectueusement,

Francis Brassard.