[RESOLU] Problème: Notice: Undefined offset: 0

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème: Notice: Undefined offset: 0

Re: [RESOLU] Problème: Notice: Undefined offset: 0

par Spols » 08 avr. 2016, 16:08

A priori ta session est vide et donc ton panier aussi.

Essaye un var_dump($panier);
juste en dessous de ton
$panier=$_SESSION['panier'];

Un session_start(); en tout début de code peut aussi faire des miracles. car si tu n'ouvre pas ta session, impossible d'y récupérer des données

Problème: Notice: Undefined offset: 0

par sara belkasmy » 08 avr. 2016, 15:11

bonjour moi aussi j'ai le meme probleme tjrs Problème: Notice: Undefined offset: 0 SVP aider moi SVP
<?php
$panier=$_SESSION['panier'];
?>

<table width="50%">
<tr bgcolor="#FF00BF">
<th> REFERENCE </th> <th> DESIGNATION </th> <th> PRIX </th> <th> QUANTITE </th>
</tr>
<?php
$total=0;
for($i=0;$i<count($panier);$i++){
$total=$total+$panier[$i]['quantite']*$panier[$i]['prix'];
?>

<tr bgcolor="#00FF00">
<td> <?php echo($panier[$i]['ref'])?></td>
<td> <?php echo($panier[$i]['designation'])?></td>
<td> <?php echo($panier[$i]['prix'])?></td>
<td> <?php echo($panier[$i]['quantite'])?></td>
<form action="suppDuPanier.php?index=<?php echo($i)?>" method="post">
<td><input type="image" src="suppanier.png" value="submit"/></td>
</form>
</tr>

<?php } ?>
<tr bgcolor="#FF00BF">
<td colspan="3"><b>TOTAL:</td>
<td>
<b><?php echo($total); ?></b>
</td>
</tr>
</table>
<input type="button" value="commander" onclick="document.location='commander.php'"/>

Re: Problème: Notice: Undefined offset: 0

par stage57 » 21 mai 2014, 14:49

hello

la solution est ici http://www.php.net/manual/fr/pdostatement.fetchall.php

$sth->execute();
Merci!! Je sens que je tient le bon bout!! ;) J'obtient Array ( [0] => Array ( [count(*)] => 1 [0] => 1 ) ) quand je fais print_r($row) avec les bon identifiants et Array ( [0] => Array ( [count(*)] => 0 [0] => 0 ) ) avec de mauvais identifiants.

Du coup j'ai changer cette partie:
$req = $bdd->prepare('SELECT count(*) FROM utilisateur WHERE nom_utilisateur = :nom_utilisateur AND mot_de_passe = :mot_de_passe ');
$req -> bindParam('nom_utilisateur',$_POST['nom_utilisateur'], PDO::PARAM_STR);
$req -> bindParam('mot_de_passe',$_POST['mot_de_passe'], PDO::PARAM_STR);
$req->execute();
$row = $req->fetchAll();
unset($req);
$bdd= NULL;
Ensuite j'ai remplacé fetchAll() par fetch(PDO::FETCH_NUM) mais j'obtient une page blanc.

Edit: Et si je refais un print_r($row) j'obtient: Array ( [0] => 1 ) donc se que je voulais mais tjs ma page blanche

Edit2: La blanche était du au header() car j'avais oublié d'écrire Location. Je suis tête en l'air. ET ENCORE MERCI!

Re: Problème: Notice: Undefined offset: 0

par telnes » 21 mai 2014, 14:14

hello

la solution est ici http://www.php.net/manual/fr/pdostatement.fetchall.php

$sth->execute();

Re: Problème: Notice: Undefined offset: 0

par stage57 » 21 mai 2014, 14:03

hello

fait un print_r($row);

stp
Ca me donne un Array() vide alors et si je met un execute() à la place de fetchAll() cela me met 1 du coup c'est comme FALSE. Ducoup sa vient d'avant mais où...

Re: Problème: Notice: Undefined offset: 0

