Page 1 sur 2

Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 04:58
par Simax150
Bonjour à tous !
J'ouvre ce topic car je suis en train de programmer un système d'activation de compte pour mon site. Pour activer un compte, php doit envoyer en mail au futur membre, avec le lien d'activation.

Je teste ce script localement, sur Wamp, et j'ai quelque problème pour l'envoi du mail. J'ai fait quelque recherche et j'ai trouvé qu'il fallait définir plusieurs paramètre. Je change donc php.ini :

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.mail.yahoo.fr
auth_username = *mon add. e-mail*
auth_password = *mon mot de passe*

; http://php.net/smtp-port
smtp_port = 465

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = *mon add. e-mail*


erreur :
Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()


en essayant avec le port 25 au lieu d 465 :
Warning: mail() [function.mail]: SMTP server response: 530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
.

et mon autre problème est celui ci :


include("includes/connexion_mysql.php");//On se connecte à la base sql

if (isset($_GET['nbre']))
{
$clef = $_GET['nbre'];//on récupere la clef d'activation dans une variable si elle existe
}
else
{
$clef = false;//sinon, la variable clef est fausse
}



$activation = $bdd->query('SELECT activation FROM info_utilisateurs'); //On récupère le champs activation, pour le comparer avec la clef d activation
//du $_GET

if ($clef != false)//si la variable clef n'est pas fausse :
{
while ($abc = $activation->fetch())
{
if (in_array ($clef, $activation) == true)//si la clef est trouvée dans l'array :
{
$trouve = true;//la variable trouve est juste
}

}
}

$abc->closeCursor();


erreur :
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\alea\activation.php on line 25


Merci d'avance pour votre aide !

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 07:57
par stopher
Slt ,
SMTP = smtp.mail.yahoo.fr
auth_username = *mon add. e-mail*
auth_password = *mon mot de passe*
Tu tentes d'utiliser directement le smtp de yahoo ( d'ailleurs l'adresse ne semble pas correcte ).
De plus les connexions passent en clair ( ce que yahoo doit refuser je pense ? ) utilisateurs de yahoo .. plus d'infos ?

Commences donc pas mettre le smtp de ton FAI , pour tester localement ce sera parfait .

Cependant n'hésites pas à utiliser une bibliothèque solide pour forger tes mails tel que Rmail


Ch.

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 08:14
par Patriboom
Après m'être cassé les dents souvent à essayer de faire comme toi, j'ose répéter: utilise les coordonnées (SMTP) de ton Fournisseur d'Accès Internet. Avec certains, c'est la seule façon de faire. Tu y mettras donc les mêmes paramètres smtp que ceux que tu as mis dans ton logiciel de courriel.

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 12:24
par Simax150
Alors voila :
j'ai essayé avec ça :
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.orange.fr

; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]
et l'erreur :
Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <[email protected]>: Recipient address rejected: Missing Authentication in C:\wamp\www\alea\testarrondis.php on line 32
pourtant, sur http://www.commentcamarche.net/faq/893- ... fai#orange :

