Page 1 sur 2
Probleme adresse mail
Posté : 05 oct. 2005, 08:03
par kenshin
Bonjour,
Voila, dans ma base de données mysql, j'ai un champ contact qui contient plein de nom et l'adresse mail de ces personnes.
Donc ensuite j'ai fait une requete sql dans ma page php pour afficher ce champ contact.
Le probleme c'est que le adresse amil ne sont pas reconnu comme tel, on ne peut pas cliquer directement pour leur envoyé un mail.
Est-ce qu'il y aurait une solution?
J'ai pensé à un script php qui recherhce les chaines de carctères contenant un '@' et ensuite travailer dessus.
MAis je ne c pas comment faire.
Posté : 05 oct. 2005, 08:05
par DocType
précèdes chaque email par mailto
si tout est dans un champ unique, il faut chercher l'occurence du @ et selectionner de l'espace qui précède à l'espace qui suit

Posté : 05 oct. 2005, 08:20
par kenshin
Ces trop lourd d'aller changer tous les champs contacts et mettre des mailto.
Donc je voudrais rechercher les mots contenant un '@' et rajouter "<a href='mailto:" avant et "</a>" apres.
Comment faire? Quel fonction php?
Posté : 05 oct. 2005, 08:30
par DocType
Tu fais la fonction toi même
M'enfin, c'est bête de réagir comme cela car avec un script PHP tu règle le problème de suite ==> tu update toute ta bdd en rajoutant dans les champs des <a href etc... et ensuite à chaque ajout ou modif, tu verifie lors des envois...

Posté : 05 oct. 2005, 08:35
par kenshin
Je comprends pas ...
Tu veux que je change tous manuellement ds ma base ou tu connais un script php qui fait ca automatiquement?
Je pense qu'il faut chercher du coté des expressions reguliere..non?
Posté : 05 oct. 2005, 08:56
par DocType
ba tout simplement tu créé (et oui, faut taffer quelquefois

) un script qui permettent de lister ligne apres ligne (un while) ta table et de rechercher les adresses mail (comme expliqué au dessus), de remplacer l'expression email par l'encadrement souhaité
Tous tes champs seront alors modifiés, t'auras plus qu'à contrôler les futures modifs et ajouts
Posté : 05 oct. 2005, 08:59
par Cyrano
Il n'est pas nécessaire de modifier les champs dans la base. Il suffit de mettre les balises de lien et d'y insérer l'adresse:
//... code de récupération du contact ...
while($ligne = mysql_fetch_assoc($requete))
{
//.....
echo("<p>Pour joindre ". $ligne['prenom'] ." ". $ligne['nom'] ." : <a href=\"mailto:". $ligne['courriel'] ."\" alt=\"Envoyez un courriel\">". $ligne['courriel'] ."</a></p>\n");
//......
}
Si la validation de l'adresse a été correctement faire avant l'insertion dans la base,il est inutile de la valider à nouveau

Posté : 05 oct. 2005, 09:04
par DocType
Cyrano, lorsqu'il dit :
j'ai un champ contact qui contient plein de nom et l'adresse mail de ces personnes
Je comprends pour ma part qu'il y a un champ texte contenant tout plein d'infos dont l'adresse mail, donc faut obligatoirement retrouver où est cette adresse dans le champ texte...

Posté : 05 oct. 2005, 09:07
par Cyrano
Si l'adresse est incluse DANS le texte, alors il faut passer par une expression régulière, mais ce n'est pas nécessairement très logique d'enregistrer tout en vrac.
Posté : 05 oct. 2005, 09:07
par kenshin
Merci Cyrano,
mais la difficulté réside dans le fait je n'ai pas de champ "mail" dans ma BDD mais un champ "contact" qui contient les noms, tel et mail !
Posté : 05 oct. 2005, 09:11
par Cyrano
C'est ça, alors tourne-toi vers les expressions régulières et la fonction
preg_replace()
Posté : 05 oct. 2005, 09:13
par kenshin
Ok, le message est passé...
Je n'arrive pas à trouver l'expression reuguliere qui pourrait faire ca !?
Posté : 05 oct. 2005, 09:19
par DocType
Ok, le message est passé...
Je n'arrive pas à trouver l'expression reuguliere qui pourrait faire ca !?
et un Big Mac SVP

Posté : 05 oct. 2005, 09:39
par Cyrano
Regarde sur les tutos de PHPFrance, Ripat nous a fait un beau tuto sur le sujet et je crois même qu'il y a un exemple pour les adresses de courriel.
Posté : 05 oct. 2005, 10:16
par pjl
Merci Cyrano,
mais la difficulté réside dans le fait je n'ai pas de champ "mail" dans ma BDD mais un champ "contact" qui contient les noms, tel et mail !
ce n'est pas un champ contact alors mais un champ fourre-tout.
C'est l'exemple type de ce qu'il ne faut pas faire.
Je te déconseille fortement de t'amuser à mettre des mailto dans ce champ comme proposé par PRoGRaFLaSH.
Tu as déjà le bordel dans ce champ, ca ne va pas l'arranger.
Je te conseille de créer un champ mail et de faire un script qui extraira l'adresse email de ton champ foure-tout pour la mettre dans le bon champ, idem avec les autres données.