par telnes » 21 mai 2014, 13:55

hello

fait un print_r($row);

stp

Re: Problème: Notice: Undefined offset: 0

par stage57 » 21 mai 2014, 13:46

J'ai effectuer la requête dans phpMyadmin est le résultat est bien 1 si les identifiants sont correcte et 0 quand ils ne le sont pas. Les $_POST transmettent bien les valeurs de mes input. J'avais déja fais les test. Là c'est un phénomène paranormal xp
Merci pour vos réponse aussi rapide ;)

Re: Problème: Notice: Undefined offset: 0

par telnes » 21 mai 2014, 13:36

hello

la requête est peut etre bonne mais ne retourne rien :)

Re: Problème: Notice: Undefined offset: 0

par xTG » 21 mai 2014, 13:34

C'est bizarre que cela te retourne un array vide... Si la requête ne passe pas cela devrait te retourner false et non un array vide.
Affiches tes valeurs $_POST et exécutes la requête dans phpmyadmin pour voir ce qu'elle retourne.

Re: Problème: Notice: Undefined offset: 0

par telnes » 21 mai 2014, 13:33

hello

$row[0] existe pas

fait un print_r($row); si il est vide tu as un problème avant.

Problème: Notice: Undefined offset: 0

par stage57 » 21 mai 2014, 11:53

Bonjours a tous!
Je vous expose mon problème:
J'ai fait un script de connection qui permet d'accèder à un formulaire mais ce script m'affiche "compte non reconnu" et cette erreur:
Notice: Undefined offset: 0 in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Projet_Stage\index.php on line 15
Notice: Undefined offset: 0 in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Projet_Stage\index.php on line 22
J'ai chercher pendant 2 jours mais là je vois plus de solution.

Voici le script:
<?php
require('connexion.php');

if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion')
{
	if((isset($_POST['nom_utilisateur']) && !empty($_POST['nom_utilisateur'])) && (isset($_POST['mot_de_passe']) && !empty($_POST['mot_de_passe'])))
	{
		$req = $bdd->prepare('SELECT count(*) FROM utilisateur WHERE nom_utilisateur = :nom_utilisateur AND mot_de_passe = :mot_de_passe ');
		$req -> bindParam( 'nom_utilisateur',$_POST['nom_utilisateur'], PDO::PARAM_STR);
		$req -> bindParam( 'mot_de_passe',$_POST['mot_de_passe'], PDO::PARAM_STR);
		$row = $req->fetchAll();
		print_r($row);
		unset($req);
		$bdd= NULL;
			if ($row[0] == 1)
			{
				session_start();
				$_SESSION['nom_utilisateur']=$_POST['nom_utilisateur'];
				header('formulaire_quest.php');
				exit();
			}
				elseif ($row[0] == 0)
				{
					$erreur = 'Compte non reconnu.';
				}
						else
						{
							$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
						}
	}
	
	else
	{
		$erreur = 'Au moins un des champs est vide.';
	}
}
?>



<!doctype html>
<html>
	<div class="ensemble"> 
	<head>
		<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
		<title>Aprentissage du SelfService</title>
		<link rel="stylesheet" href="styles.css">
	</head>
	<body>
		<form method="POST" action="index.php">
			Nom Utilisateur: <input type="text" name="nom_utilisateur" value="<?php if (isset($_POST['nom_utilisateur'])) echo (trim($_POST['nom_utilisateur'])); ?>"/> <br/><br/>
			Mot de Passe: <input type="password" name="mot_de_passe" value="<?php if (isset($_POST['mot_de_passe'])) echo (trim($_POST['mot_de_passe'])); ?>"/> 
			<input type="submit" name="connexion" value="Connexion" />
		</form>
		<?php
		if (isset($erreur)) echo '<br /><br />',$erreur;
		?>
	</body>
	</div>
</html>
Le print_r m'affiche Array(), j'ai peut-être un problème dans bindParam, je sais plus quoi faire j'ai tout tout essayé.
Merci d'avance pour vos réponse!