Nom de session

atk -  
DelNC Messages postés 2360 Statut Membre -
Bonjour,

j'ai créée un site dans lequel on peut insérer des commentaires, on peut remplir deux text : film et commentaire, mais je voudrais insérer le pseudo de la personne, et je galère un peu. J'ai essayé un $_SESSION['login'] dans un insert mais ça ne marche pas :/ voici monde code :

- <?php
session_start();
mysql_connect("localhost", "root", "");
mysql_select_db("cinema");
include('inserer_func.php');

$sql = "SELECT * FROM commentair ORDER BY date DESC";
$req = mysql_query($sql);
while ($resultat = mysql_fetch_assoc($req))
{
echo "Film : " . $resultat['film'] . "<br/>" . "texte : " . $resultat['corps'] . "<br/>" . "à " . $resultat['date'] . "</br>" . "<hr>";
}

if(isset($_POST['submit']))
{
$pseudo = htmlspecialchars(trim(mysql_real_escape_string($_POST['film'])));
$commentaire = htmlspecialchars(trim(mysql_real_escape_string($_POST['commentaire'])));

if(empty($pseudo) || empty($commentaire))
{
echo "Les champs sont vides veuillez les remplir";
}

else
{
inserer_commentaire($pseudo, $commentaire);
header("location: avislogin.php?id={$_GET['id']}");

}
}
?>

et le dossier include :

<?php
function inserer_commentaire($pseudo, $commentaire)
{

mysql_query("INSERT INTO commentair VALUE('','{$_GET['id']}','$pseudo','$commentaire', NOW())") or die(mysql_error());

}

function afficher_commentaires()
{

$commentaires = array();

$query = mysql_query("

SELECT * FROM commentair WHERE id_article = '{$_GET['id']}' ORDER BY date");

while($row = mysql_fetch_assoc($query))
{
$commentaires[] = $row;

}
return $commentaires;
}
?>

Donc je pensais mettre le $_session['login'] dans le include, mais rien ne marche

1 réponse

  1. Delphine
     
    Essaye çà.

    à la page où les visiteurs se connectent
    colle çà tout en haut en dehors du php
    <?php session_start(); ?>

    Dans le php
    <center>

    <h2>Entrez votre login et votre mot de passe</h2>
    <form method="post" action="user_login_action.php">
    <table class="green">
    <tr><td>login </td><td><input type="text" name="login" ></td></tr>
    <tr><td>password</td><td><input type="password" name="password"></td></tr>
    <tr><td> </td><td><input type="submit" ></td></tr>
    </table>
    </form>
    <br/>
    </center>

    //page qui verifie si couple login/password est bon
    <?php
    /*reception valeurs*/
    if(isset($_REQUEST["login" ])) {$login = $_REQUEST["login" ];}
    else {$login = "";}
    if(isset($_REQUEST["password"])) {$password = $_REQUEST["password"];}
    else {$password = "";}
    ?>

    <?php
    /*mise en session des valeurs*/
    $_SESSION["login" ] = $login;
    $_SESSION["password"] = $password;
    $_SESSION["status" ] = identification($login,$password);
    ?>

    <?php
    /*affichages suivant le cas*/
    if (identification($login,$password)=="valid") {
    $_SESSION["id_user"] = sql_get_id_user($login);
    echo "<h2>Le couple LOGIN / PASSWORD est valide.</h2>\n";
    }//end if

    // mets le code ci-dessous dans une autre page ex include_functions.php
    Il faudra appeler cette page en utilisant un include
    ex <?php include("include_functions.php"); ?>

    function display_error() {
    //sert a afficher un message d'erreur sur une page en cas de login invalide
    if(isset($_SESSION["status"])) {$status = $_SESSION["status"];}
    else {$status = "invalid";}
    if ($status == "invalid") {include('include_error.php');
    }//end if
    }//end function

    Dans chacune des pages mets aussi tout en haut
    <?php session_start(); ?>

    Pour le contenu des pages que tu veux limiter aux personnes loguées mets
    <?php
    if ($status=="valid") { .......
    }
    1
    1. DelNC Messages postés 2360 Statut Membre 2 010
       
      Le code est bien expliqué

      GOOD WORK
      0