PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#101 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Ce qui me choque c'est que dans le premier exemple, inexplicablement pour moi, $premier et $second affichaient les littéraux et non les chiffres.

Décidément, on est dans l'impasse tous les deux.

Je ne sais pas lequel des deux s'explique mal, mais on ne s'en sort pas.

#102 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Jc a écrit :

l'exemple suivant peut prêter à confusion

Pourquoi ?

Tout cela n'éclaircit rien du phénomène auquel j'ai été confronté hier.

#103 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Saluton, mon Jc,

C'est vraiment un dialogue de sourds.

Jc a écrit :

2) Il y a correspondance exacte entre la valeur d'index de la clé et la valeur de la clé elle-même (je ne parle que des valeurs numériques) ainsi pour obtenir la valeur de $premier en chiffres, tu te sers de $premier comme index dans ton tableau associatif pour en obtenir la valeur en chiffres :

Là je suppose qu'il faut remplacer tes "en chiffres" par "en lettres".

Que de confusion !

Tout cela j'en étais vraiment persuadé jusqu'à ce que je découvre que dans mon premier script

echo $premier.'  et  '.$second;

me retournait

un et trois

au lieu de

1 et 3

par exemple.

D'où mon étonnement et mon post.

#104 Re : MySQL, PostgreSQL, etc... » Insert sql multiples » 29-04-2014 19:05:06

Saluton,

Personnellement pour construire ces requêtes un peu complexes je préfère la lisibilité de sprintf()

$req2 = sprintf("INSERT INTO slides VALUES('','%s','%s','%s'),
                                          ('','%s','%s','%s'),
                                          ('','%s','%s','%s')",
                $slide1_titre,
                $slide1_text,
                $slide1,
                $slide2_titre,
                $slide2_text,
                $slide2,
                $slide3_titre,
                $slide3_text,
                $slide3);

Mais peut-être que l'une des variables contient une quote ce qui, immanquablement, fera planter la soumission de la requête à MySQL, ce qui semble être le cas avec

sites  et applications we'

#105 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Mouais, je ne comprends rien du tout à ton propos.

Le symptôme auquel j'ai été confronté s'est manifesté de la sorte :
J'ai défini un tableau associatif $chiffres

$chiffres = array(1=>"un",2=>"deux",3=>"trois",4=>"quatre",5=>"cinq",6=>"six",7=>"sept",8=>"huit",9=>"neuf");

Tout simplement pour éviter la position 0 ce qui est assez stupide puisque j'aurais aussi bien pu définir 0=>'zéro'.

J'ai ensuite tiré au sort deux nombres $premier et $second dans l'intervalle 1-9.

$premier = rand(1,9);
$second  = rand(1,9);

J'ai copié ces valeurs dans des items associatifs de $_SESSION

$_SESSION['premier']=$chiffres[$premier];
$_SESSION['second']=$chiffres[$second];

J'ai alors observé que $premier et $second ne contenaient pas des valeurs numériques  comprises entre 1 et 9 mais leurs équivalents littéraux.

Et ce phénomène n'a disparu que lorsque j'ai cessé de donner comme noms à mes variables les index que je leur attribuais dans $_SESSION et je ne trouve pas cela normal du tout.

D'où ma version avec $un et $deux et $_SESSION['premier'] et $_SESSION['second'].

Et rien de ce que tu écris n'explique ce curieux phénomène à mes neurones séniles.

#106 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Quand tu dis que c'est normal, es-tu en train de me dire que si j'ai $un = 1 et $chiffres[1]='un' alors echo $un; va afficher 'un' comme si je faisais echo $chiffres[$un]; ?

Si c'est ça, je sens que je vais avoir un gros mal de tête.

#107 Re : Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Merci mon bon Jc, de porter assistance au troisième âge.

D'où mon incompréhension.

Comment se fait-il que, dans le premier code

Combien font <b><?php echo $premier. '</b> et <b>'.$second.'</b>';?></p>

affichait bel et bien les valeurs du tableau associatif sans même se référer à celui-ci ?

Je finissais par me demander si, dans la config PHP du serveur, il n'y avait pas une directive du genre de la vieille directive register_global sur ON et qui transformait tout index de $_SESSION en variable éponyme; $_SESSION['premier'] et $premier, $_SESSION['second'] et $second.

