PHP

Problème d'envoi mail suite à l'inscription

Non Résolu

Bonjour,


J'ai tout recommencé le formulaire d'inscription. Mais voilà avec WampServer j'ai des erreurs lors de l'envoi d'inscription à la BDD et bien entendu rien ne s'inscrit dans la BDD.


Erreur me dit : Remarque: Index non défini: email dans C:\..... ligne 48


// On vérifit que l'adresse email est dans le bon format
            elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)) {
                $valid = false;
                $er_mail = "Votre adresse email n'est pas valide";
            }
            else {
                // On vérifit que le mail est disponible
                $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
                    array($mail));


                $req_mail = $req_mail->fetch();


                if ($req_mail['mail'] <> "") {
                    $valid = false;
                    $er_mail = "Cette adresse email existe déjà dans notre BDD";
                }
            }


Ma deuxième erreur ce trouve être celle ci :  Erreur fatale: Erreur non interceptée: Impossible d'utiliser l'objet de type PDOStatement comme tableau dans C: \.... ligne 54 qui ce trouve etre entre le fetch() et le if il y a un autre message avec toujours à la ligne 54 :

Erreur: impossible d'utiliser l'objet de type PDOStatement comme tableau dans


            else {
                // On vérifit que le mail est disponible
                $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
                    array($mail));


                $req_mail = $req_mail->fetch();


                if ($req_mail['mail'] <> "") {
                    $valid = false;
                    $er_mail = "Cette adresse email existe déjà dans notre BDD";
                }
            }


Sur MAMP je n'ai pas d'erreur mais je ne reçois rien du tout par mail et rien ne s'inscrit sur la BDD. Ma connexion à la BDD est bonne je l'ai vérifié avec un script trouvé sur le net.


Merci pour votre aide car là je patauge un peut dans la semoule 😤😓.

1165 vues
12 décembre 2020 à 22:39 (Édité)
Cette pub permet au site de vivre ...

17 commentaires

Re: @Meegolo 😁,


Mais quand je valide j'ai toujours mon message d'erreur : Notice: Undefined variable: valid in C:\xampp\htdocs\valider\conf.php on line 24

Hé hé, du coup moi je n'arrive pas à accéder à cette erreur comme je ne reçois pas de mail..

Je laisse ça en suspend pour le moment, et je t'ai répondu par messagerie 😀

@Flomir72 as tu modifié le fichier sendmail.ini comme le préconisé sur le site que tu m'as envoyé.


Sinon tu peux tester si tu reçois ou non les mails avec le fichier sendmail.php qui ce trouve à la racine du dossier que je t'ai envoyé hier soir. N'oublie pas de le modifier par ton adresse.


En regardant de plus pret ton code erreur, si tu est sur gmail le port n'est pas 25 mais 587 je pense que si ton fichier php.ini est bien configuré alors c'est ton fichier sendmail.ini qui ce trouve à ce lien C:\xampp\sendmail


Perso je viens de tester à nouveau et je reçois bien le lien mail. Mais quand je valide j'ai toujours mon message d'erreur : Notice: Undefined variable: valid in C:\xampp\htdocs\valider\conf.php on line 24


Hier soir je t'ai répondu à ton message par messagerie.


Merci de ton aide

@Meegolo arrives-tu as recevoir un email ?


Car moi j'ai essayé et j'en reçois pas avec cette 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:\xampp\htdocs\inscription.php on line 85


Même en modifiant le php.ini rien ??

Non je ne vois pas d'où ça peut venir. Je ne suis pas assez calé pour ça.

Re @Meegolo


As-tu réussi à débugger ton site ?

Je l'ai pris uniquement dans les fichiers source téléchargeable sur le site

Re: @Meegolo


Ok maintenant je pense qu'il faut ce concentrer sur cette erreur !


Notice: Undefined variable: valid in C:\xampp\htdocs\valider\conf.php on line 24


if($valid) {    
    $req = $DB->query("SELECT id FROM utilisateur WHERE id = ? AND token = ?"array($id, $token));    
    $req = $req->fetch();


Comment as-tu définis la variable $valid ? Car là il te met clairement qu'il est indéfinis..

Merci pour cette réponse.


Je viens de tester les 3 façons


http://127.0.0.1/valider/conf.php?id=3&token=f40c8aa9e601b968c3ef18c2

http://localhost/valider/conf.php?id=3&token=f40c8aa9e601b968c3ef18c2

http://valider/conf.php?id=3&token=f40c8aa9e601b968c3ef18c2


avec les deux premier j'ai l'erreur et le dernier site n'existe pas

Re: @Meegolo 😁,


Alors tu as fais le plus dur je pense !

Moi j'aurai mis seulement ça pour le href :


href="/nom-du-dossier/conf.php?id=' . $req['id'] . '&token=' . $token . '"


Je n'utilise jamais le 127.0.0.1 ^^

Sûrement pour cela qu'il n'en veut pas...

Bien j'ai avancé, l'envoi de mail fonctionne avec XAMPP grasse au tuto que tu as posté.

Ma BDD c'est bien remplit nickel.

J'ai voulu validé mais j'ai oublié de changer l'url il me semble qu'il faut mettre


href="http://127.0.0.1/nom-du-dossier/conf.php?id=' . $req['id'] . '&token=' . $token . '"


Mais bon j'ai voulu le valider directement depuis Chrome en utilisant http://127.0.0.1 mais voilà ce que j'ai comme erreur

Notice: Undefined variable: valid in C:\xampp\htdocs\valider\conf.php on line 24


et ca correspond à


if($valid) {
    $req = $DB->query("SELECT id FROM utilisateur WHERE id = ? AND token = ?"array($id, $token));
    $req = $req->fetch();


mais je ne vois pas le problème.

Cette pub permet au site de vivre ...
1
2