Php/mysql Notice: Undefined variable
Fermé
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
-
8 août 2009 à 16:10
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 7 sept. 2009 à 08:36
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 7 sept. 2009 à 08:36
A voir également:
- Php/mysql Notice: Undefined variable
- Notice d'utilisation - Guide
- Notice chromecast - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Retour a la ligne php ✓ - Forum PHP
8 réponses
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
8 août 2009 à 17:09
8 août 2009 à 17:09
bonjour,
quelle est la ligne 32 ?
mais un coup
$PHP_AUTH_USER et un coup PHP_AUTH_USER (sans le $ )
il faut peut être chercher par ilà.
quelle est la ligne 32 ?
mais un coup
$PHP_AUTH_USER et un coup PHP_AUTH_USER (sans le $ )
il faut peut être chercher par ilà.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
8 août 2009 à 18:22
8 août 2009 à 18:22
Bonsoir,
Tu nas aucune session de configurée, ni de session_start() qui permet de créer une session.. ceci est nessaire pour acceder aux donner de authenticate.php..
cré d abord un formulaire de connection (cf http://jjsteing.u7n.org/index.php?id=0 projet session.php) et apres seulement tu pourra acceder aux données de authenticate.php ;)
Tu nas aucune session de configurée, ni de session_start() qui permet de créer une session.. ceci est nessaire pour acceder aux donner de authenticate.php..
cré d abord un formulaire de connection (cf http://jjsteing.u7n.org/index.php?id=0 projet session.php) et apres seulement tu pourra acceder aux données de authenticate.php ;)
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
9 août 2009 à 09:58
9 août 2009 à 09:58
Merci pour ton aide, mais j'aimerais que tu soit un peux plus claire car je ne suis qu'un debutant en matiere de programation avec php. comment dois je utiliser le code session.php pour acceder a authenticate.php.
Merci d'avance pour ton aide.
Merci d'avance pour ton aide.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
9 août 2009 à 10:41
9 août 2009 à 10:41
re:)
bon, plusieurs choses :
tu as une fonction authenticate($realm,$errmsg,"query");
qui, je suppose, affiche un message d erreur à l utilisateur...
mais tu nous as pas donner le code.. mais bon, passons.. ca n a pas beaucoup d influence pour la suite..
Ton code là te sert à vérifier si l utilisateur peut se loguer sur ton guest book (entre nous, as quoi ca sert, vu que guest veut dire invité.. dans ton cas, c'est plutot un livre d or auquel seul les utilisateurs authentifiés peuvent ajouter un message.. mais bon, passns encore ;)
t'as fait un code bien compliquer juste pour se loguer...
pas besoin de ton win_authenticate...
juste met ca dans authenticate :
<?php
session_start();
$Html="";
$Html.='<FORM Method="POST" Action="authenticate.php">';
if (isset($_GET['Deconnect'])){
session_destroy();
header('location: authenticate.php');
}
if (!isset($_POST['login']) && !isset($_SESSION['login']) ){
if (isset($_GET['Erreur'])){$Html.= "Erreur login/mdp<br>";}
$Html.="
login : <INPUT type='text' size=20 name='login' value='monnom'><BR>
psw : <INPUT type='text' size=20 name='password' value='monpsw'><BR>
<INPUT type='submit' value='Envoyer'>";
}else{
if (!isset($_SESSION['login']) ){
if ($_POST['login']=="monnom" && $_POST['password'] =="monpsw") {
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
$Html.="Bienvenue ".$_SESSION['login']."<br>";
$Html.="<a href=Session.php?Deconnect=1>ici</a> pour deconnecter<br>";
$Html.="<a href=authenticate.php>ici</a> pour acceder au site";
}else{
header('location: authenticate.php?Erreur=1');
}
}else{
$Html.=" Ici le code de ma page quand l'utilisateur est logué<br>";
$Html.="<a href=authenticate.php?Deconnect=1>ici</a> pour deconnecter";
}
}
$Html.='</FORM>';
echo $Html;
?>
bon, plusieurs choses :
tu as une fonction authenticate($realm,$errmsg,"query");
qui, je suppose, affiche un message d erreur à l utilisateur...
mais tu nous as pas donner le code.. mais bon, passons.. ca n a pas beaucoup d influence pour la suite..
Ton code là te sert à vérifier si l utilisateur peut se loguer sur ton guest book (entre nous, as quoi ca sert, vu que guest veut dire invité.. dans ton cas, c'est plutot un livre d or auquel seul les utilisateurs authentifiés peuvent ajouter un message.. mais bon, passns encore ;)
t'as fait un code bien compliquer juste pour se loguer...
pas besoin de ton win_authenticate...
juste met ca dans authenticate :
<?php
session_start();
$Html="";
$Html.='<FORM Method="POST" Action="authenticate.php">';
if (isset($_GET['Deconnect'])){
session_destroy();
header('location: authenticate.php');
}
if (!isset($_POST['login']) && !isset($_SESSION['login']) ){
if (isset($_GET['Erreur'])){$Html.= "Erreur login/mdp<br>";}
$Html.="
login : <INPUT type='text' size=20 name='login' value='monnom'><BR>
psw : <INPUT type='text' size=20 name='password' value='monpsw'><BR>
<INPUT type='submit' value='Envoyer'>";
}else{
if (!isset($_SESSION['login']) ){
if ($_POST['login']=="monnom" && $_POST['password'] =="monpsw") {
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
$Html.="Bienvenue ".$_SESSION['login']."<br>";
$Html.="<a href=Session.php?Deconnect=1>ici</a> pour deconnecter<br>";
$Html.="<a href=authenticate.php>ici</a> pour acceder au site";
}else{
header('location: authenticate.php?Erreur=1');
}
}else{
$Html.=" Ici le code de ma page quand l'utilisateur est logué<br>";
$Html.="<a href=authenticate.php?Deconnect=1>ici</a> pour deconnecter";
}
}
$Html.='</FORM>';
echo $Html;
?>
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
9 août 2009 à 12:55
9 août 2009 à 12:55
voici la fonction authenticate
<?php
$realm = "Guest Book Administration";
$errmsg = "You must enter a valid name & password to access this function";
// PHP_AUTH_USER and PHP_AUTH_PW are global variables supplied by
// PHP, corresponding to the user name & password the user has entered
// in the pop-up window created by an HTTP authentication header. If no
// authentication header has ever been sent, these variables will be empty.
if(strstr(strtolower(PHP_OS),"win") && strtolower(PHP_OS) != "darwin")
{
include "win_authenticate.php";
return;
}
if (empty($PHP_AUTH_USER))
{
// first time through - use authenticate() to request a
// user name & password
authenticate($realm,$errmsg,"header");
}
else
{
$query = "select username from guestbook_admin
where password = password(lower('$PHP_AUTH_PW'))
and username = lower('$PHP_AUTH_USER')
";
$result = safe_query($query);
if ($result) { list($valid_user) = mysql_fetch_row($result); }
// if the query didn't work at all (which shouldn't happen), or ran but
// didn't find a match for the user name & password, $valid_user will
// not be set to anything. if this is so, have the user try again.
if (!$result || empty($valid_user))
{
authenticate($realm,$errmsg,"query");
}
}
print "<p><b>Editing as $PHP_AUTH_USER</b></p>\n";
?>
<?php
$realm = "Guest Book Administration";
$errmsg = "You must enter a valid name & password to access this function";
// PHP_AUTH_USER and PHP_AUTH_PW are global variables supplied by
// PHP, corresponding to the user name & password the user has entered
// in the pop-up window created by an HTTP authentication header. If no
// authentication header has ever been sent, these variables will be empty.
if(strstr(strtolower(PHP_OS),"win") && strtolower(PHP_OS) != "darwin")
{
include "win_authenticate.php";
return;
}
if (empty($PHP_AUTH_USER))
{
// first time through - use authenticate() to request a
// user name & password
authenticate($realm,$errmsg,"header");
}
else
{
$query = "select username from guestbook_admin
where password = password(lower('$PHP_AUTH_PW'))
and username = lower('$PHP_AUTH_USER')
";
$result = safe_query($query);
if ($result) { list($valid_user) = mysql_fetch_row($result); }
// if the query didn't work at all (which shouldn't happen), or ran but
// didn't find a match for the user name & password, $valid_user will
// not be set to anything. if this is so, have the user try again.
if (!$result || empty($valid_user))
{
authenticate($realm,$errmsg,"query");
}
}
print "<p><b>Editing as $PHP_AUTH_USER</b></p>\n";
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
9 août 2009 à 12:42
9 août 2009 à 12:42
Merci pour ton aide just pour la precision mon code me sert a identifier l'administrateur que je suis avant d'acceder a la page edit.php qui permet d'effacer les entree, donc se code authenticate.php n'interviens que dans la page edit.php pour pas que tout le monde aient la possible d'effacer les donnees se trouvons dans la base.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
9 août 2009 à 13:14
9 août 2009 à 13:14
il faut que tu remplace ma ligne
if ($_POST['login']=="monnom" && $_POST['password'] =="monpsw") {
par :
$query = "select username from guestbook_admin where username = lower('$_POST['login']')";
$User = mysql_fetch_array($query );
if ($_POST['password'] ==$User["password"];) {
$_SESSION['Login']=$User["login"];
$_SESSION['password']=$User["password"];
------------------------------------------------
si j'ai bien compris, dans ta bd guestbook_admin tu n'as que des utilisateur qui peuvent administrer le 'guest book'.. donc en faisant une requete sur le login et en vérifiant que le password est bon, ca acceptera de créer la session.
if ($_POST['login']=="monnom" && $_POST['password'] =="monpsw") {
par :
$query = "select username from guestbook_admin where username = lower('$_POST['login']')";
$User = mysql_fetch_array($query );
if ($_POST['password'] ==$User["password"];) {
$_SESSION['Login']=$User["login"];
$_SESSION['password']=$User["password"];
------------------------------------------------
si j'ai bien compris, dans ta bd guestbook_admin tu n'as que des utilisateur qui peuvent administrer le 'guest book'.. donc en faisant une requete sur le login et en vérifiant que le password est bon, ca acceptera de créer la session.
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
9 août 2009 à 21:52
9 août 2009 à 21:52
merci, voila j'ai fais comme tu m'a dit, j'ai reecrit mon code authenticate telque tu me l'a indique
mais il y'a un message d'erreur que voici :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP 2.0b1\www\training\application\authenticat.php on line 20
<?php
session_start();
$Html="";
$Html.='<FORM Method="POST" Action="authenticate.php">';
if (isset($_GET['Deconnect'])){
session_destroy();
header('location: authenticate.php');
}
if (!isset($_POST['login']) && !isset($_SESSION['login']) ){
if (isset($_GET['Erreur'])){$Html.= "Erreur login/mdp<br>";}
$Html.="
login : <INPUT type='text' size=20 name='login' value='monnom'><BR>
psw : <INPUT type='text' size=20 name='password' value='monpsw'><BR>
<INPUT type='submit' value='Envoyer'>";
}else{
if (!isset($_SESSION['login']) ){
$query = "select username from guestbook_admin where username = lower('$_POST['login']')";
$User = mysql_fetch_array($query );
if ($_POST['password'] ==$User["password"];) {
$_SESSION['Login']=$User["login"];
$_SESSION['password']=$User["password"];
$Html.="Bienvenue ".$_SESSION['login']."<br>";
$Html.="<a href=Session.php?Deconnect=1>ici</a> pour deconnecter<br>";
$Html.="<a href=authenticate.php>ici</a> pour acceder au site";
}else{
header('location: authenticate.php?Erreur=1');
}
}else{
$Html.=" Ici le code de ma page quand l'utilisateur est logué<br>";
$Html.="<a href=authenticate.php?Deconnect=1>ici</a> pour deconnecter";
}
}
$Html.='</FORM>';
echo $Html;
?>
merci d'avance pour ton aide
mais il y'a un message d'erreur que voici :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP 2.0b1\www\training\application\authenticat.php on line 20
<?php
session_start();
$Html="";
$Html.='<FORM Method="POST" Action="authenticate.php">';
if (isset($_GET['Deconnect'])){
session_destroy();
header('location: authenticate.php');
}
if (!isset($_POST['login']) && !isset($_SESSION['login']) ){
if (isset($_GET['Erreur'])){$Html.= "Erreur login/mdp<br>";}
$Html.="
login : <INPUT type='text' size=20 name='login' value='monnom'><BR>
psw : <INPUT type='text' size=20 name='password' value='monpsw'><BR>
<INPUT type='submit' value='Envoyer'>";
}else{
if (!isset($_SESSION['login']) ){
$query = "select username from guestbook_admin where username = lower('$_POST['login']')";
$User = mysql_fetch_array($query );
if ($_POST['password'] ==$User["password"];) {
$_SESSION['Login']=$User["login"];
$_SESSION['password']=$User["password"];
$Html.="Bienvenue ".$_SESSION['login']."<br>";
$Html.="<a href=Session.php?Deconnect=1>ici</a> pour deconnecter<br>";
$Html.="<a href=authenticate.php>ici</a> pour acceder au site";
}else{
header('location: authenticate.php?Erreur=1');
}
}else{
$Html.=" Ici le code de ma page quand l'utilisateur est logué<br>";
$Html.="<a href=authenticate.php?Deconnect=1>ici</a> pour deconnecter";
}
}
$Html.='</FORM>';
echo $Html;
?>
merci d'avance pour ton aide
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
9 août 2009 à 22:01
9 août 2009 à 22:01
:p
2 ptites erreur dont voici la correction :
$query = "select username from guestbook_admin where username = lower('".$_POST['login']."')";
$User = mysql_fetch_array($query );
if ($_POST['password'] == $User["password"]) {// pas de ;
2 ptites erreur dont voici la correction :
$query = "select username from guestbook_admin where username = lower('".$_POST['login']."')";
$User = mysql_fetch_array($query );
if ($_POST['password'] == $User["password"]) {// pas de ;
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
10 août 2009 à 22:18
10 août 2009 à 22:18
aufait j'ai ma function authenticate que voici :
function authenticate ($realm="Secure Area"
,$errmsg="Please enter a username and password") {
Header("WWW-Authenticate:Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
die($errmsg);
}
qui oblige l'utulisateur d'inserer un username et un password, la fonction marche car elle fait bien apparaitre les deux champs pour le username et le password, mais mon probleme c comment faire pour prendre ces donnees entrees par l'utulisateur pour faire une verification dans mon guestbook_admin si il sont conforme donc donner l'autorisation si non la refuser.
Merci d'avance pour ton aide.
function authenticate ($realm="Secure Area"
,$errmsg="Please enter a username and password") {
Header("WWW-Authenticate:Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
die($errmsg);
}
qui oblige l'utulisateur d'inserer un username et un password, la fonction marche car elle fait bien apparaitre les deux champs pour le username et le password, mais mon probleme c comment faire pour prendre ces donnees entrees par l'utulisateur pour faire une verification dans mon guestbook_admin si il sont conforme donc donner l'autorisation si non la refuser.
Merci d'avance pour ton aide.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
7 sept. 2009 à 08:36
7 sept. 2009 à 08:36
bonjour :)
Il faut que l utilisateur soit authentifié avant qu il ne post un message ;)....
pour la gestion des session d authentification va voir sur mon site : jjsteing.u7n.org rubrique webmastering, seesion.php... tu aura le code, le fichier si tu veux le télécharger et l exemple en ligne qui fonctionne ;)
@++
Il faut que l utilisateur soit authentifié avant qu il ne post un message ;)....
pour la gestion des session d authentification va voir sur mon site : jjsteing.u7n.org rubrique webmastering, seesion.php... tu aura le code, le fichier si tu veux le télécharger et l exemple en ligne qui fonctionne ;)
@++