Création d'un formulaire de contact PHP

php Création d'un formulaire de contact PHP

Connectez-vous pour télécharger

yule

Membre
yule a soumis un nouveau tutoriel:

formulaire de contact en php - Création pas par pas de la base d'un mini formulaire de contact en php

Bonjour,

Voilà 6 points pour comprendre un formulaire de contact en php, j'ai essayer de synthétiser au mieux mais je ne suis de loin pas un expert, à utiliser comme pour base pour un projet plus "poussif" sur un formulaire de contact

1)
  • Création d'un formulaire basique en html, attention au "type" en fonction de votre souhait, text, email etc... important pour la suite.
  • Ici on utilise la méthode $post et non $get => GET...

Voir le tutoriel complet...
 

Nicolas

Membre actif
Hello yule et merci pour ce tuto PHP !

Je viens de le tester et il fonctionne. 💪
Il est disponible à cette adresse pour ceux qui voudraient le tester, merci de ne pas trop spammer ça arrive sur mon mail !!

Quelques petites remarques:
  1. le champ téléphone est affublé de petits boutons qui permettent d'incrémenter ou décrémenter le champ, pour un numéro de téléphone ce n'est pas utile
    1. Capture d’écran 2021-02-04 083831.png
  2. Lorsque le formulaire est soumis une copie de ce que l'on reçoit par mail est affichée dans le champ "message". Et d'ailleurs est-ce qu'il ne serait pas possible que le formulaire se réinitialise une fois soumis ? cela corrigerait d'office les 2 points suivants.
  3. Une fois le formulaire soumis on atteint cette page https://devcometrue.fr/test/index.php?choix=valider sans que l'on puisse retourner au formulaire vierge (ça rejoint le deuxième point)
  4. Le bouton reset ne fonctionne pas une fois le formulaire soumis (ça rejoint également le deuxième point).
Je présente ces petits bugs ici comme ça nous pouvons améliorer ensemble, avec les membres, le formulaire.
Peut-être que certains ont des idées pour corriger ces petits détails.

Sinon nickel !
Hamza tu l'as ton formulaire par mail ! ;)
 
Dernière édition:

Jack

Membre
Concernant le premier point, l'input est de type number, il faut le remplacer par un type tel :)
<input type="tel">

Bravo pour le tuto yule !
 

yule

Membre
Merci à vous deux (Jack & Nicolas )pour votre retour et vos corrections (y) et oui l'idée est véritablement de partager et de corriger ensemble. (après et sans css, il a une sale gueule :ROFLMAO:)

Je pense avoir une solution pour réinitialiser le formulaire et si cela fonctionne , je rebalance sur le fichier zip (a voir comment procéder pour tenir à jour tout ceci)

Sinon et je sais pas si c'est possible... J'ai déjà vu ça , reste à savoir si c'est une option. Serait-il possible d'avoir des N° ligne dans le champs des code, cela serait fort pratique pour positionner des erreurs, des modifications etc..
 

Nicolas

Membre actif
Sinon et je sais pas si c'est possible... J'ai déjà vu ça , reste à savoir si c'est une option. Serait-il possible d'avoir des N° ligne dans le champs des code, cela serait fort pratique pour positionner des erreurs, des modifications etc..
C'est bien parce que c'est toi !
  • numéros de ligne
  • mise en valeur de lignes
  • bouton copier le code (en haut à droite)
PHP
<?php
$chiffre = null;

while ($chiffre !== 10) {
    $chiffre = (int)readline('Entrez une valeur: ');
    break;
}

if ($chiffre === 10) {
    echo 'Bravo vous avez trouvé le bon chiffre';
} else {
    echo 'La réponse n\'est pas correcte';
}
  • Et possibilité de donner un titre spécifique au bloc de code
Code PHP jeu devinette
<?php
$chiffre = null;

while ($chiffre !== 10) {
    $chiffre = (int)readline('Entrez une valeur: ');
    break;
}

if ($chiffre === 10) {
    echo 'Bravo vous avez trouvé le bon chiffre';
} else {
    echo 'La réponse n\'est pas correcte';
}

Capture d’écran 2021-02-04 133043.png
 

yule

Membre
Ah oui et sinon j'ai trouvé une parade (déjà mis à jour)

J'ai ajouté une fonction php avec du JS dans mes cordes Hum...😋

PHP
    function redir($url){
        echo '<script language="javascript">';
        echo 'window.location="',$url,'";';
        echo '</script>';
    }

