Recherche Téléphone

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche Téléphone

Re: Recherche Téléphone

par sirakawa » 28 nov. 2013, 10:01

chez maman sql, il existe une fonction replace. Je suppose qu'on peut la combiner avec un update du genre
update num set num = replace (num, " ","") where 1;

Re: Recherche Téléphone

par orenx22 » 28 nov. 2013, 04:42

Bonjour,

Dans ton cas j’enregistre tous les numéro dans la base de donnée sans les points. Au préalable j'effectuerai une petite vérification de ce style là :

// transforme la chaine de caractère en tableau avec pour séparateur le '.'
$array = explode( '.', $_POST['tel'] );

// transforme le tableau en chaine de caractère en les collant avec '' (rien)
$result = implode( '', $array );
ou si tu as plusieurs caractère à virer :

$carac_suppr = array( ' ', '.', '@' );

foreach( $carac_suppr as $value )
{
    $array = explode( $value, $_POST['telephone'] );
    $_POST['telephone'] = implode( '', $array );
}

ciao

Re: Recherche Téléphone

par sirakawa » 27 nov. 2013, 11:23

Tu peux, dans un formulaire, mettre côte à côte des
<input type = 'text' id ='tel1' size ='2' name = 'tel1' required= 'required onchange ='va_plus_loin()/>
<input type = 'text' id ='tel2' size ='2' name = 'tel2' required= 'required onchange ='va_plus_loin()/>
C'est ce que fait e site du gouvernement pour les coordonnées bancaires (au passage ils vérifient que chaque élément est correctement structuré.)
Tu concatènes et tu utilises...

Re: Recherche Téléphone

par blof » 27 nov. 2013, 01:30

ok, c'est violent comme histoire, faut le faire par étapes.

- d'abord il faut faire une sauvegarde de ta table. (faut pas rater cette étape)

- essaie de faire un programme qui liste les numéros (avec 'select telephone from ...')

on verra après ...

Re: Recherche Téléphone

par kilian78480 » 27 nov. 2013, 00:57

Mdr oui.
Mais faire un update global de la base et non donnée par donnée...

Re: Recherche Téléphone

par blof » 27 nov. 2013, 00:26

Exemple: je tape 0100000000 mais dans ma base ça sera 01 00 00 00 00
[AMHA] il vaudrait mieux enregistrer au format 0100000000

Pour l'enregistrement, tu supprimes tout ce qui n'est pas chiffres :
<?php

$numero = '01.00.00.00.00';  // ou ce que tu veux comme séparateur

echo preg_replace('/[^\d]/', '', $numero);

?>
Et deuxième chose comment convertir les numéros déjà enregistres dans la base...?
tu connais la commande "set" ?

edit : "UPDATE" :)

Re: Recherche Téléphone

par kilian78480 » 27 nov. 2013, 00:03

D'accord c'est bien ce qu'il me semblait...
Comment faire dans ce cas pour obliger une écriture de format dans la base lorsque l'on envoie la requête ?
Exemple: je tape 0100000000 mais dans ma base ça sera 01 00 00 00 00

Et deuxième chose comment convertir les numéros déjà enregistres dans la base...?

Re: Recherche Téléphone

par blof » 26 nov. 2013, 23:57

Pour traiter ton cas il faut que tu n'ai qu'un seul format dans ta base de données.
Donc il te faut convertir ceux qui ne sont pas dans le format que tu veux utiliser avant de penser à faire un script de recherche. ;)
Tu oublies tout le reste ... :)

(si tu ne peux pas le faire à la main, il faudra faire un programme qui le fera à ta place)

Re: Recherche Téléphone

par kilian78480 » 26 nov. 2013, 23:34

ok merci.
voici ce que j'ai fait :
if($_GET['type_recherche'] = "telephone") {
$tel = array(" ", "-", ".", "");
$replace = array(" "," "," ","");
$recherche = str_replace($tel, $replace, $_GET['recherche']);
}
il converti bien mais ne fait pas exactement ce que je souhaite... :-(

j'aimerai qu'il comprenne que dans ma base il peut être enregistré des numéros comme 01 00 00 00 00 ou 01.00.00.00.00 ou 0100000000 donc que la recherche se fasse sur ça quoi que l'on tape

Re: Recherche Téléphone

par sirakawa » 26 nov. 2013, 20:53

par exemple:
$z = str_replace(["-", " ",":"], "/", $chaine);

Re: Recherche Téléphone

par xTG » 26 nov. 2013, 19:15

Pour traiter ton cas il faut que tu n'ai qu'un seul format dans ta base de données.
Donc il te faut convertir ceux qui ne sont pas dans le format que tu veux utiliser avant de penser à faire un script de recherche. ;)

Re: Recherche Téléphone

par kilian78480 » 26 nov. 2013, 17:00

Merci pour votre aide...
J'ai déjà entendu du str_replace par contre je ne sais pas comment cela se construit pour la recherche.
Pour un str_replacve simple oui mais dans mon cas là... je ne sais pas...

dans ma base les tél peuvent être enregistré soit 01 00 00 00 00 soit 0100000000 ou soit 01.00.00.00.00 idem pour la recherche.

Merci pour votre aide

Re: Recherche Téléphone

par xTG » 26 nov. 2013, 14:31

C'est une bonne idée je plussoie.
Cela doit être plus optimisé que de passer par des explode/implode.

Re: Recherche Téléphone

par sirakawa » 26 nov. 2013, 10:21

peut-être un simple str_replace avec comme premier paramètre un tableau de tous les séparateurs imaginables, et comme deuxième un tableau du séparateur que tu utilises.

Re: Recherche Téléphone

par xTG » 26 nov. 2013, 09:14

Tu peux vérifier le format d'une chaîne avec une expression régulière.
Ou bien plus primairement en recherchant les caractères qui distinguent ta chaîne d'une autre.

Pour 03.12.25.21.20 tu sais que tu auras toujours les points au même indice et donc tu peux les vérifier un à un.
C'est le même principe avec les espaces.

Ou même encore tu peux faire un explode de ta chaîne sur le caractère de séparation et vérifier que tu as bien le bon nombre d'index dans l'array construit. Et la conversion est super simple du coup avec un implode pour reformer une chaîne à injecter dans ta requête.

Mais le plus propre reste tout de même les regex.