Envoi de mail en php

Bonjour,

J'ai crée un système de réservation sur PHP, mais quand je le lance en local j'ai un message d'erreur.
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp64\www\...

En cherchant sur google, j'ai lu que c'était WAMP qui était mal configuré ?
 

UNIVERSAL

---lcdcjve---
VIB
Bonjour,

J'ai crée un système de réservation sur PHP, mais quand je le lance en local j'ai un message d'erreur.
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp64\www\...

En cherchant sur google, j'ai lu que c'était WAMP qui était mal configuré ?
Salama tadawit,
Peut être que @farid_h pourra t'aider.
 

Sanid

Je ne suis pas là !
VIB
Bonjour,

J'ai crée un système de réservation sur PHP, mais quand je le lance en local j'ai un message d'erreur.
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp64\www\...

En cherchant sur google, j'ai lu que c'était WAMP qui était mal configuré ?
La réponse est dans le message d'erreur.
Un mail s'envoie via un serveur smtp.
Ton wamp est configuré pour se connecter à un serveur smtp en local sur le port 25.
Si tu n'as pas installé de serveur smtp sur la machine qui ecoute sur le port 35 wamp ne peut pas s'y connecter.
Wamp n'est pas fourni avec un serveur smtp inclus.
Soit t'installes un serveur smtp. Solution complexe.
Soit tu configures wamp avec un serveur smtp style gmail ou autre.
Tape wamp smtp sur youtube t'auras des tutos.
 
La réponse est dans le message d'erreur.
Un mail s'envoie via un serveur smtp.
Ton wamp est configuré pour se connecter à un serveur smtp en local sur le port 25.
Si tu n'as pas installé de serveur smtp sur la machine qui ecoute sur le port 35 wamp ne peut pas s'y connecter.
Wamp n'est pas fourni avec un serveur smtp inclus.
Soit t'installes un serveur smtp. Solution complexe.
Soit tu configures wamp avec un serveur smtp style gmail ou autre.
Tape wamp smtp sur youtube t'auras des tutos.

Merci Sanid je regard ce soir après le boulot, je vous dis quoi. :cool:
 

farid_h

<defunct>
Contributeur
Sanid a deja repondu.

Pour envoyer des mails par PHP, tu peux ou bien executer le script sur un serveur ou tourne un sendmail/postfix/... deja configure et dans de cas la, tu connectes sur port 25 localhost; ou tu dois configurer ton module PHP pour qu'il se connecte a un autre serveur sur generalement un autre port... et dans ce cas la, tu devrais generalement aussi configurer un Username et mot de passe...
 
Salam,

Merci à @Sanid et à @farid_h j'y suis arrivé. :):cool:
J'ai opté pour la deuxième solution c'est à dire configurer wamp avec un serveur smtp(gmail).
Je reçois bien le mail.

Merci encore !
 

Pièces jointes

  • php.png
    php.png
    7 KB · Affichages: 12
Je reviens vers vous car j'ai de nouveau un petit soucis !

En local mon panel administrateur fonctionne parfaitement mais lorsque j'ai mis mon site en ligne. Le panel ne répond plus.

Est-ce un soucis avec le .htaccess ?

The server encountered an internal error or misconfiguration and was unable to complete your request.


Please contact the server administrator at webmaster@000webhost.io to inform them of the time this error occurred, and the actions you performed just before this error.


More information about this error may be available in the server error log.
 

farid_h

<defunct>
Contributeur
Qu'est-ce qu'il y a dans l'error log (pas l'access log) d'Apache? C'est la que tu vas trouver la faute...

Edit: C'est une erreur dans ton script (PHP?), et cette erreur va etre affichee dans error_log d'Apache.
 
Qu'est-ce qu'il y a dans l'error log (pas l'access log) d'Apache? C'est la que tu vas trouver la faute...

Si j'enlève le .htaccess j'ai ceci comme erreur.

Erreur:SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::4' (using password: NO)

C'est une erreur dans ton script (PHP?), et cette erreur va etre affichee dans error_log d'Apache.

Normalement mon script fonctionne, car j'ai aucun problème en local.

Merci^^
 

farid_h

