Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 02-11-2009 14:57:43

seb_accrorun
Membre

Problème de codage suite à une intégration dans un site.

bonjour,

Je me sert de la table d'utilisateur de flux pour limiter l'accès à certaines pages de mon site.
Mais voilà j'ai une page avec laquelle j'écris dans la base de données (sur une table qui n'a rien à voir avec le forum). depuis que j'ai rajouter les lignes d'identifications, mon formulaire écrit qu'une valeur sur 15 dans la base de données.
Seules les données qui proviennent d'un formulaire avec un choix (non/oui) ne sont pas écrites.
Voici le code rajouté c'est "define" et "require" qui posent problème:

// connexion à la table des membres du forum
define('PUN_ROOT', '../../forum/');
require PUN_ROOT.'include/common.php';

// verification si le membre est connecté
if (!$pun_user['is_guest'])
{
?>
Bienvenue <?php
 echo $pun_user['username'];
}
else
{
  header('Location: ../identification.php'); 
}

?>

Voila une partie du code qui me sert à écrire dans ma base données (se trouve dans la même page):

    //VARIABLES GENERALES
include("../data.php");
global $dbserver;
global $dbdb;
global $dbuser;
global $dbpass;
//CONNEXION A LA BASE DE DONNEES
$base = @MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de données.<br>Vérifiez les donnés du fichier <b>data.php</b>.</p>");
mysql_select_db("dbdb",$base);


//-----------------------------------------------------
// Vérification 1 : y a t'il des nageurs?
//-----------------------------------------------------
if (isset($_POST['nom']))
{
    $nom = mysql_real_escape_string($_POST['nom']);
     
    // On vérifie si c'est une creation de nageur ou pas
    if ($_POST['id_champ_ete'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
      
$req = "INSERT INTO champ_ete 

VALUES('', '" . $nom . "', '" . $nlc . "', '" . $bc . "', 
'" . $papc . "', '" . $dosc . "', '" . $nlcent . "', 
'" . $papcent . "', '" . $doscent . "', '" . $centquatre . "', 
'" . $nldeux . "', '" . $papdeux . "', '" . $dosdeux . "', 
'" . $deuxquatre . "', '" . $bcent . "', '" . $bdeux . "')";

if (false === mysql_query($req)) die ('Erreur sur la requête :<br />'.$req.'<br />'.mysql_error());

    }

seul la donnée $nom est écrite.

Merci de me venir en aide

cordialement

Seb

Dernière modification par seb_accrorun (02-11-2009 15:01:00)

Hors ligne

#2 02-11-2009 16:01:33

fanf73
Wik-wiki

Re : Problème de codage suite à une intégration dans un site.

C'est normal, $nom est la seule variable que tu génères, les autres n'existent pas (d'après le bout de code que l'on voit);.


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#3 02-11-2009 16:13:04

seb_accrorun
Membre

Re : Problème de codage suite à une intégration dans un site.

Merci de ta réponse.
Mais où vois tu que je génère que la valeur $nom et pas le reste?

voila une partie du formulaire qui ramène les valeurs:

  <form action="champ_ete1.php" method="post">


<P>Nom:<input type="text" size="15" name="nom"  value="<?php echo $nom; ?>" /></p>
<P>50nl:<select name="nlc">
         <option <?php if($nlc == "NON") { echo 'selected'; } ?>>NON</option>
        <option <?php if($nlc == "OUI") { echo 'selected'; } ?>>OUI</option>
         </select>  50 BRASSE:<select name="bc"></P>
        <option <?php if($bc == "NON") { echo 'selected'; } ?>>NON</option>
        <option <?php if($bc == "OUI") { echo 'selected'; } ?>>OUI</option>
         </select> 50PAP:<select name="papc">
        <option <?php if($papc == "NON") { echo 'selected'; } ?>>NON</option>
        <option <?php if($papc == "OUI") { echo 'selected'; } ?>>OUI</option>
         </select> 50DOS:<select name="dosc">
        <option <?php if($dosc == "NON") { echo 'selected'; } ?>>NON</option>
        <option <?php if($dosc == "OUI") { echo 'selected'; } ?>>OUI</option>
         </select>
<input type="hidden" name="id_champ_ete" value="<?php echo $id_champ_ete; ?>" />
    <input type="submit" value="Envoyer" />
</form>

Et pourquoi ça ne fonctionne plus après le rajout du bout de code  qui sert à l'identification? car lorsque je l'enlève ça marche!!!

Hors ligne

#4 02-11-2009 16:32:47

fanf73
Wik-wiki

Re : Problème de codage suite à une intégration dans un site.

Je le vois au fait que $nom est la seule variable que tu extrais de la variable $_POST : 

$nom = mysql_real_escape_string($_POST['nom']);

Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#5 02-11-2009 17:00:19

seb_accrorun
Membre

Re : Problème de codage suite à une intégration dans un site.

Merci pour cette réponse rapide.
Mais pourquoi lorsque j'enlève les lignes de la connexion à la table des membres du forum ça marche?

J'ai rajouté les valeurs dans mon code, ça donne :

if (isset($_POST['nom']))
{
    $nom = mysql_real_escape_string($_POST['nom']);
    $nlc = mysql_real_escape_string($_POST['nlc']);
    $bc = mysql_real_escape_string($_POST['bc']);
    $papc = mysql_real_escape_string($_POST['papc']);
    $dosc = mysql_real_escape_string($_POST['dosc']);
    $nlcent = mysql_real_escape_string($_POST['nlcent']);
    $bcent = mysql_real_escape_string($_POST['bcent']);
    $papcent = mysql_real_escape_string($_POST['papcent']);
    $doscent = mysql_real_escape_string($_POST['doscent']);
    $nldeux = mysql_real_escape_string($_POST['nldeux']);
    $bdeux = mysql_real_escape_string($_POST['bdeux']);
    $papdeux = mysql_real_escape_string($_POST['papdeux']);
    $dosdeux = mysql_real_escape_string($_POST['dosdeux']);
    $centquatre = mysql_real_escape_string($_POST['centquatre']);
    $deuxquatre = mysql_real_escape_string($_POST['deuxquatre']);
     
    // On vérifie si c'est une creation de nageur ou pas
    if ($_POST['id_champ_ete'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
      
$req = "INSERT INTO champ_ete 

VALUES('', '" . $nom . "', '" . $nlc . "', '" . $bc . "', 
'" . $papc . "', '" . $dosc . "', '" . $nlcent . "', 
'" . $papcent . "', '" . $doscent . "', '" . $centquatre . "', 
'" . $nldeux . "', '" . $papdeux . "', '" . $dosdeux . "', 
'" . $deuxquatre . "', '" . $bcent . "', '" . $bdeux . "')";

Mais je comprends pas les données receuillies sont fausse.
Je m'explique la valeur rentrée dans $nlc ce retrouve dans $bc, en gros tout se mélange.

Je perds la boule.

Merci encore de vos aides précieuses.

Seb

Hors ligne

#6 02-11-2009 19:33:43

Otomatic
Régisseur

Re : Problème de codage suite à une intégration dans un site.

seb_accrorun a écrit :

Je m'explique la valeur rentrée dans $nlc ce retrouve dans $bc, en gros tout se mélange.

MySQL et PHP ne font que ce que on leur dit de faire. Le « mélange » vient de ta part.

Tu codes :

$req = "INSERT INTO champ_ete 
VALUES('', '" . $nom . "', '" . $nlc . "', '" . $bc . "', '" . $papc . "',  etc.

Sans vérifier que les valeurs et leur ordre correspondent bien au même ordre des colonnes de la table champ_ete.
Pour être cohérent et éviter les erreurs, il est recommandé de « dire » à MySQL dans quelle colonne doit aller telle valeur.
C'est-à-dire d'utiliser ce qu'on appelle le Row Constructor ou « Constructeur de ligne », comme suit :

$req = "INSERT INTO champ_ete (nom_colonne_2, nom_colonne_3, nom_colonne_4, etc. )
VALUES('$nom', '$nlc', '$bc',etc.

Comme ça, on peut ignorer certaines colonnes et on n'a pas à se préoccuper de l'ordre des colonnes puisque que l'on fait correspondre des couples nom_de_colonne/valeur.

Dernière modification par Otomatic (02-11-2009 19:46:42)


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#7 04-11-2009 15:50:37

seb_accrorun
Membre

Re : Problème de codage suite à une intégration dans un site.

Merci smile

Tout est rentré dans l'ordre.

Cordialement

seb

Hors ligne

Pied de page des forums