J'ai complètement revu et corrigé mon code à partir de modèle que j'avais déjà fait auparavant que j'ai adapté. Le tout fonctionne bien. J'ai pas annoté pour alléger le code. Mais, je pense qu'il y a surement des modifications à faire pour l'améliorer.
Une image pour montrer ce que cela va donner :
- en arrivant sur la page, un prompte est demandé via PHP_AUTH_USER sans page d'accueil.
- L'image ci-dessous montre le résultat.
- Quand on change l'une des deux information, ça indique "updated".
Il me reste à remplacer INPUT TYPE="TEXT" pour type password mais je dois créer un autre INPUT pour confirmer le mot de passe à changer.. ici, j'ai jamais fait ça.
Et pour finir, il me reste à "Encoder" le mot de passe qui sera insérer dans la base de données. Chose que j'avais fait déjà mais que j'ai dû retirer à cause que ça ne fonctionnait pas. Tien, un défit ici.
Si vous avez des suggestions à faire, merci de les faire savoir. Et ça peut inspirer quelqu'un.
Je n'utilise pas PDO à cause que mon fournisseur ne le permet pas.
Modifié par dan4 (15 Sep 2010 - 12:09)
Une image pour montrer ce que cela va donner :

- en arrivant sur la page, un prompte est demandé via PHP_AUTH_USER sans page d'accueil.
- L'image ci-dessous montre le résultat.
- Quand on change l'une des deux information, ça indique "updated".
Il me reste à remplacer INPUT TYPE="TEXT" pour type password mais je dois créer un autre INPUT pour confirmer le mot de passe à changer.. ici, j'ai jamais fait ça.
Et pour finir, il me reste à "Encoder" le mot de passe qui sera insérer dans la base de données. Chose que j'avais fait déjà mais que j'ai dû retirer à cause que ça ne fonctionnait pas. Tien, un défit ici.
Si vous avez des suggestions à faire, merci de les faire savoir. Et ça peut inspirer quelqu'un.
Je n'utilise pas PDO à cause que mon fournisseur ne le permet pas.
<?php
session_start();
include('connect-db.php');
$result = mysql_query("SELECT * FROM dan_bmark WHERE id='1'") or die(mysql_error());
while($row = mysql_fetch_array( $result )) {
$username = htmlentities($row['username']);
$password = htmlentities($row['password']);
}
mysql_close();
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
echo "You have logout ".$username." ";
echo "[<a href='" . htmlentities($_SERVER['PHP_SELF']) . "'>Login</a>]";
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("WWW-Authenticate: Basic realm=\"Test\"");
header("HTTP/1.0 401 Unauthorized");
$_SESSION["login"] = true;
echo "You are unauthorized ... ";
echo "[<a href='" . htmlentities($_SERVER['PHP_SELF']) . "'>Login</a>]";
exit;
}
else
{
if($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password)
{
echo "You have logged in ".$username." ";
echo "[<a href='" . htmlentities($_SERVER['PHP_SELF']) . "?logout'>Logout</a>]";
include('connect-db.php');
function renderForm($id, $username, $password, $error) {
if ($error != ''){
echo $error;
}
?>
<form name="formulaire" action="<?php echo htmlentities($_SERVER['PHP_SELF']) ?>" method="post">
<input type="hidden" name="id" value="1"/>
<fieldset>
<legend>Authentification</legend>
<label for="labelusername">Username </label><input type="text" maxlength="64" size="64" id="labelusername" name="username" value="<?php echo $username; ?>" /><br />
<label for="labelpassword">password </label><input type="text" maxlength="64" size="64" id="labelpassword" name="password" value="<?php echo $password; ?>" /><br />
</fieldset>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="submit" value="Cancel">
</form>
<?php
}
if (isset($_POST['submit'])) {
if (is_numeric(1)) {
$id = '1';
$username = mysql_real_escape_string(htmlspecialchars(stripslashes($_POST['username'])));
$password = mysql_real_escape_string(htmlspecialchars(stripslashes($_POST['password'])));
if ($username == '' || $password == '') {
$error = 'ERROR: Please fill in all required fields!';
renderForm($id, $username, $username, $error);
}
else {
mysql_query("UPDATE dan_bmark SET username='$username', password='$password' WHERE id='1'") or die(mysql_error());
renderForm($id, $username, $password, '');
echo 'Updated!';
}
}
else {
echo 'Error!';
}
}
else {
$result = mysql_query("SELECT * FROM dan_bmark WHERE id=1") or die(mysql_error());
$row = mysql_fetch_array($result);
if($row)
{
$username = $row['username'];
$password = $row['password'];
renderForm($id, $username, $password, '');
}
else {
echo "No results!";
}
}
mysql_close();
}
else
{
unset($_SESSION["login"]);
header("Location: " . htmlentities($_SERVER['PHP_SELF']));
}
}
?>
Modifié par dan4 (15 Sep 2010 - 12:09)