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 :

[PHP-JS] Problème condition empty()


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut [PHP-JS] Problème condition empty()
    Bonjour voila j'ai 1 petit soucis j'utilise
    correspondant à une boite de saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $search = $_POST['textfieldsearch'];?>
    dans mon "traitementsearch.php"
    Seulement la condition if(empty($search)) est toujours effectué, meme si je rentre 1 mot dans mon champ de saisie de ma page "accueil.php".

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php include ('secure.php');
    include ('mysqlconnect.php'); 
    $search = $_POST['textfieldsearch'];?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
    ..
    ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ..
    if(empty($search))
    	{
    	echo '<script language=javascript> alert ("Indiquez un mot clé pour effectuer une recherche");</script>';
    	echo '<SCRIPT LANGUAGE="JavaScript">
    	document.location.href="accueil.php" </SCRIPT>';
    	exit;
    	}else{
                        ..
    et donc l'alert s'effectue peu importe si je saisie quelque chose ou non . Faut il plus de code :
    merci

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Avant de faire le if(empty($search)) tests-tu le postage du formulaire ?
    Consultant idéaliste.

  3. #3
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Ouais, vérifies la valeur de ta variable

  4. #4
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    faut que tu précise après kel action l'alert doit s'afficher.
    le if(isset($search)) ne vérifie la variable $search que lorsqu'il ya eu une action .un postage en l'occurence.
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    J'ai sauvegarder ma page et tester cette page nettoyé de tout surplus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php include ('secure.php');
    include ('mysqlconnect.php'); 
    $search = $_POST['textfieldsearch'];
    echo $search;?>
    et il m'affiche rien

    sachant que sur ma page accueil du faite que j'ai plusieurs bouton j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="gopage('traitementsearch.php')"
    et donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="JavaScript" type="text/javascript"> 
    function testsubmit()
    	{
        if (document.form1.action=="") return false; 
    return true ;
    	} 
    function gopage(page) 
    	{
    document.form1.action = page; 
    document.form1.submit(); 
    	} 
    </script>

  6. #6
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Fais tout en PHP au moins

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Redcats : Traitement recherche</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
        <form method="post" action="traitementsearch.php">
            <input type="text" name="recherche" />
            <input type="submit" name="envoyer" value="Envoyer !" />
        </form>
    </body>
     
    </html>
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Redcats : Traitement recherche</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
        <?php
            include("secure.php");
            include("mysqlconnect.php");
            $search = $_POST["recherche"];
            echo $search;
        ?>
    </body>
     
    </html>

  7. #7
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Avec un onclick="gopage('traitementsearch.php')" cela m'étonnerais que tu soumettes le formulaire, c'est amha une simple relocation.

    Javascript c'est bien mais il faut savoir l'utiliser à bon escient.
    Consultant idéaliste.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    oui mais je traite les infos dans cette page,

    Exemple apres que l'utilisateur à rempli la fiche d'informations sur "accueil.php" toujours,
    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span class="Gras">Sauvegarder :</span>
                                          <input name="Enregistrer" type="button" class="bouton" id="Enregistrer" 
    									  value="Enregistrer" onclick="gopage[b]('traitementfiche.php')"/[/b]></td>
    et dans mon "traitementfiche.php" j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nomfiche = $_POST['nomfiche'];
    $textarea = $_POST['textarea'];
    $textarea2 = $_POST['textarea2'];
    et ca fonctionne, je comprend pas car la c est le meme systeme

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    Allo :

  10. #10
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    oui vincedjs kia t-il ?
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par vincedjs
    oui mais je traite les infos dans cette page,

    Exemple apres que l'utilisateur à rempli la fiche d'informations sur "accueil.php" toujours,
    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span class="Gras">Sauvegarder :</span>
                                          <input name="Enregistrer" type="button" class="bouton" id="Enregistrer" 
    									  value="Enregistrer" onclick="gopage[b]('traitementfiche.php')"/[/b]></td>
    et dans mon "traitementfiche.php" j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nomfiche = $_POST['nomfiche'];
    $textarea = $_POST['textarea'];
    $textarea2 = $_POST['textarea2'];
    et ca fonctionne, je comprend pas car la c est le meme systeme
    Y a t'il un form dans acceuil.php ?

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    attention avec empty !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ~{2} php
    <?php
     
    $toto = '0';
     
    var_dump(empty($toto));
     
    ?>
    Content-type: text/html
    X-Powered-By: PHP/4.3.11
     
    bool(true)
    ~{3}

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    Y a t'il un form dans acceuil.php ?
    dev_php_205:
    2 form

    la form du menu est "form2", et c'est la seul concerné ici.

    Mr N.: Excuse moi je n'ai rien compris à tes explications, je suis débutant de chez débutant

    ~{2} php
    <?php

    $toto = '0';

    var_dump(empty($toto));

    ?>
    Content-type: text/html
    X-Powered-By: PHP/4.3.11

    bool(true)
    ~{3}
    polace:
    oui vincedjs kia t-il ?
    voila c'est simple, dans "accueil.php" j'ai 1 champ de saisie "textfieldsearch" pour 1futur moteur de recherche.
    Ainsi apres saisie l'utilisateur clic sur 1 bouton "ok" qui renvoi vers la page de traitement "traitementsearch.php"

    Seulement en début de page je souhaite vérifier si le champ est vide avant de traiter la suite, mais il m'affiche tout le temps que le champ est vide, meme si je saisie quelque chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $search = $_POST['textfieldsearch'];
    if(empty($search))
    	{
    	echo '<script language=javascript> alert ("Indiquez un mot clé pour effectuer une recherche");</script>';
    	echo '<SCRIPT LANGUAGE="JavaScript">
    	document.location.href="accueil.php" </SCRIPT>';
    	exit;
    	}else{
    Je ne comprend pas ma ligne
    est correcte non ?

  14. #14
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $search = $_POST['textfieldsearch'];
    if(isset($search))
       {
     
       }else{
    echo '<script language=javascript> alert ("Indiquez un mot clé pour effectuer une recherche");</script>';
       echo '<SCRIPT LANGUAGE="JavaScript">
       document.location.href="accueil.php" </SCRIPT>';
       exit;
    }
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  15. #15
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Mr N.: Excuse moi je n'ai rien compris à tes explications, je suis débutant de chez débutant
    Je disais juste qu'il est, suivant la situation, dangereux de tester avec empty car la chaine '0' est considérée comme "empty" alors qu'elle contient un caractère. C'est pour cette raison que je n'utilise jamais empty...

  16. #16
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    t'a essayé ça donne koi?
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    non toujours pareil

    je post mon code complet pour esssayer d'avancer


    Deja dans ma page d'accueil:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="textfieldsearch" type="text" id="textfieldsearch"
    ps je l'utilise pour le focus donc pas de probleme avec ce champ je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="document.form1.textfieldsearch.focus()" bgcolor="#FFFFFF">size="25" maxlength="30" />
    'Traitementsearch.php'
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php include ('secure.php');
    include ('mysqlconnect.php'); 
    $search = $_POST['textfieldsearch'];
    if(isset($search))
    	{
    	$search = str_replace('+', ' ', trim($search));
    		$search = str_replace('\'', ' ', $search);
    		$search = str_replace(',', ' ', $search);
    		$search = str_replace(':', ' ', $search);
    		$tabsearch = explode(' ' , $search );
    		//on compte le nombre de mots
    		$nbsearch = count($tabsearch);
    		//on prépare la requête SQL.
    		$sql = "select * from fiches where numFiche =\'$tabsearch[0]\' 
    		or nomFiche like \'%$tabsearch[0]%\' 
    		or datecreaFiche =\'$tabsearch[0]\' 
    		or loginF =\'$tabsearch[0]\' 
    		or descriptifFiche like \'%$tabsearch[0]%\' 
    		or resolutionFiche like \'%$tabsearch[0]%\' 
    		or nomProjet =\'$tabsearch[0]\' 
    		or nbhresolution = \'$tabsearch[0]\' 
    		or enseigne = \'$tabsearch[0]\' 
    		or privee =\'$tabsearch[0]\' 
    		or emailF = \'$tabsearch[0]\'";
    		// on boucle pour integrer tous les mots dans la requête
    		$sql = "select * from fiches where 1"; 
    		for ($i = 0; $i < $nb; $i++) 
    			{ 
    			$sql .= " AND ( numFiche='$tabsearch[i]' 
    			or nomFiche like '%$tabsearch[i]%' 
    			or datecreaFiche ='$tabsearch[i]' 
    			or loginF ='$tabsearch[i]' 
    			or descriptifFiche like '%$tabsearch[i]%' 
    			or resolutionFiche like '%$tabsearch[i]%' 
    			or nomProjet '$tabsearch[i]' 
    			or nbhresolution = '$tabsearch[i]' 
    			or enseigne = '$tabsearch[i]' 
    			or privee ='$tabsearch[i]' 
    			or emailF = '$tabsearch[i]' )"; 
    			}
    		// on execute la requête SQL.
    		$result = mysql_db_query($sql);
    		if ($result)
    			{
    			if (mysql_num_rows($result) == 0) 
    				{
    				// Si il n'y a pas de résultats
    				echo '<script language=javascript> 
    				alert ("Pas de résultat");</script>';
    				echo '<SCRIPT LANGUAGE="JavaScript">
    				document.location.href="accueil.php" </SCRIPT>';
    				exit;
    				}else{
    					echo "<center><b>Résultat(s)</b></center><br>";
    					while($row = mysql_fetch_array($result))
    						{
    						echo $row['nomFiche'];
    						}
    					mysql_free_result($result);
    					}
    			}
    			echo "La requête SQL executée est : $sql";
    	}else{	
    		echo '<script language=javascript> alert ("Indiquez un mot clé pour effectuer une recherche");</script>';
    		echo '<SCRIPT LANGUAGE="JavaScript">
    		document.location.href="accueil.php" </SCRIPT>';
    		exit;
    		}

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $search = $_POST['textfieldsearch'];
    if(isset($search))
    A remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_POST['textfieldsearch']) && trim($_POST['textfieldsearch']) != '') {
       $search = $_POST['textfieldsearch'];
       ...

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    J'ai essayé Mr n, toujours pareil

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Moi je fairais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php include ('secure.php'); 
    include ('mysqlconnect.php'); 
    if(isset($_POST['textfieldsearch'])) 
       { 
          $search = $_POST['textfieldsearch']; 
          $search = str_replace('+', ' ', trim($search)); 
          $search = str_replace('\'', ' ', $search); 
          $search = str_replace(',', ' ', $search); 
          $search = str_replace(':', ' ', $search); 
          $tabsearch = explode(' ' , $search );

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/10/2006, 19h49
  2. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  3. [PHP-JS] Problème de variable PHP dans un script JS
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 22h17
  4. [PHP - MSSQL] Problème d'upload / binaire
    Par noiserie dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 25/07/2005, 18h03
  5. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49

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