Car dès que j'utilisais $un et $deux, et non plus $premier et $second, le phénomène disparaissait.

Je réalise que cela peut provenir d'un temps de latence entre la mise à jour par FTP du code sur le serveur et sa prise en compte par le serveur. (Persistance de cache, probablement). Cette explication, moins ésotérique, me semble plus probable, même si je reste assez perplexe.

#108 Forum Général PHP » Je me fais vieux » 30-04-2014 14:08:07

Maljuna Kris
Réponses : 15

Saluton,

Ce matin j'ai remis les mains dans le cambouis du petit formulaire du livre d'or de mon site de chansons hébergé chez Manicow (WDMédia en PHP 5, j'imagine)

Et là j'ai eu une surprise avec ce code :

<?php
session_start();
$chiffres = array(1=>"un",2=>"deux",3=>"trois",4=>"quatre",5=>"cinq",6=>"six",7=>"sept",8=>"huit",9=>"neuf");
$premier = rand(1,9);
$second  = rand(1,9);
$_SESSION['premier']=$chiffres[$premier];
$_SESSION['second']=$chiffres[$second];
?>

*****
                            <p>Piège à robots, merci de répondre en chiffres. Combien font <b><?php echo $premier. '</b> et <b>'.$second.'</b>';?></p>
                            <p>
                                <label for="captcha" title="Veuillez saisir le résultat en chiffres" class="oblig">* réponse :</label>
                                <input type="text" name="captcha" size="3" tabindex="3" >
                            </p>

En effet, alors qu'il s'agissait selon moi d'une étourderie de ma part, ce code affiche bien les littéraux correspondant aux chiffres tirés au hasard, alors que selon moi, il devrait afficher les chiffres.

J'ai donc modifié mon code comme ceci

<?php
session_start();
$chiffres = array(1=>"un",2=>"deux",3=>"trois",4=>"quatre",5=>"cinq",6=>"six",7=>"sept",8=>"huit",9=>"neuf");
$un = rand(1,9);
$deux  = rand(1,9);
$_SESSION['premier']=$chiffres[$un];
$_SESSION['second']=$chiffres[$deux];
?>

****
                            <p>Piège à robots, merci de répondre en chiffres. Combien font <b><?php echo $chiffres[$un]. '</b> et <b>'.$chiffres[$deux].'</b>';?></p>
                            <p>
                                <label for="captcha" title="Veuillez saisir le résultat en chiffres" class="oblig">* réponse :</label>
                                <input type="text" name="captcha" size="3" tabindex="3" >
                            </p>

Ce qui fonctionne tout à fait normalement mais je m'interroge, par quelle magie, dans le premier code, les index se transformaient-ils en leurs littéraux ?

#109 Re : Forum Général PHP » Se connecter à une bbd (mysqli_ ou PDO) ?? » 10-04-2014 12:44:02

Saluton,

Sans hésitation, PDO.

Depuis le temps qu'il est annoncé, qu'à terme, ce sera le seul moyen de s'interfacer avec les bases de données sous PHP, autant prendre de suite les bons réflexes.

Amike.

#110 Re : Forum Général PHP » [Résolu]Retour à la ligne » 07-04-2014 08:20:02

Alors c'est peut-être là :

         while($i<$nb_champs) {
                                        $nom_champ=$champs["$table"]["$i"];
                                        if ($nom_champ=="mdp") {
                                                echo "<td>********</td>";
                                        } else {
                                                echo "<td>".nl2br($res["$nom_champ"])."</td>";
                                               
                                        }
                                        $i++;
                                }

#111 Re : Forum Général PHP » Relier plusieurs programmes dans un seul » 06-04-2014 16:53:21

Saluton,

Peux-tu te montrer un peu plus précise car il y a plusieurs possibilités qui dépendent beaucoup de l'architecture des scripts, de leurs types d'imbrications et de leurs emplacements physiques relatifs dans l'arborescence du serveur HTTP.

#112 Re : Forum Général PHP » [Résolu]Retour à la ligne » 07-04-2014 08:20:02

Saluton,

Si j'ai bien compris ton script un peu tuyau de poële, je te suggère ceci

echo "
<tr>
    <td>$nom_champ_maj</td>
   <td>
       <textarea name=\"$nom_champ\" cols=\"40\" rows=\"3\">".nl2br($res["$nom_champ"])." </textarea>
   </td>
</tr>";

#113 Re : Forum Général PHP » Création de lien automatique » 29-07-2014 11:33:43

Saluton,
J'avoue que je ne comprends pas ce qui bloque.

Tu fais une requête qui va te retourner la liste des ID et tu construis tes liens en PHP dans le script de la page index.php en parcourant le recordset de la requête.

#114 Re : HTML, xHTML CSS » Text par defaut dans une liste déroulante » 04-04-2015 10:22:11

Saluton,
Tu peux regarder du côté de optgroup

<select>
  <optgroup label="texte par défau">
    <option value="machin">Machin</option>
    <option value="truc">Truc</option>
  </optgroup>
</select>

#115 Re : HTML, xHTML CSS » probleme menu et div » 29-10-2014 03:34:40

Saluton,

SAns aller voir sur le fond (je n'ai pas trop le temps), pourquoi deux CSS ?

#117 Re : MySQL, PostgreSQL, etc... » Drôle de problème ! » 01-04-2014 22:02:06

Tu peux faire voir le résultat d'un SHOW CREATE TABLE nomdelatable et la requête soumise par PHP à MySQL ?

#118 Re : MySQL, PostgreSQL, etc... » Drôle de problème ! » 01-04-2014 22:02:06

Saluton,

Quelle est la taille de la colonne dans la définition de la table ?

#119 Re : Forum Général PHP » message d'erreur sur site php » 01-04-2014 06:45:32

Saluton,

A priori, il s'agit d'un problème de droits d'accès sur $fic.

#120 Re : Forum Général PHP » Comment mettre un avatar? » 31-03-2014 01:45:10

Saluton,

Si tu cliques sur le lien de ton pseudo, dans ce post par exemple, tu vas accéder à la page d'administration de ton profil.
Tu y trouveras un menu vertical sur la gauche de l'écran dans lequel se trouve la rubrique "Personnalité".

C'est sur elle qu'il faut cliquer pour saisir un avatar et ta signature.

#121 Re : Forum Général PHP » Ne pas afficher la ligne si la variable est vide. » 27-03-2014 23:44:13

Pierrot a écrit :

la solution que j'ai donnée doit fonctionner.

Il manquait une parenthèse fermante que j'ai rajoutée.

#122 Re : Forum Général PHP » Concatenation avec espaces » 27-03-2014 22:31:57

Saluton,

J'ose espérer, cher Carlos, que tu ne sous-entends pas que celle que j'ai proposée soit complexe et inefficace.

#123 Re : MySQL, PostgreSQL, etc... » Récupérer des valeurs dans la base de donnée » 24-03-2014 09:31:49

Je ne crois pas que l'attribut alt d'une balise <img/> (ou autre d'ailleurs) accepte des balises de formatage du texte qu'il est censé affiché dans une infobulle.

#124 Re : MySQL, PostgreSQL, etc... » Récupérer des valeurs dans la base de donnée » 24-03-2014 09:31:49

Saluton,

Si tu as bien modifié le contenu de l'index de l'array $user->lang['TOPIC_EVALUATION_RESULT'] avec 'Sur <span class="count">%u</span> avis, note : <span class="rating">%.2f. %s</span>', je ne vois pas de raison que la fonction sprintf() ne transfère pas correctement cette valeur à la variable $alt en y insérant et formatant selon %u, %.2f et %s les items $row['evaluation_count'],  $row['evaluation'], $own_evaluation.
Après, reste à savoir comment le code procède pour afficher $alt.

#125 Re : Forum Général PHP » Saisie d'un message par PHP graphique mais considere comme vide !? » 22-03-2014 08:57:38

Donald a écrit :

où est-ce que je devrais recevoir l'echo de $_POST ?

print_r($_POST) est censé envoyé le contenu de $_POST dans le flux HTML.

Donc ça devrait s'afficher dans le navigateur, si tu viens bien dans Simplepush.php via le formulaire.

Pied de page des forums

Propulsé par FluxBB