<defunct>
Contributeur
Si j'enlève le .htaccess j'ai ceci comme erreur.

Erreur:SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::4' (using password: NO)



Normalement mon script fonctionne, car j'ai aucun problème en local.

Merci^^
Ca arrive souvent cela quand tu deploies un script sur un serveur different du serveur local. Apparament, t'as pas configure la connexion avec le serveur SQL correctement. Tu utilises quoi comme panel? Cpanel? Plesk? etc? Quand tu configures une DB via ce panel, faut reprendre les mots de passe dans ton script.
 
Dernière édition:
Ca arrive souvent cela quand tu deploies un script sur un serveur different du serveur local. Apparament, t'as pas configure la connexion avec le serveur SQL correctement. Tu utilises quoi comme panel? Cpanel? Plesk? etc? Quand tu configures une DB via ce panel, faut reprendre les mots de passe dans ton script.

Alors moi j'utilise WAMP / PhpMyAdmin pour créer ma BD et voici mon script pour la connexion à ma BD!

PHP:
<?php
try
{
   $bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '') or die(print_r($bdd->errorInfo()));
   $bdd->exec('SET NAMES utf8');
}
catch(Exception $e)
{
   die('Erreur:'.$e->getMessage());
}
?>
 

farid_h

<defunct>
Contributeur
T'arrives a te connecter via phpMyAdmin a ta DB sur le serveur heberge (utilises le phpMyAdmin sur ce serveur pour tester, tu le trouves generalement sur l'admin panel)?
 
T'arrives a te connecter via phpMyAdmin a ta DB sur le serveur heberge (utilises le phpMyAdmin sur ce serveur pour tester, tu le trouves generalement sur l'admin panel)?

En local j'arrive à me connecter sans problème à ma BD mais je n'y arrive pas avec 000webhost.

dans mon fichier .htacess j'ai ceci

PHP:
AuthName "Connexion au back office"
AuthType Basic
AuthUserFile "C:\wamp\www\taxi\backoffice\.htpasswd"
Require valid-user

et dans mon fichier .htpasswd j'ai ceci

PHP:
infoprog:123456

dans mon fichier BDD.php j'ai essayé de mettre infoprog et 123456 à la place de 'root' et ' ', mais ça n'a rien donné...

J'ai vraiment aucune idée du problème, peut-être que c'est un module de wamp qui n'est pas activé ?
 

Pièces jointes

  • image.png
    image.png
    40 KB · Affichages: 4
  • pannel.png
    pannel.png
    86.6 KB · Affichages: 4

farid_h

<defunct>
Contributeur
Le probleme, c'est que sur 000webhost, tu as probablement configure ta DB d'accepter un username/mot de passe qui ne sont pas root/<none>. Faut mettre ces memes credentials dsns ton script si tu veux que ton script se connecte a la DB de 000webhost. Ca n'a rien a avoir avec .htaccess...
 

UNIVERSAL

---lcdcjve---
VIB
Le probleme, c'est que sur 000webhost, tu as probablement configure ta DB d'accepter un username/mot de passe qui ne sont pas root/<none>. Faut mettre ces memes credentials dsns ton script si tu veux que ton script se connecte a la DB de 000webhost. Ca n'a rien a avoir avec .htaccess...
Salam farid,
Pas compris, mais j'aime :)
 
Le probleme, c'est que sur 000webhost, tu as probablement configure ta DB d'accepter un username/mot de passe qui ne sont pas root/<none>. Faut mettre ces memes credentials dsns ton script si tu veux que ton script se connecte a la DB de 000webhost. Ca n'a rien a avoir avec .htaccess...

Sur Webhost je vois test1348 et mon mot de passe qui est crypté est soufiane j'utilise ces identifiants pour me connecter sur filezila.
 

Pièces jointes

  • webhost.png
    webhost.png
    18.6 KB · Affichages: 3

farid_h

<defunct>
Contributeur
Salam farid,
Pas compris, mais j'aime :)
:)

Il doit remplacer:

Code:
$bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '') or die ...

par

Code:
$bdd = new PDO('mysql:host=localhost;dbname=projet', 'SOMEUSER', 'SOMEPASS') or die ...

