Php Notice: Undefined index: [Résolu/Fermé]
A voir également:
- Undefined index php
- Notice: undefined index: - Meilleures réponses
- Undefined index php post - Meilleures réponses
- PHP - Notice : Undefined index - Conseils pratiques - PHP
- Php Notice: Undefined index: ✓ - Forum - PHP
- Problème PHP --> Notice: Undefined index ✓ - Forum - PHP
- Notice: Undefined index ✓ - Forum - PHP
- Erreur Notice: Undefined index ✓ - Forum - PHP
17 réponses
Stouffi
- Messages postés
- 62
- Date d'inscription
- mercredi 8 septembre 2010
- Statut
- Membre
- Dernière intervention
- 8 janvier 2011
Bonjour,
lorsque tu es confronté à ce genre de problème (undefined index username) ça veut dire que l'array $_POST ne possède pas de clé (index) 'username' dans sa liste.
Et pour dans ton cas, lors du chargement de la page la première fois, le formulaire n'étant pas envoyé, la variable $_POST['username'] n'existe pas. Résultat PHP pleure car ne sait pas quoi faire de cette variable.
Solution : remplacer
par
ça c'est pour changer au minimum ton code actuel, mais il y a plus propre ^^
lorsque tu es confronté à ce genre de problème (undefined index username) ça veut dire que l'array $_POST ne possède pas de clé (index) 'username' dans sa liste.
Et pour dans ton cas, lors du chargement de la page la première fois, le formulaire n'étant pas envoyé, la variable $_POST['username'] n'existe pas. Résultat PHP pleure car ne sait pas quoi faire de cette variable.
Solution : remplacer
$username = $_POST['username'];
par
if (isset($_POST['username'])) { $username = $_POST['username']; }
ça c'est pour changer au minimum ton code actuel, mais il y a plus propre ^^
Signaler
Stouffi
- Messages postés
- 62
- Date d'inscription
- mercredi 8 septembre 2010
- Statut
- Membre
- Dernière intervention
- 8 janvier 2011
Eh bien Melooo est plus rapide que moi ^^
Signaler
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Hihi :)
Signaler
halima
je vous remercie beaucoup!!
Signaler
dija
merci
Signaler
fzsf
sgrsger
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Plusieurs trucs qui vont pas :
1) on écrit session_start(); et non SESSION_START()
Il manque donc le point virgule
2) Lors de la premiere connexion sur la page $username n'existe pas donc normal que tu es une erreur il faut faire le test suivant :
et rajoute un name à ton bouton :
1) on écrit session_start(); et non SESSION_START()
Il manque donc le point virgule
2) Lors de la premiere connexion sur la page $username n'existe pas donc normal que tu es une erreur il faut faire le test suivant :
if(isset($_POST['bouton'])) { //traitement }
et rajoute un name à ton bouton :
<input type="submit" class="bouton" name="bouton"/>
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Bonjour,
Pourquoi avoir deux formulaires ?
Pourquoi ne pas faire :
Et ensuite pour le code PHP :
Tu dois mettre un nom à ton bouton si tu souhaite faire le if que je viens de mettre ci desus
Pourquoi avoir deux formulaires ?
Pourquoi ne pas faire :
<form action="cible.php" method="post"> <p class="menu"> Connexion<br /> <!--Connexion--> Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br /> Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br /> Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br /> <!--Bouton--> <input type="submit" class="bouton"/>
Et ensuite pour le code PHP :
if(isset($_POST['bouton'])) { // traitement pour la verif de la connexion }
Tu dois mettre un nom à ton bouton si tu souhaite faire le if que je viens de mettre ci desus
mathrules4
Maintenant plus rien n'est affiché excepté mon footer et mon arrière plan mais je n'ai plus de message d'erreur
voici mon code:
<?php
session_start();
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
if (isset($_POST['username'])) {
$username = $_POST['username'];
}
IF(isset($connected) AND isset($username) AND $connected == FALSE){
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
<?php
}
ELSE{
echo "$username";
}
?>
</p>
</body>
</html>
Aussi non je vais essayer avec une base de donner SQL
voici mon code:
<?php
session_start();
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
if (isset($_POST['username'])) {
$username = $_POST['username'];
}
IF(isset($connected) AND isset($username) AND $connected == FALSE){
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
<?php
}
ELSE{
echo "$username";
}
?>
</p>
</body>
</html>
Aussi non je vais essayer avec une base de donner SQL
arthezius
- Messages postés
- 3538
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Membre
- Dernière intervention
- 11 septembre 2016
Je pense qu'il va falloir penser a revoir certaines base du PHP.
Un tour sur ce site s'impose: https://openclassrooms.com/fr/
Un tour sur ce site s'impose: https://openclassrooms.com/fr/
mathrules4
Merci pour ta réponse je vais tester plus tard puisque la je dois aller a l'école >.< (je suis québécois)
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Bon cours :)
Bonne journée
Bonne journée
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Montres le code
mathrules4
<?php
SESSION_START()
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
if(isset($_POST['bouton']))
{
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
</p>
<?php
}
else{
echo "$username";
}
?>
</body>
</html>
SESSION_START()
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
if(isset($_POST['bouton']))
{
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
</p>
<?php
}
else{
echo "$username";
}
?>
</body>
</html>
Melooo
- Messages postés
- 1405
- Date d'inscription
- vendredi 28 novembre 2008
- Statut
- Membre
- Dernière intervention
- 18 mars 2013
Bonjour,
Donne le bout de code avant, car ca doit venir de la,
j'ai une petite idée pour cette erreur, mais je préfère voir ton code avant de me prononcer...
Donne le bout de code avant, car ca doit venir de la,
j'ai une petite idée pour cette erreur, mais je préfère voir ton code avant de me prononcer...
mathrules4
Voici tout le code ;)
<?php
SESSION_START()
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
$username = $_POST['username'];
If(isset($connected) AND isset($username) AND $connected == FALSE){
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
<?php
}
ELSE{
echo "$username";
}
?>
</p>
</body>
</html>
<?php
SESSION_START()
?>
<html>
<head>
<title="Accueil"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" />
</head>
<body><form action="cible.php" method="get">
<?php
$username = $_POST['username'];
If(isset($connected) AND isset($username) AND $connected == FALSE){
?>
<form action="cible.php" method="post">
<p class="menu">
Connexion<br />
<!--Connexion-->
Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br />
Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br />
Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br />
<!--Bouton-->
<input type="submit" class="bouton"/>
<?php
}
ELSE{
echo "$username";
}
?>
</p>
</body>
</html>
arthezius
- Messages postés
- 3538
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Membre
- Dernière intervention
- 11 septembre 2016
Rien ne me permet de le penser...
mathrules4
voila le code je tiens à dire que je ne sais pas où mettre le nouveau if que vous m'avez présenté.
<?php session_start(); ?> <html> <head> <title="Accueil"/> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" /> </head> <body><form action="cible.php" method="get"> <?php if (isset($_POST['username'])) { $username = $_POST['username']; } IF(isset($connected) AND isset($username) AND $connected == FALSE){ ?> <form action="cible.php" method="post"> <p class="menu"> Connexion<br /> <!--Connexion--> Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br /> Mot de pass: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br /> Confirmation du mot de pass: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br /> <!--Bouton--> <input type="submit" class="bouton"/> <?php } ELSE{ echo "$username"; } ?> </p> </body> </html>
arthezius
- Messages postés
- 3538
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Membre
- Dernière intervention
- 11 septembre 2016
Je me suis permis pas mal de correction.
Prends le temps de bien étudier ce que j'ai corrigé.
La page contient un formulaire.
En l'état, quand tu l'envoi, une vérif est faite pour vérifier que les deux mots de passe sont identique. Si c'est le cas, on affiche le pseudo.
Prends le temps de bien étudier ce que j'ai corrigé.
<?php session_start(); echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Accueil</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/design.css" /> </head> <body>'; if (isset($_POST['envoi']) && $_POST['envoi']=='Envoyer') { if($_POST['password']!=$_POST['confirm']) { echo'<p>Les deux mot de passe sont différent.</p> <p><a href="cible.php">Retour</p></p>'; } else{ $username = $_POST['username']; echo '<p>'.$username.'</p>'; } } else{ echo'<form action="cible.php" method="post"> <p class="menu"> <strong>Connexion</strong><br /> <!--Connexion--> Nom de compte: <input type="text" name="username" style="width:80px;" title="Saisissez votre nom de compte"/><br /> Mot de passe: <input type="password" name="password" style="width:80px;" title="Saisissez votre mot de pass"/><br /> Confirmation: <input type="password" name="confirm" style="width:80px;" title="Re saisissez votre mot de pass"/><br /> <!--Bouton--> <input type="submit" name="envoi" value="Envoyer" class="bouton"/>'; } echo'</p> </body> </html>'; ?>
La page contient un formulaire.
En l'état, quand tu l'envoi, une vérif est faite pour vérifier que les deux mots de passe sont identique. Si c'est le cas, on affiche le pseudo.