Bonjour la page php me retourne l'erreur suivante :
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/var/www/html/jeremie/pages/home/requetes/like.php</b> on line <b>41</b><br />
Sauf que j'ai bien déclaré la variable avant d'insérer une valeur.
Voici mon code
<?php
if (!empty($_POST) and isset($_POST['id']) and is_numeric($_POST['id'])){
session_start();
if (!empty($_SESSION) and isset($_SESSION['compte']['id']) and is_numeric($_SESSION['compte']['id'])){
if (isset($_SESSION['compte']['likes'][$_POST['id']])){
if ($_SESSION['compte']['likes'][$_POST['id']] > time()){
require 'bdd.php';
if (isset($bdd)){
$sql = 'delete from `likes` where `time`>'.time().' and `id_compte`='.$_SESSION['compte']['id'].' and `id_post`='.$_POST['id'];
$requete = $bdd->exec($sql);
if ($requete == 1){
unset($sql,$bdd,$requete);
unset($_SESSION['compte']['likes'][$_POST['id']]);
unset($_POST);
echo json_encode(0);
}else{
echo json_encode('SQL');
}
}else{
unset($_POST);
echo json_encode('BDD');
}
}else{
unset($_POST);
echo json_encode('TIME');
}
}else{
require 'bdd.php';
if (isset($bdd)){
$time = time() + 500;
$sql = 'insert into `likes` (`id_post`,`id_compte`,`time`) value('.$_POST['id'].','.$_SESSION['compte']['id'].','.$time.')';
$requete = $bdd->exec($sql);
if ($requete == 1){
unset($sql,$bdd,$requete);
if (empty($_SESSION['compte']['likes'])){
$_SESSION['compte']['likes'] = array();
}
$_SESSION['compte']['likes'][$_POST['id']] = $time;
unset($_POST);
echo json_encode($time);
unset($time);
}else{
unset($_POST,$requete,$time);
echo json_encode('SQL');
}
}else{
unset($_POST);
echo json_encode('BDD');
}
}
}else{
unset($_POST);
echo json_encode('SESSION');
}
}else{
unset($_POST);
echo json_encode('ISSET');
}
?>
Merci pour votre proposition de solution :)
Oui c'est pas valide d'insérer un nombre scalaire dans plusieurs (un tableau)
C'est comme si on voulait mettre une pomme dans plusieurs paniers à la fois, c'est pas possible, à moins de la découper.
$_SESSION['compte']['likes'][$_POST['id']] = $time;
Je ne veux pas le mettre dans plusieurs tableaux à la fois ? :/
$key = $_POST['id'];
$_SESSION['compte']['likes'][$key] = $time;
Ca marche si je fait ca ? :/