John Badeux

Bonjour, Je suivais le tutoriel " Créer une application web de tchat avec espace membre. " et une fois arrivé à la partie [56] Créer une application web de tchat avec espace membre. Partie 5 J'ai eu un problème suivant : " Quand je me connecte en entrant mon adresse email et le mot de passe, suis redirigé vers la page http://localhost/Tchat/index.php?page=membres où tous les membres sont affichés . Une fois que je clique sur ce lui avec je souhaite tchater, je me dirige vers la page [email protected]" target="_blank">http://localhost/Tchat/index.php?page=tchat&user=[email protected]. Mon problème est que cet utilisateur n'est s'affiche pas et j'ai un message d'erreur suivant : Notice: Undefined variable: user in C:\wamp\www\Tchat\pages\tchat.php on line 16

Notice: Trying to get property of non-object in C:\wamp\www\Tchat\pages\tchat.php on line 16 " Si dessous ma page tchat.func.php et tchat.php comme suis :
1. tchat.func.php
<?php
function user_exist()
{
global $db;
$Tableau = array('user'=>$_GET['user'],'session'=>$_SESSION['tchat']);
$sql = "SELECT * FROM users WHERE email=:user AND email!=:session"; /* on recupere l'utilisateur dont l'adresse email est saisie et on ne veut pas que ca soit l'utilisateur qui est connecte a ce moment */
$req = $db->prepare($sql);
$req->execute($Tableau);
$exist = $req->rowCount($sql);
return $exist;
}
// recuperation puis affichage de l'utilisateur avec qui on veut tchater cfr tchat.php
function get_user(){
global $db; //email='{$_SESSION['user']}'
$req = $db->query("SELECT * FROM users WHERE email='".$_SESSION['user']."' ");
$user = array();
while ($row=$req->fetchObject())
{
$user[] = $row;
}
return $user;
}
?>

2) tchat.php
<head>
<link rel="stylesheet" href= "css/font-awesome/5.9.0/css/all.css"/>
<link rel="stylesheet" type="text/css"href="css/style.css" />
<link rel="stylesheet" href="./Design/bootstrap.min.css"/>
</head>
<?php/* S'il n'y a pas d'utilisateur saisie ou bien que l'utilisateur n'est pas connecte ou bien la fonction user_exist() retourne 0 , */
if(!isset($_GET['user']) || isLogged() == 0 || user_exist()!=1)
{
header('location:index.php?page=home');
}
/* on definit l'utilisateur actuellement connecte dans la session pour passer a son affichage */

$_SESSION['user'] = $_GET['user'] ;/* Sera utilise dans post.php, car avec ajax, on a pas axces aux variables d'url(l'utilisateur connecte). On aura acces aux session quand on les a bien demarree */
foreach(get_user() as $user){
?>
<h2 class="header"><?php echo $user->name;?></h2>

<div class="message-box">



</div>

<div class="bottom">

<div class="field field-area">
<label for="message" class="field-label">Votre message</label><br/>
<textarea name="message" id="message" rows="2" class="field-input field-textarea"></textarea>
</div>
<button class="send" type="submit" id="send" name="send">
<strong class="glyphicon glyphicon-send"></strong><br/><br/>
</button>
</div>
<?php

Le 13/02/2020 à 01:22
Johan.Krn

Bonjour, je vois pas très bien mais je pense que le problème vient de la fonction get_user essaie de remplacer cette fonction par celle-ci :

function get_user(){
global $db;

$req = $db->query("SELECT * FROM users WHERE email = '{$_SESSION['user']}'");
$user = array();

while($row = $req->fetchObject()){
$user[] = $row;
}

return $user;
}

Le 19/02/2020 à 03:47
Connectez-vous pour pouvoir répondre