Warning: Illegal string offset 'name' in
Résolu
LaChaux78
Messages postés
585
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, J'ai ce message qui apparait "Warning: Illegal string offset 'name' in" et je ne sais pas à quoi c'est dû. Pouvez-vous m'aider s'ils vous plait. J'ai fait un print_r et tout semble normal, le fichier article est bien présent pourtant l'INSERT ne se fait pas. Je vous remercie.
$action = 'new';
$a = !empty($_GET['a']) ? $_GET['a'] : NULL;
$submit = !empty($_POST['submit']) ? $_POST['submit'] : NULL;
$haction = !empty($_POST['haction']) ? $_POST['haction'] : NULL;
$idart = !empty($_REQUEST['idart']) ? $_REQUEST['idart'] : NULL;
$article = !empty($_POST['article']) ? $_POST['article']['name'] : '';
$lieuart = !empty($_POST['lieuart']) ? addslashes($_POST['lieuart']) : '';
$dateart = !empty($_POST['dateart']) ? dw2m($_POST['dateart']) : '';
$descart = !empty($_POST['descart']) ? $_POST['descart'] : '';
switch($a) {
case 'new': $action = 'new'; break;
case 'ls' : $action = 'list'; break;
default : $action = 'new'; break;
}
if($submit) {
switch($haction) {
case 'new':
$extensions_valides = array( 'pdf' );
//1. strrchr renvoie l'extension avec le point (« . »).
//2. substr(chaine,1) ignore le premier caractère de chaine.
//3. strtolower met l'extension en minuscules.
$extension_upload = strtolower( substr( strrchr($_FILES['article']['name'], '.') ,1) );
if (!in_array($extension_upload,$extensions_valides) ) {
$erreur = "<span class='erreur'>Vous devez ajouter un fichier de type PDF</span>";
} else {
$sql = "INSERT INTO cdc_articles (article, lieuart, dateart, descart) VALUES (:article, :lieuart, :dateart, :descart)";
$datas = array('article' => $article, 'lieuart' => $lieuart, 'dateart' => $dateart, 'descart' => $descart);
$result = executeQuery($sql,$datas);
$typenr = "enregistré";
$reqaj = $requete;
$success = "<span class='success'>Le nouvelle article du - ".dFR("$dateart")." - a été $typenr.</span>";
}
break;
}
}
switch($action) {
case 'new':
$title = "Saisie d'un Article";
$btsub = "Enregistrer";
$idart = "";
$article = "";
$lieuart = "";
$dateart = "";
$descart = "";
break;
case 'list':
$title = "Liste des Articles";
break;
}
3 réponses
-
Bonjour,
Tu ne nous indiques pas le numéro de ligne qui va avec le message d'erreur...
mais on peut supposer que ça vient de la ligne$article = !empty($_POST['article']) ? $_POST['article']['name'] : '';
Il aurait également été bien de nos fournir le résultat de ton print_r ... histoire qu'on puisse voir les variables qui sont envoyée dans ton $_POST
Mais on peut supposer que, pour ton cas, le "bon" code serait :
$article = !empty($_POST['article']) ? $_POST['article'] : '';
Et si vraiment.. ton array article contient un "name" .. dans ce cas il faudra ajouter :$article_name = !empty($article['name']) ? $article['name'] : '';
et donc modifier ton array lors de l'insertion$datas = array('article' => $article_name , 'lieuart' => $lieuart, 'dateart' => $dateart, 'descart' => $descart);