IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

remplacer espace par tiret dans formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut remplacer espace par tiret dans formulaire
    Bonjour,

    formulaire de soumission de sites.

    Je souhaiterais que l'utilisateur qui soumet un site, losqu'il met les tags dans le champ de texte >> "input type="text" id="tags" name="tags" les espaces soient remplacé automatiquement par des tirets ( - ), et seulement pour la ligne type="text des tags .








    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut
    çà me fait plaisir de te rendre service mais tu aurais pu trouver ;-)

    $tags=preg_replace("# #","-",$tags);
    à mettre juste après avoir lu ta variable:
    $tags = trim($_POST['tags']);

    ;-)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Je vous remercie beaucoup ça marche impecable, je doute pas que j'aurai pu trouver mais comme je vous ai dit je suis débutant et pour moi c'est comme chercher une aiguille dans une botte de foin.

    Je ne veux pas abuser de votre gentillesse mais j'ai une autre petite question :

    Par hazard sauriez vous comment évitez d'avoir plusieur tiret un à coté de l'autre ?

    Si par exemple un utilisateur soumet les tags de cette façon.
    infos : le tiret bas remplace l'espace OK pour l'exemple

    >>Site____web,webmasters,_informatique,__developpez.com

    Le résultat est comme ça :

    Site----web,webmasters,-informatique,--developpez.com

    Merci encore d'avance

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut
    il n'y a pas de mal à débuter ;-)

    pour votre code il y a une façon pas très rigoureuse mais qui a le mérite de vous montrer ce qu'est une boucle ...

    on va remplacer plusieurs fois "--" par "-" :

    for($i=0; $i < 5 ; $i++)
    {
    $tags=preg_replace("--","-",$tags);
    }

    à placer juste après le code que vous avez rajouté
    tant que votre visiteur ne met pas 2E5 soit 32 espaces ..vous obtiendrez ce que vous voulez

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    heu je viens d'ajouter ceci apres le code de tout à l'haure et quand je soumet voici ce que j'ai pour les tags suivant :

    moteur de recherche,___annuaire


    sa me donne ceci


    --------------------------------, -------------------------------m

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    ça y est j'ai trouvé ceci qui marche mais merci quand meme .

    $tags = preg_replace('/[\s]+/','-',$tags);


    sur ce site : http://www.webrankinfo.com/forums/viewtopic_41923.htm

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Re bonjour

    Donc mon problème est en partis presque réglé, j'ai mes tiret à la place des mes espace, mais le probleme est que à l'origine mon script génère automatiquement une virgule et un espace entre chque tags soumis.

    ce qui fait que je me retrouve avec un tiret au début de chaque tags.

    j'ai bon chercher je ne trouve pas ou modifier ceci et à quoi resemble le bout de code à modifier.

    Voyer dans le code de mes page en haut de ce post Merci

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut
    j'ai dit n'importe quoi !
    donc le code c'est :

    $tags = trim($_POST['tags']);
    $tags=preg_replace("# #","-",$tags);
    for($i=0; $i < 5 ; $i++)
    {
    $tags=str_replace("--","-",$tags);
    }

    normalement c bon ...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    merci

    Et pour l'espace qui est généré automatiquement avec mon script

    Entre chaques tags séparé d'une virgule , un espace est généré apres la virgule.

    alors maintenant avec le code ci dessus j'ai un tiret au debut de chaque tags .

    Je ne trouve pas l'endroit ou modifier

    Merci

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Savez comment on peut faire pour interdire un mot dans champ texte input .


    plus précisement lorsqu'un utilisateur saisie une adresse web à soumettre et que celle contient un mots interdit. comme porno etc ....

    merci

  12. #12
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Une seule façon je crois, il faut faire une fonction qui vas tester le mot vis à vis d'une liste, et que si il correspond à un des mots listé renvoyé de ne pas le prendre en compte.

    J'ai pas le temps d'écrire un exemple, mais grosso-modo :

    -Tu fait un tableau avec tous tes mots interdits.
    -Tu fait une fonction qui tri tes mots.
    -Tu fait une fonction de teste du mot (qui sera appelé par la première fonction, ca te permettra de faire facilement la liste des mots à insérer ).
    Si ton mot est bon la fonction de tri le garde.
    Sinon la fonction de tri le garde pas.
    -Tu insère tes données.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    merci pour les détails de la procédure, je vais faire des recherches pour effectuer ça , car je suis pas un expert en php. mais avec ta réponse j'ai deja le principe de fonctionnenment.

    bon si quelqu'un d'autre peut me faire un exemple je suis preneur

    Merci quand meme à la réctivité de ce forum contrairement à certain forum ou on peut attendre des jours pour avoir une réponse

  14. #14
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Bon c'est fait à la va vite, et je n'est pas regardé ou le placer dans ton code, mais voila vaguement comment le faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
    //Premier tableau
    $mots = array('mot1','mot2','mot3','mot4');
    //Seconde méthode
    $word[0] = 'mot1';
    $word[1] = 'mot2';
    $word[2] = 'mot3';
    $word[3] = 'mot4';
     
    //Fonction de tri
    function trimoi($malistedemot){
    	$maliste = explode('separateur',$malistedemot);//Je découpe les mots dans un tableau.
    	$mesmotsfinaux = '';
    	foreach($maliste as $value){//Pour chaque mot de ma liste.
    		if(motvalide($value)){//Si ma fonction qui verifie le mot renvoie true (donc que le mot est bon).
    			$mesmotsfinaux .= 'separateur'.$value;
    		}
    		else{//Sinon ne pas le stocker.
    		}
    	}
    	return $mesmotsfinaux;
    }
    //Fonction qui valide un mot suivant le tableau $mots plus haut.
    function motvalide($lemot){
    	foreach($mots as $value){//Pour chaque mot de la liste des interdits.
    		if($lemot == $value){//Si le mot est interdit on sort en retournant false.
    			return false;
    		}
    		else{
    		}
    	}
    	return true;//On retourne true en fin de foreach car ca équivaut à ce que le mot est pas dans la liste.
    }
    //Fonction qui valide un mot suivant le tableau $word plus haut.
    function motvalide($lemot){
    	foreach($word as $value){//Pour chaque mot de la liste des interdits.
    		if($lemot == $value){//Si le mot est interdit on sort en retournant false.
    			return false;
    		}
    		else{
    		}
    	}
    	return true;//On retourne true en fin de foreach car ca équivaut à ce que le mot est pas dans la liste.
    }
    //Utilisation de la fonction.
    $malistebonne = trimoi($monancienneliste);
    ?>
    Pour le reste je pense que tu arrivera à l'adapter à tes besoins.
    Edit attention utilise pas les 2 fonctions motvalide($lemot) car dans un cas j'utilise $mots dans l'autre $word.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    sa a l'air simple mais je suis completement largué, je vois pas ou placer le code.

    Dans édit.php normalement , mais a quelle endroit je vois pas .
    j'ai fait des essais et sa ne marche pas , c'est sûr que c'est moi qui doit mal m'y prendre.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    quelqu'un peut m'aider et me dire comment placer le code de SirDarken, je suis un débutant .

    Je me fais toujours spammer par le meme site il soumet toute ses pages.

    Si je pouvais bloquer meme son url dans le champ adresse du formulaire sa serai deja bien.

    merci

  17. #17
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut
    T'as essayé la fonction trimoi sur le champs en question que tu veux tester? si je me trompe pas, il te renvoie true ou false selon que le mot est un mot interdit ou pas.

    par contre, apres, c'est à toi de choisir le bon séparateur et de faire un traitement sur l'url. d'apres moi, tu fais un explode sur chaine de caractère avec "/" puis apres avec des . comme ca, tu devrais voir chacun de tes morceaux d'url séparément :/

    Je préfère pas donner de code, ca fait trop lgt que j'ai plus coder en php

  18. #18
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Oui il faut placer ce code sur le php juste avant l'insertion dans ta base de données.

    Si tu teste le code n'oublie pas d'utiliser tes propres valeurs, par exemple remplace 'separateur' par './' ou ',.' enfin par ce qui sépare tes mots clés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Remplacer espaces par underscores dans noms de fichiers
    Par Ysae68 dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 28/08/2017, 16h56
  2. Remplacer espaces par _ dans répertoires et fichiers
    Par fanch35 dans le forum Langage
    Réponses: 14
    Dernier message: 25/06/2012, 14h57
  3. [.htaccess] Remplacer underscore par tiret dans les URL
    Par randriano dans le forum Apache
    Réponses: 18
    Dernier message: 20/10/2010, 16h46
  4. remplacer espace par un tiret dans liens hypertexte
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2010, 11h09
  5. [RegEx] remplacer espacement par un tiret
    Par rich25200 dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2008, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo