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 :

Version de php pour une condition


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut Version de php pour une condition
    Bonjour,

    Je suis très embêtée car même pas "débutante" mais ce qui m'amène c'est un bout de code qui ne passe plus sur ma page... J'explique.
    Il y a plusieurs années, sur un site qui n'existe plus (asp-php.net), des gens m'avaient aidé à faire une page présentant le détail de chaque location de mon site. Or, je suis hébergée chez OVH, et bientôt toutes les versions antérieures à PHP 5.4 ne seront plus supportées.
    J'ai fait plein de tests et vérifié toutes mes pages. Tout va bien sauf ce petit bout de code qui empêche l'affichage d'un lien pour les chambres d'hôtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php if($row_Recordset1['type_loc']=='Chambre d\'hôtes'){ echo "&nbsp;";
    }else{ echo ?>
    Quand je dis que "ça ne passe pas", ça veut dire que, si je laisse ce code sur la page, avec php 5.4 j'ai une page blanche (alors qu'avec php 4, la page s'affiche normalement).
    Pourriez-vous me dire ce qui cloche et comment réparer la chose ?
    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    else echo... quoi ??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Ah oui... Voilà la ligne entière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if($row_Recordset1['type_loc']=='Chambre d\'hôtes'){ echo "&nbsp;";
    }else{ echo ?>
    <p><a href="#dispo"><strong>Voir les disponibilités</strong></a></p><?php		 
    }
    ?>

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Fait nous un petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($row_Recordset1['type_loc']);
    Je soupçonne un léger souci de UTF-8 car ceci : ''Chambre d\'hôtes'' : est une horreur

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Au passage :
    c'est soit la fermeture des balises et pas echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php if($row_Recordset1['type_loc']=='Chambre d\'hôtes'){ 
      echo "&nbsp;";
    }else{ ?>
    <p><a href="#dispo"><strong>Voir les disponibilités</strong></a></p>
    <?php		 
    }
    ?>
    soit echo à l'intérieur des balises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php if($row_Recordset1['type_loc']=='Chambre d\'hôtes'){ 
      echo "&nbsp;";
    }else{ 
      echo '<p><a href="#dispo"><strong>Voir les disponibilités</strong></a></p>'	 
    }
    ?>
    Mais pas les deux en même temps.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Merci pour vos réponses à tous les deux !
    Je vais rectifier pour les balises (je pense avoir compris), en revanche je ne comprends pas ce que veut dire
    "Fait nous un petit var_dump($row_Recordset1['type_loc']);"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par evevev Voir le message
    Merci pour vos réponses à tous les deux !
    As-tu bien compté ?

    [EDIT] B-A-BA du débogage :
    • afficher les variables : echo $ma_variable;
    • afficher les tableaux (array, résultats de requêtes) : var_dump($mon_array);

    afin de vérifier ce qu'elle contiennent.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    ????

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    evevev : il faut que tu ajoutes un var_dump($row_Recordset1['type_loc']) dans ton code (temporairement) pour voir ce qu'il y a dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php var_dump($row_Recordset1['type_loc']);
    if($row_Recordset1['type_loc']=='Chambre d\'hôtes'){
    @jreaux : ben "echo quoi ?" c'est pas franchement une réponse, plutôt une question.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    J'ai fini par comprendre (mais j'ai quand même bien compté DEUX personnes qui m'ont répondu !)

    Donc j'ai mis ça en haut de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo var_dump($row_Recordset1['type_loc']);
    et ça me renvoie NULL ! Ça prouve donc qu'il y a un problème, c'est ça ? Parce que dans la base de données, ce champ est bien renseigné pour toutes les locations, quel qu'en soit le type.

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Pô grâve on va dire que c'est moi que tu as pas compté

    Donc si tu variable est null, il est normal que tu ne rentres pas dans le if.

    Il faut maintenant remonter à l'initialisation de cette variable.

    Montre nous le code qui fait cela.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    @jreaux : ben "echo quoi ?" c'est pas franchement une réponse, plutôt une question.
    C'est pourtant ce qui a permis d'afficher le reste du code, et de vous permettre de répondre...

    D'autre part, j'estime que "participer" à la discussion mérite déjà des remerciements.


    Cela dit, j'avais dit ça sur le ton de la plaisanterie.

  13. #13
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Je t'ai mis un bon point

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Ah ben oui, c'était 3, pas au point aujourd'hui

    Voici le code après la connection à la bdd (j'espère que c'est bien ça "l'initialisation de la variable"...)

    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
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    $colname_Recordset1 = "-1";
    if (isset($_GET['recordID'])) {
      $colname_Recordset1 = $_GET['recordID'];
    }
     
    $query_Recordset1 = sprintf("SELECT * FROM locCRT WHERE ID_loc = %s AND (enligne = 1 OR enligne = 2)", GetSQLValueString($colname_Recordset1, "int"));
    $Recordset1 = mysql_query($query_Recordset1, $connCRT) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);

  15. #15
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Va falloir repasser sur l'ensemble du code, car il devient obsolète sur l'ensemble du code que tu montres.

    Peux-tu ajouter un var_dump comme je le fait, pour voir la query


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $query_Recordset1 = sprintf("SELECT * FROM locCRT WHERE ID_loc = %s AND (enligne = 1 OR enligne = 2)", GetSQLValueString($colname_Recordset1, "int"));
    var_dump($query_Recordset1);
    $Recordset1 = mysql_query($query_Recordset1, $connCRT) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Je t'ai mis un bon point
    Merci ! Moi aussi

    Un peu de testostérone tendresse dans ce monde de... chipies* !

    *Humour, encore.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Je savais bien que je finirai par avoir ce genre de problème, depuis le temps que j'entasse en amateur...
    Ça me donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to undefined function: getsqlvaluestring() in /home/etc.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Je laisse tomber ! Ce n'est pas bien grave de toute façon, mais je me rends bien compte qu'il n'est pas possible de démêler l'affaire sans tout revoir. Je vais modifier la valeur dans la bdd pour éviter l'apostrophe. Si ça ne change rien, eh bien je supprimerais la condition, ce n'est pas primordial. Et quand j'aurai les moyens, je ferai tout refaire par un pro !
    Merci encore !

  19. #19
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    OK Maintenant commente ton code (pour garder la trace de ce qu'on va modifier)

    et remplace par ceci

    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
     
    <?php
     
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
        if (PHP_VERSION < 6) {
            $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
        }
     
        $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
        switch ($theType) {
            case "text":
                $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                break;
            case "long":
            case "int":
                $theValue = ($theValue != "") ? intval($theValue) : "NULL";
                break;
            case "double":
                $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
                break;
            case "date":
                $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                break;
            case "defined":
                $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
                break;
        }
        return $theValue;
    }
     
    $colname_Recordset1 = "-1";
    if (isset($_GET['recordID'])) {
        $colname_Recordset1 = $_GET['recordID'];
    }
     
    $query_Recordset1 = sprintf("SELECT * FROM locCRT WHERE ID_loc = %s AND (enligne = 1 OR enligne = 2)", GetSQLValueString($colname_Recordset1, "int"));
    var_dump($query_Recordset1);
    $Recordset1 = mysql_query($query_Recordset1, $connCRT) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);

  20. #20
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Ben attend trois minutes quand même le temps qu'on reviennent de notre repas.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/12/2007, 23h33
  2. Choix de la version de Delphi pour une migration
    Par jesusnavas dans le forum EDI
    Réponses: 0
    Dernier message: 14/11/2007, 13h24
  3. Une version de linux pour une machine assez ancienne.
    Par Muesko dans le forum Distributions
    Réponses: 8
    Dernier message: 06/07/2006, 17h37
  4. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06
  5. [Sécurité] Pb PHP pour une session membre
    Par fredylover dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 08h59

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