Et meme SOMEPASS, il faut verifier s'il ne doit pas d'abord le transformer via une fonction de hash-age...
 

farid_h

<defunct>
Contributeur
Sur Webhost je vois test1348 et mon mot de passe qui est crypté est soufiane j'utilise ces identifiants pour me connecter sur filezila.
Okay, mais c'est pas necessairement les memes identifiants/mot de passe pour la DB. Car le serveur SQL esf independant de l'acces a ton compte sur Webhost. Il faut utiliser l'identifiant et le mot de passe que tu as donne lorsque t'as cree la DB dans le panel.
 
Okay, mais c'est pas necessairement les memes identifiants/mot de passe pour la DB. Car le serveur SQL esf independant de l'acces a ton compte sur Webhost. Il faut utiliser l'identifiant et le mot de passe que tu as donne lorsque t'as cree la DB dans le panel.

Quand je tape root/<none> dans le fichier .htacess ça fonctionne !!
 

Pièces jointes

  • merci Farid.png
    merci Farid.png
    145.4 KB · Affichages: 0

farid_h

<defunct>
Contributeur
Oui c'était ça tu avais raison ! Le problème venait bien du mot de passe. thank you a lot !!
You're welcome. C'est un classique du web developpement: l'environment de production differe toujours de l'environment de developpement et chaque foi qu'on doit deployer une solution developpee chez soi, il y a ce genre de petits problemes. :)
 

UNIVERSAL

---lcdcjve---
VIB
:)

Il doit remplacer:

Code:
$bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '') or die ...

par

Code:
$bdd = new PDO('mysql:host=localhost;dbname=projet', 'SOMEUSER', 'SOMEPASS') or die ...

Et meme SOMEPASS, il faut verifier s'il ne doit pas d'abord le transformer via une fonction de hash-age...
merci mais ne te fatigue pas, je suis rouillé de ce coté là :D je n'y pige que-dalle ^^
 
You're welcome. C'est un classique du web developpement: l'environment de production differe toujours de l'environment de developpement et chaque foi qu'on doit deployer une solution developpee chez soi, il y a ce genre de petits problemes. :)

J'espère en tout les cas qu'avec un peu d'expériences j'arriverais à trouver des solutions beaucoup plus rapidement et tout seul.
 

farid_h

<defunct>
Contributeur
merci mais ne te fatigue pas, je suis rouillé de ce coté là :D je n'y pige que-dalle ^^
C'est pas vraiment complique. Son script communique avec un serveur SQL. Chez lui, dans son systeme WAMP, il utilise ce serveur SQL tout seul, et il y avait un compte 'root' sans mot de passe. Mais chez son hebergeur, le serveur SQL est shared, utilise par plusieurs clients en meme temps. Bien evidament qu'il ne va pas y obtenir et utiliser le compte 'root' avec un mot de passe vide comme chez lui a la maison. Chez son hebergeur, il doit utiliser un identifiant et un mot de passe pour se connecter a ce serveur SQL. Et pour ca, il doit donner ces infos a son script.
 

UNIVERSAL

---lcdcjve---
VIB
C'est pas vraiment complique. Son script communique avec un serveur SQL. Chez lui, dans son systeme WAMP, il utilise ce serveur SQL tout seul, et il y avait un compte 'root' sans mot de passe. Mais chez son hebergeur, le serveur SQL est shared, utilise par plusieurs clients en meme temps. Bien evidament qu'il ne va pas y obtenir et utiliser le compte 'root' avec un mot de passe vide comme chez lui a la maison. Chez son hebergeur, il doit utiliser un identifiant et un mot de passe pour se connecter a ce serveur SQL. Et pour ca, il doit donner ces infos a son script.
Ok c'est très clair.
 

Sanid

Je ne suis pas là !
VIB
J'espère en tout les cas qu'avec un peu d'expériences j'arriverais à trouver des solutions beaucoup plus rapidement et tout seul.
Tu devrais chercher à comprendre le principe de fonctionnement général d'un site web en php avec mysql pour avoir une vision d'ensemble de la chose.
Si à chaque fois tu ne cherches qu'à corriger un problème par du code tu vas sans arret bloquer sur des broutilles comme là.
 
Haut