[RESOLU] enregistrer des actions de l'utilisateur

Eléphanteau du PHP | 35 Messages

30 mai 2013, 11:36

bonjour a tous,

avant tout je tiens a dire que je debut dans le php.

voila, comme le dit le titre, j'aimerai enregistrer les actions faites par un utilisateur .C'est a dire le nom, prenom, activiter, sous activiter, date et heure des actions.

j'ai fait tout les tableaux pour donc: compte, activiter, sous activiter et suivi.

j'ai aussi fait une partie du code .

pour l'instant j'ai juste réussie a faire la selection des activiter et sous activiter mais pas de les enregistrers !

est-que quelqu'un pourrais m'aider s'il vous plait ?

voici mon code:
<?php
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:null;
?>
<html>
<head>
<title>Selectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<?php
if(isset($_POST['ok']) && isset($_POST['Sous_Activ']) && $_POST['Sous_Activ'] != "")
{
    $activ_selectionnee = $_POST['Activ_Principal'];
    $sactiv_selectionne = $_POST['Sous_Activ'];
?>
<p>Vous avez selectionne la sous activiter <?php echo($sactiv_selectionne); ?> dans l'activiter <?php echo($activ_selectionnee); ?></p>
<?php
}
?>
<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
*  car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect("localhost", "root","");
if($connexion != false)
{
    $choixbase = mysql_select_db("application");
    $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
    " FROM `activiter_principales`".
    " ORDER BY `ID_Activprinc`";
    $rech_activ = mysql_query($sql1);
    $code_activ = array();
    $activ = array();
    /* On active un compteur pour les activiter */
    $nb_activ = 0;
    if($rech_activ!= false)
    {
        while($ligne = mysql_fetch_assoc($rech_activ))
        {
            array_push($code_activ, $ligne['ID_Activprinc']);
            array_push($activ, $ligne['Activ_Principal']);
 
            /* On incrémente de compteur */
            $nb_activ++;
        }
    }
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="Activ_Principal">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_Principal" onchange="document.forms['chgdept'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>
  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($idr) && $idr == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>
<?php
    }
    ?>
</select>
    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activiter et le cas échéant s'il est différent de -1 */
 
    if(isset($idr) && $idr != -1)
    {
        /* Cération de la requête pour avoir les sous activiter de cette activiter*/
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $idr ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activier */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activiter */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activiter dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* construction de la liste déroulante */
            ?>
<select name="Sous_Activ" id="Sous_Activ">
            <?php 
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($sactiv_selectionne) && $sactiv_selectionne == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>
</select>
<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>
<br /><input type="submit" name="ok" id="ok" value="Valider" />
<tr /><input type="button" onclick="window.location.replace('menu.php')" value="Annuler" />
</fieldset>
</form>
<?php
    /* on ferme la connexion */
    mysql_close($connexion);
}
else
{
    /*cas de probleme*/
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>

Eléphanteau du PHP | 35 Messages

30 mai 2013, 14:07

PLEASE !

Eléphanteau du PHP | 35 Messages

06 juin 2013, 11:24

s'il vous plait j'ai vraiment besoin de vous!

Mammouth du PHP | 619 Messages

06 juin 2013, 11:41

Bonjour,

comment veux tu les enregistres car si tu recupere deja les actions il faut que a chaque action ou sous action tu fasse un insert dans une table exemple

table : users_action
id,id_user,action,sousaction,date

a chaque action de l'user tu fais un insert

$activ_selectionnee = $_POST['Activ_Principal'];
$sactiv_selectionne = $_POST['Sous_Activ'];
pour id_user je supose que tu le récupére depuis une session
insert into users_action ('id_user','action','sousaction','date') VALUES ('$id_user','$activ_selectionnee','$sactiv_selectionne','$date')

cela reste un exemple

Eléphanteau du PHP | 35 Messages

06 juin 2013, 11:51

merci de cette reponse , par rapport a se que tum 'as dit j'essayer de faire quelque chose pour enregister sur une autre page mais sa marche pas. je te montre mon menu.php et registre.php se que tu peut voir se qui cloche ?

menu.php
<?php
/* Variables de connexion */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";
/* On récupère si elle existe, la valeur de l'activité envoyée par le formulaire */
$val = isset($_POST['Activ_Principal'])?$_POST['Activ_Principal']:null;

?>
<html>
<head>
<title>Sélectionner une sous activiter selon l'activiter choisie</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<?php
/* On établit la connexion à MySQL */
$connexion = mysql_pconnect("localhost", "root","");
if($connexion != false)
{
    $choixbase = mysql_select_db("application");
    $sql1 = "SELECT `ID_Activprinc`, `Activ_Principal`".
    " FROM `activiter_principales`".
    " ORDER BY `ID_Activprinc`";
    $rech_activ = mysql_query($sql1);
    $code_activ = array();
    $activ = array();
    /* On active un compteur pour les activités */
    $nb_activ = 0;
    if($rech_activ!= false)
    {
        while($ligne = mysql_fetch_assoc($rech_activ))
        {
            array_push($code_activ, $ligne['ID_Activprinc']);
            array_push($activ, $ligne['Activ_Principal']);

            /* On incrémente de compteur */
            $nb_activ++;
        }
    }
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsact">
<fieldset style="border: 3px double #333399">
<legend>Selectionnez une activiter</legend>
<select name="Activ_Principal" id="Activ_principal" onchange="document.forms['chgsact'].submit();">
  <option value="-1">- - - Choisissez une activiter - - -</option>
    <?php
    for($i = 0; $i < $nb_activ; $i++)
    {
?>
  <option value="<?php echo($code_activ[$i]); ?>"<?php echo((isset($val) && $val == $code_activ[$i])?" selected=\"selected\"":null); ?>><?php echo($activ[$i]); ?></option>
<?php
    }
    ?>
</select>
    <?php
    mysql_free_result($rech_activ);
    /* On commence par vérifier si on a envoyé un numéro de l'activité et le cas échéant s'il est différent de -1 */

    if(isset($val) && $val != -1)
    {
        /* Cération de la requête pour avoir les sous activités de cette activité */
        $sql2 = "SELECT `ID_Sousactiv`, `Sous_Activ`".
        " FROM `sous_activiter`".
        " WHERE `ID_Activprinc` = ". $val ."".
        " ORDER BY `ID_Sousactiv`;";
        if($connexion != false)
        {
            $rech_sactiv = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les sous activités */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des sous activités */
            $code_sactiv = array();
            $nom_sactiv = array();
            /* On va mettre les numéros et noms des sous activités dans les deux tableaux */
            while($ligne_sactiv = mysql_fetch_assoc($rech_sactiv))
            {
                array_push($code_sactiv, $ligne_sactiv['ID_Sousactiv']);
                array_push($nom_sactiv, $ligne_sactiv['Sous_Activ']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="Sous_Activ">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_sactiv[$d]); ?>"<?php echo((isset($sactiv_selectionne) && $sactiv_selectionne == $code_sactiv[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_sactiv[$d]." (". $code_sactiv[$d] .")"); ?></option>
                <?php
            }
?>
</select>
<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_sactiv);
    }
?>
<br /><input type="button" value="Valider" onclick="location.href='registre.php'"/>
<tr /><input type="button" value="Annuler" onclick="location.href='menu.php'" />
</fieldset>
</form>
<?php
    /* ferme la connexion */
    mysql_close($connexion);
}
else
{
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>
registre.php
<html>
<head>
<title>enregistrement</title>
</head>
<body>
<?php
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "application";

             mysql_connect("localhost","root","")
            or die ("impossible de se connecter a la base de donnée");
  
             mysql_select_db("application")
            or die ("impossible de selectionné la base de donnée");
   
            $sql = "INSERT INTO suivi (, ID_Activprinc, ID_Sousactiv) VALUES('".$code_sactiv."','".$code_activ."')"; 
            $req = mysql_query($sql)
	        or die("Erreur dans la requete SQL!");
	
            if($req)
             {
              echo("L'enregistrement a ete correctement effectuee") ;
             }
             else
              {
               echo("L'enregistrement a echouee") ;
              }
*/
?>
<p>Vous avez selectionne la sous activiter <?php echo($sactiv_selectionne); ?> dans l'activiter <?php echo($activ_selectionnee); ?></p>
<br /><input type="button" value="deconnexion" onclick="location.href='index.html'"/>
<tr /><input type="button" value="retour" onclick="location.href='menu.php'" />
</body>
</html>

Mammouth du PHP | 619 Messages

06 juin 2013, 12:00

Re,

a la ligne 30 il a deja */ en erreur et

$sql = "INSERT INTO suivi (, ID_Activprinc, ID_Sousactiv) VALUES('".$code_sactiv."','".$code_activ."')";

il a une virgule au debut

$sql = "INSERT INTO suivi (ID_Activprinc, ID_Sousactiv) VALUES('".$code_sactiv."','".$code_activ."')";

après qu'est ce qui ne marche pas l'insert ou la lecture

Eléphanteau du PHP | 35 Messages

06 juin 2013, 12:08

merci bien car, sa marche déjà un peut mieux ;)

mais dans le registre il me met Undefined variable code_sactiv ,code_activ, sactiv_selectionne et activ_selectionnee

sa veut dire que j'ai pas déclare mes variables ?

Mammouth du PHP | 619 Messages

06 juin 2013, 12:14

Re,

en effet :)

comment appelle tu ton fichier ?

Eléphanteau du PHP | 35 Messages

06 juin 2013, 12:15

il s'apelle registre.php :)

Mammouth du PHP | 619 Messages

06 juin 2013, 12:17

Re,

oui en effet le fichier se nome registre.php mais comment fait tu appelles a se fichier un include ou ?

Eléphanteau du PHP | 35 Messages

06 juin 2013, 12:20

euh je vais peut etre dire une betise mais je fait appele avec un input du fichier menu.php

désoler si c'est pas sa mais je compred pas trop se que tu veut dire :s :(

Mammouth du PHP | 619 Messages

06 juin 2013, 12:25

Re,

pour pouvoir enregistrer les actions de chaque utilisateur tu dois appelle se fichier tu me dis input tu veux dire via un formulaire

<form action="registre.php" method="" />


</form>

Eléphanteau du PHP | 35 Messages

06 juin 2013, 12:29

oui car enfait, j'aimerai que quand il valide avec le button du fichier menu.php que sa enregistre ces choix par le fichier registrer.php

Mammouth du PHP | 619 Messages

06 juin 2013, 12:31

Re,

j'essaie de comprendre

tu as un formulaire dans ton menu ?
il choisi l'action et valide il arrive sur la page registre.php
tu enregistres les infos

c'est bien ca ?

Eléphanteau du PHP | 35 Messages

06 juin 2013, 12:53

oui exactement :) désoler je m'explique peut être mal :s