Page 1 sur 1

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

Posté : 30 juin 2005, 10:29
par dmx-moteur
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.

Posté : 30 juin 2005, 10:31
par zeus
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

Posté : 30 juin 2005, 10:33
par ouckileou
if ($urlDansLaBase != "http://") {
   echo $urlDansLaBase;
}
je crois que c'est ça que tu veux faire

Posté : 30 juin 2005, 10:34
par ouckileou
=> tu fais trop de SQL zeus ;)

Posté : 30 juin 2005, 10:35
par VaN
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

Posté : 30 juin 2005, 10:41
par zeus
=> tu fais trop de SQL zeus ;)
Non non essaye <> et tu vas voir que ça marche aussi en PHP :wink:

Posté : 30 juin 2005, 10:44
par ouckileou
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 :)

Posté : 30 juin 2005, 11:02
par dmx-moteur
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...

Posté : 30 juin 2005, 11:10
par zeus
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";
?>

Posté : 30 juin 2005, 11:13
par ouckileou
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 :)

Posté : 30 juin 2005, 11:20
par zeus
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: