Afficher la valeur d'un champ seulement si...

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 : Afficher la valeur d'un champ seulement si...

par zeus » 30 juin 2005, 11:20

Si je peux donner mon avis, je suis partisant de ne pas pré-remplir la case, comme ça tu teste juste si la case est vide ou pas

Si elle n'est pas vide tu regarde si il a mis http://
- oui : tu fait rien
- non : tu rajoute http://
bah j'ai une confiance aveugle en toi
Je suis pas sûr que soit une bonne chose :langue:

par ouckileou » 30 juin 2005, 11:13

bah j'ai une confiance aveugle en toi

pour ton problème dmx-moteur, tu peux faire de plusieurs façon :

- tu pré-remplis le champ et s'il n'y a que ça tu n'affiches rien, ou tu remplaces par vide
- tu ne pré-remplis pas le champ, si l'utilisateur met "http://" tu l'enlèves pour ne stocker que des url sans et tu l'affiches en dur dans la page
- inversement, s'il n'y est pas tu l'ajoutes pour ne stocker que des urls avec

je ne sais pas s'il y a une façon meilleure qu'une autre, le tout s'est d'être cohérent :)

par zeus » 30 juin 2005, 11:10

ah boooon ?

pourtant on en avait déjà parlé, et il n'est pas dans la liste des opérateurs
=> http://fr2.php.net/manual/fr/language.operators.php

mais si tu le dis je te crois :)
C'est vrai, bizarre qu'il ne soit pas comptabilisé :shock:

mais essaye ce code et tu verras que ça fonctionne bien :
<?php
    $test = "coucou";
    $test2 = "toto";

    if ($test <> $test2)
        echo "différents<br>\n";
    else
        echo "pareils<br>\n";
        
    $test2 = "coucou";
    
    if ($test <> $test2)
        echo "différents<br>\n";
    else
        echo "pareils<br>\n";
?>

par dmx-moteur » 30 juin 2005, 11:02

Merci à tous de votre aide.
La solution de Ouckileou marche parfaitement.

Pour la solution "propre" il me semblait qu'il serait plus facile de faire un test sur la présence de la chaine "http://" seule et pour ne pas l'envoyer de lui subsituer une valeur nulle...

par ouckileou » 30 juin 2005, 10:44

ah boooon ?

pourtant on en avait déjà parlé, et il n'est pas dans la liste des opérateurs
=> http://fr2.php.net/manual/fr/language.operators.php

mais si tu le dis je te crois :)

par zeus » 30 juin 2005, 10:41

=> tu fais trop de SQL zeus ;)
Non non essaye <> et tu vas voir que ça marche aussi en PHP :wink:

par VaN » 30 juin 2005, 10:35

alors, y'a plusieurs solutions pour faire quelque chose de propre :

Celle qui me vient a l'esprit : enlever le http:// par defaut dans ton champ texte, et le rajouter a la chaine de caractere, si elle est présente.
if (isset ($_POST['url'])) {
$url = $_POST['url'];
$url = "http://".$url;
}
mais il serait aussi pas mal de faire un test du debut de la chaine de caratere, voir si le gars n'a pas lui meme mit le http:// dedans :
if (isset ($_POST[url'])) {
$url_explode = explode("www.", $_POST['url']);
$url_start = $url_explode[0];
if ($url_start != "http://") {
//le gars n'a bien rentré http:// lui meme, on le rajoute donc
$url = $_POST['url'];
$url = "http://".$url;
}
j'espere que ça te va

par ouckileou » 30 juin 2005, 10:34

=> tu fais trop de SQL zeus ;)

par ouckileou » 30 juin 2005, 10:33

if ($urlDansLaBase != "http://") {
   echo $urlDansLaBase;
}
je crois que c'est ça que tu veux faire

par zeus » 30 juin 2005, 10:31

c'est simple, si tu veux que le champs soit affiché seulement si l'utilsiateur l'a rempli, tu fait
if ($champ <> "http://" AND $champ <> "")
  //Affichage

Afficher la valeur d'un champ seulement si...

par dmx-moteur » 30 juin 2005, 10:29

Bonjour,

Je sais que c'est une question qui semblera idiote à plus d'un mais je souhaite afficher la valeur du champ d'un enregistrement seulement si elle ne contient pas telle valeur particulière.
Je m'explique: j'ai un formulaire avec la possibilité de renseigner un site web.
Pour être sûr que l'utilisateur renseigne le champ correctement en omettant pas le http://, je pré-remplis le champ avec cette valeur. Elle sera donc insérée avec l'enregistrement dans la base.
Cependant pour les utilisateurs qui ne renseignent pas le champ, je ne veux pas afficher ce "http://" au moment de la prévisualisation.

(J'ai pensé aussi à un autre traitement peut-être plus propre : ce pas insérer le champ si la valeur est ="http://" lors de la saisie du formulaire mais cela me semble au dessus de mes faibles connaissances !! ....)

Merci à tous.