Serveur POP : pop.orange.fr
Serveur SMTP : smtp.orange.fr
Serveur SMTP sécurisé : smtp-msa.orange.fr Port : 587 (activer l'authentification smtp)
Serveur IMAP : imap.orange.fr

Je vais télécharger rmail de ce pas.
Merci pour vos réponses !

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 13:30
par stealth35
et en mettant avec le port 587

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 31 mars 2010, 17:53
par Patriboom
Si tu mets orange.fr dans ton smtp, il faut que tu donnes aussi l'adresse courriel orange.fr qui t'es fournie.

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 02 avr. 2010, 11:41
par Simax150
D'accord, je vais essayer ça.
Mais comment régler ce problème de fetch ?
Merci d'avance :D

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 02 avr. 2010, 16:09
par Simax150
include('includes/connexion_mysql.php');
if ((isset ($_POST['pseudo'])) AND (isset ($_POST['mot_de_passe'])))
	{
	
		$pseudo = $_POST['pseudo'];
		$mot_de_passe = $_POST['mot_de_passe'];
		
		$reponse = $bdd->query("SELECT * FROM info_utilisateurs");
		
		while ($donnees = $reponse->fetch())
		{
		
			
		
		}
erreur : "Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\alea\index.php on line 20"

ligne 20 :
while ($donnees = $reponse->fetch())
Aidez moi, s'il vous plait :cry:

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 02 avr. 2010, 17:30
par Patriboom
Si c'est du code que t'as emprunté, on doit supposer qu'il fonctionne.
S'il fonctionne, ce n'est donc pas dans la référence à l'objet fetch qu'il chercher, mais dans la requête qui lui est soumise.

As-tu essayer ta requête séparément du programme?

Il faudrait que tu soumettes SELECT * FROM info_utilisateurs à PHPMyAdmin pour t'assurer que c'est bon (faute de frappe, manque caractère, etc).

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 02 avr. 2010, 17:57
par Dr@ke
Il y a trop de parenthèses ici:
if ((isset ($_POST['pseudo'])) AND (isset ($_POST['mot_de_passe'])))
:
if (isset($_POST['pseudo']) && isset($_POST['mot_de_passe']))
Tu peux aussi simplifier:
if (isset($_POST['pseudo'], $_POST['mot_de_passe']))
Ensuite je te conseille de toujours prendre comme habitude de mettre ton include juste au dessus de tes requêtes et de ne surtout pas les séparer par un test quelconque.

Sinon que ce passe t-il si ton test est négatif?
-> Eh bien connexion SQL sans requête...
include('includes/connexion_mysql.php');
$reponse = $bdd->query("SELECT * FROM info_utilisateurs");
En partant du principe que ce qui est dans ton fichier connexion_mysql.php est correct évidemment :)

Je sais, je me contredis un peu pour le AND, mais finalement, autant utiliser AND et OR quand cela est nécessaire.

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 03 avr. 2010, 04:50
par Simax150
include('includes/connexion_mysql.php');

if (isset($_GET['deco'])) //déconnexion
{
	if ($_GET['deco'])
	{
		session_destroy();
	}
}

if (isset ($_POST['pseudo']) AND isset ($_POST['mot_de_passe']))
	{
	
		$pseudo = $_POST['pseudo'];
		$mot_de_passe = $_POST['mot_de_passe'];
		
		include('includes/connexion_mysql.php');
		$reponse = $bdd->query("SELECT * FROM info_utilisateurs");
		
		while ($abc = $reponse->fetch())
		{
		
			
		
		}
			
	}
et toujours l'erreur :
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\alea\index.php on line 21
Phpmyadmin accepte ma requete.

Mon problème serait-il sans solution ? :?

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 03 avr. 2010, 04:55
par Dr@ke
Tu as mis deux fois ton include, donc 1 connexion SQL de trop.
La première est inutile.

Maintenant, montre ton fichier connexion_mysql.php.

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 03 avr. 2010, 12:17
par Simax150
:lol: :lol: :lol:
Vous n' allez pas le croire... en fait, depuis le début, je ne me connectais pas à la bonne base...
(j'ai honte...).
Maintenant ça marche, merci énormément pour votre aide à tous !

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 03 avr. 2010, 12:22
par Simax150
Heu, une dernière question, qui n'as pas trop rapport au sujet principal : comment faire la partie graphisme de mon site en sachant que je ne suis vraiment pas doué pour ce genre de chose ? Puis-je trouver quelqu'un d'intéressé sur un forum de graphisme ? C'est gratuit ?
Merci pour vos réponses et encore désolé pour la bdd :D

Re: Fatal error: Call to a member function fetch() et mail smtp

Posté : 03 avr. 2010, 17:28
par Patriboom
Tu peux recourir à un CMS. Joomla est très répandu, bâti sur PHP/MySQL et fort bien garni en templates. Joomla.org