par
Une Minute » 27 janv. 2017, 11:32
Bonjour,
Après 2 semaines de recherches en tout sens, je fais appel à vous en dernier secours.
J'essaye en effet de créer un espace de connexion (pas d'inscription car je vais devoir rentrer les membres moi même dans la bdd) et un espace de modification de données pour chaque membre, entre autres.
Malheureusement je n'arrive pas à créer le formulaire de modifications de données, soit il m'affiche bien les données actuelles mais ne les modifie pas dans la bdd, soit il ne me récupère rien.
J'ai même fini par me demander si ce n'est pas mon formulaire de connexion et donc les données transférées d'une page à l'autre qui posent problème.. mais à priori je n'ai pas de souci pour me connecter.
Juste au cas où, voici les codes des deux pages.. il est possible que la page de modification soit étrange, à force de modifications, j'ai du sacrément m'embrouiller..
Merci beaucoup pour vos précieux conseils !
PAGE DE MODIFICATION DE DONNÉES
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=vsp', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
if(isset($_SESSION['username']))
{
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style_accueil.css" rel="stylesheet" title="Style" />
<title>TITRE</title>
</head>
<body>
<?php
if (empty($_POST['sent']))
{
$query=$db->prepare('SELECT news FROM partenaires WHERE username=:?');
$query->bindValue(':username',$username,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
echo '<form method="post" action="" enctype="multipart/form-data">
<label for="news">Vos News :</label>
<input type="text" name="news" id="news"
value="'.stripslashes($data['news']).'" /><br />
<input type="submit" value="Modifier son profil" />
<input type="hidden" id="sent" name="sent" value="1" /></form>';
$query->CloseCursor();
}
else
{
echo'<h1>Modification terminée</h1>';
echo'<p>Votre profil a été modifié avec succès !</p>';
$query=$db->prepare('UPDATE partenaires SET news = :news WHERE username=:?');
$query->bindValue(':news',$news,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
else
{
echo'<h1>Modification interrompue</h1>';
echo'<p>Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
}
}
break;
default;
echo'<p>Cette action est impossible</p>';
}
?>
</body>
</html>
<?php
}
else
{
//Sinon, on lui donne un lien pour se connecter
include('probleme_connexion.php');
?>
<?php
}
?>
PAGE DE CONNEXION
<?php
session_start();
try
{
$db = new PDO('mysql:host=localhost;dbname=vsp', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" title="Style" />
<title>Val Socio-Pro - Connection</title>
</head>
<body>
<?php
if(isset($_SESSION['username']))
{
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="content">Vous avez bien été déconnecté.<br />
<a href="connexion.php">Se reconnecter</a></div>
<?php
}
else
{
if (!isset($_POST['username']))
{
echo '<div>
<form method="post" action="connexion.php" >
<table class="content" align="center" border="0">
<tr>
<td>N° de prestataire :</td>
<td><input type="text" name="username" id="username" maxlength="250"></td>
</tr>
<tr>
<td>Mot de passe :</td>
<td><input type="password" name="password" id="password" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connection"></td>
</tr>
</table>
</form>
</div>
</body>
</html>';
}
else
{
$message='';
if (empty($_POST['username']) || empty($_POST['password']) )
{
$message = '<p>une erreur s\'est produite pendant votre identification.
Vous devez remplir tous les champs</p>
<p>Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
}
else
{
$query=$db->prepare('SELECT username, password
FROM partenaires WHERE username = :username');
$query->bindValue(':username',$_POST['username'], PDO::PARAM_STR);
$query->execute();
$data=$query->fetch();
if ($data['password'] == ($_POST['password'])) // Acces OK !
{
$_SESSION['username'] = $data['username'];
?>
<?php
header("Location: page_accueil.php"); /* Redirection du navigateur */
exit;
?>
<?php
}
else
{
$message = '<p>Une erreur s\'est produite
pendant votre identification.<br /> Le mot de passe ou le pseudo
entré n\'est pas correcte.</p><p>Cliquez <a href="./connexion.php">ici</a>
pour revenir à la page précédente
<br /><br />Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
$query->CloseCursor();
}
echo $message.'</div></body></html>';
}
}
?>
Bonjour,
Après 2 semaines de recherches en tout sens, je fais appel à vous en dernier secours.
J'essaye en effet de créer un espace de connexion (pas d'inscription car je vais devoir rentrer les membres moi même dans la bdd) et un espace de modification de données pour chaque membre, entre autres.
Malheureusement je n'arrive pas à créer le formulaire de modifications de données, soit il m'affiche bien les données actuelles mais ne les modifie pas dans la bdd, soit il ne me récupère rien.
J'ai même fini par me demander si ce n'est pas mon formulaire de connexion et donc les données transférées d'une page à l'autre qui posent problème.. mais à priori je n'ai pas de souci pour me connecter.
Juste au cas où, voici les codes des deux pages.. il est possible que la page de modification soit étrange, à force de modifications, j'ai du sacrément m'embrouiller..
Merci beaucoup pour vos précieux conseils !
PAGE DE MODIFICATION DE DONNÉES
[php]<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=vsp', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
if(isset($_SESSION['username']))
{
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style_accueil.css" rel="stylesheet" title="Style" />
<title>TITRE</title>
</head>
<body>
<?php
if (empty($_POST['sent']))
{
$query=$db->prepare('SELECT news FROM partenaires WHERE username=:?');
$query->bindValue(':username',$username,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
echo '<form method="post" action="" enctype="multipart/form-data">
<label for="news">Vos News :</label>
<input type="text" name="news" id="news"
value="'.stripslashes($data['news']).'" /><br />
<input type="submit" value="Modifier son profil" />
<input type="hidden" id="sent" name="sent" value="1" /></form>';
$query->CloseCursor();
}
else
{
echo'<h1>Modification terminée</h1>';
echo'<p>Votre profil a été modifié avec succès !</p>';
$query=$db->prepare('UPDATE partenaires SET news = :news WHERE username=:?');
$query->bindValue(':news',$news,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
else
{
echo'<h1>Modification interrompue</h1>';
echo'<p>Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
}
}
break;
default;
echo'<p>Cette action est impossible</p>';
}
?>
</body>
</html>
<?php
}
else
{
//Sinon, on lui donne un lien pour se connecter
include('probleme_connexion.php');
?>
<?php
}
?>[/php]
PAGE DE CONNEXION
[php]<?php
session_start();
try
{
$db = new PDO('mysql:host=localhost;dbname=vsp', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" title="Style" />
<title>Val Socio-Pro - Connection</title>
</head>
<body>
<?php
if(isset($_SESSION['username']))
{
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="content">Vous avez bien été déconnecté.<br />
<a href="connexion.php">Se reconnecter</a></div>
<?php
}
else
{
if (!isset($_POST['username']))
{
echo '<div>
<form method="post" action="connexion.php" >
<table class="content" align="center" border="0">
<tr>
<td>N° de prestataire :</td>
<td><input type="text" name="username" id="username" maxlength="250"></td>
</tr>
<tr>
<td>Mot de passe :</td>
<td><input type="password" name="password" id="password" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connection"></td>
</tr>
</table>
</form>
</div>
</body>
</html>';
}
else
{
$message='';
if (empty($_POST['username']) || empty($_POST['password']) )
{
$message = '<p>une erreur s\'est produite pendant votre identification.
Vous devez remplir tous les champs</p>
<p>Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
}
else
{
$query=$db->prepare('SELECT username, password
FROM partenaires WHERE username = :username');
$query->bindValue(':username',$_POST['username'], PDO::PARAM_STR);
$query->execute();
$data=$query->fetch();
if ($data['password'] == ($_POST['password'])) // Acces OK !
{
$_SESSION['username'] = $data['username'];
?>
<?php
header("Location: page_accueil.php"); /* Redirection du navigateur */
exit;
?>
<?php
}
else
{
$message = '<p>Une erreur s\'est produite
pendant votre identification.<br /> Le mot de passe ou le pseudo
entré n\'est pas correcte.</p><p>Cliquez <a href="./connexion.php">ici</a>
pour revenir à la page précédente
<br /><br />Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
$query->CloseCursor();
}
echo $message.'</div></body></html>';
}
}
?>[/php]