Qu'on va appeler ainsi redir("?choix=ok"); en lieu et place du message qui indiquait "votre message a bien été envoyé..." et qui réinitialisera le formulaire

=> ligne 74 de l'étape 6 🤓
 
Dernière édition:

Hamza

Membre
Hello, est-ce qu'il y a un moyen de recevoir le numéro de téléphone de façon formatée ?
Actuellement le formulaire renvoie 0607080910 et je souhaiterais le recevoir 06 07 08 09 10. Est-ce que c'est compliqué ?
 

yule

Membre
Holà

Essaye ce regex

Regex php
$telbase = "0607080910";
$telebasefinal = preg_replace('#(\d{2})#', '$1 ', $telbase); // avec une variable pour la suite
echo "$telebasefinal";

ou direct ainsi

Regex php
$telbase = "0607080910";
echo preg_replace('#(\d{2})#', '$1 ', $telbase); // affichage direct
 

L'occitan

Membre
Je ne connais pas grand chose à PHP mais ça devrait se retrouver la dedans non ?
PHP
// +------ A finaliser comme bon te semble... c'est ce que tu vas recevoir dans ta BAL -------+
$message = "\r\nMessage de : $nom\r\n
Envoyé le $date à $heure\r\n    
Email : $mail\r\n
Tél : $phone\r\n
URL: $website\r\n
Sujet : $sujet\r\n\n
$message\n";
 

yule

Membre
Exactement ! (y)
Mais pour être plus propre/compréhensible, le regex se fait juste avant et la correction dans l'exemple de L'occitan

correction php
$phone2= preg_replace('#(\d{2})#', '$1 ', $phone);

// +------ A finaliser comme bon te semble... c'est ce que tu vas recevoir dans ta BAL -------+
$message = "\r\nMessage de : $nom\r\n
Envoyé le $date à $heure\r\n
Email : $mail\r\n
Tél : $phone2\r\n
URL: $website\r\n
Sujet : $sujet\r\n\n
$message\n";

En l'occurrence , tu ajoutes la ligne 1 de mon exemple dans ton script (je sais pas à quelle ligne ça fera chez toi..) et change le terme dans la ligne 7 phone => phone2 (pour toujours plus de clarté)
 
L

Linconnu

Invité
A mon avis les commentaires sont trop présent dans les codes PHP, ça devrait servir à expliquer le code mais dans ce cas ça nuit à la lisibilité et comme vous l'avez écrit pour un débutant il n'y comprend rien. Toute la partie des if et else dans les CONTROLE est incompréhensible. Dommage
 
L

Linconnu

Invité
le regex $message = preg_replace("#[\\\/:\?\(\)\%\&\#\"<>\|]#ius", " ", $message) ;
renvoie un code d'erreur dans VSC syntax error, unexpected variable "$message"
 

Nicolas

Membre actif
le regex $message = preg_replace("#[\\\/:\?\(\)\%\&\#\"<>\|]#ius", " ", $message) ;
renvoie un code d'erreur dans VSC syntax error, unexpected variable "$message"
C'est un caractère oublié sur la ligne précédente : v, c'est corrigé. merci.
PHP
$message = stripslashes($message);v // ICI
$message = preg_replace("#[\\\/:\?\(\)\%\&\#\"<>\|]#ius", " ", $message) ;

$message = stripslashes($message); // corrigé
$message = preg_replace("#[\\\/:\?\(\)\%\&\#\"<>\|]#ius", " ", $message) ;

yule : l'erreur n'apparait pas dans le fichier à télécharger donc pas de problème ;)
 

Ces discussions pourraient vous intéresser...

  • Résolue
Salut, J'ai une erreur PHP que je n'arrive pas à résoudre, voici le code simplifié <!DOCTYPE html> <html> <head> <title>Cours PHP & MySQL</title> <meta charset="utf-8"> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Titre</h1>...
  • Résolue
Hello, Quand j'essaie de connecter mon fichier PHP à la base de données sur mon serveur local cela ne fonctionne pas. (site WordPress) ERROR ESTABLISHING A DATABASE CONNECTION Pourtant mes éléments sont bons, j'ai vérifié et revérifié. Je vous colle le code du fichier PHP correspondant à la...
  • Résolue
Bonjour à tous, J'essaie de déployer une application sur mon serveur live via Docker mais j'ai du faire une mauvaise configuration car l'application s'est installé en local. Il y a un fichier à configurer : docker-compose.yml notamment cette section server: image: judge0/judge0:1.12.0...
Haut