Ser lite konstigt ut
1. du har ingen action på formuläret
2. Om lösenordet är tomt så sätter du det till no pass, vilket innebär att när du kollar det andra gången så är det aldrig tomt, inte ens om formuläret var tomt när det skickades.
3. Var får du ett värde på $id? I conn.php?
1. action är tillagt.
2. så vi ska ta bort empty alltså?
så att t.ex. den översta raden blir så här:
<?php $_POST['pass']
3. ingenstans... hur skriver jag ut det?
2. Ett förslag på hur du kan kolla om lösenordet är ifyllt:
// Tag bort eventuella blanksteg i början eller slutet
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}
//Kolla efter tomma fält
if (empty($_POST['pass'])) {
echo "Du glömde fylla i lösenordet.";
exit;
}
3. Du använder ju $id i din sql sats, nånstans måste du ju få det ifrån.
$update = ("UPDATE npmedlemmar SET pass={$pass} WHERE id={$id}") or die (mysql_error());
red/ vad får du för felmeddelande om du lägger till or die (mysql_error()); på din sql sats?
jo jag har ju id i min databas...
men tänkte att du menade att det skulle vara utskrivet någonstans, så att man skulle hämta det osv tidigare i dokumentet.
jag ger variabeln id ett värde på bli medlems sidan, där alla medlemmar blir tilldelade ett id...
så tänkte använda id för att kolla att man uppdaterar rätt persons lösenord...
nejdå... ett id tilldelas varje ny medlem som registrerar sig... sess_user kan dock krångla ibland när du ska använda det ute på sidan så skulle helst vilja att id fungerar...
okej.... men tänkte på en annan sak, vart ska jag lägga in din kod som kontrollerar om man fyllt i något lösenord... skickar med en kod där den visar det hela tiden har testat att flytta ned den också och då visar den det inte alls...
<?php if(empty($_POST['pass']))
$pass = "not set";
// Tag bort eventuella blanksteg i början eller slutet
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}
//Kolla efter tomma fält
if (empty($_POST['pass'])) {
echo "Du glömde fylla i lösenordet.";
exit;
}
if(!empty($_POST['pass']))
{
$pass = md5($_POST['pass']);
$update = "UPDATE npmedlemmar SET pass={$pass} WHERE id={$id}";
mysql_query($update) or die("Det gick inte att byta lösenord, försök igen!");
print("Du har nu bytt lösenord.");
}
?>
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}
//Kolla efter tomma fält
if (empty($_POST['pass'])) {
echo "Du glömde fylla i lösenordet.";
exit;
}
// Fältet är inte tomt då kör vi in det i databasen
$pass = md5($_POST['pass']);
mysql_query("UPDATE npmedlemmar SET pass='{$pass}' WHERE id='{$id}'") or die("Det gick inte att byta lösenord");
print("Du har nu bytt lösenord.");
testade att byta ut mot din kod, den visar att man glömde fylla i lösenordet direkt när man kommer in på sidan då också :(
även den senaste som du postade.
Lägg allt detta direkt efter include('conn.php'); istället.
<?php
if (isset($_POST['Submit'])) {
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}
//Kolla efter tomma fält
if (empty($_POST['pass'])) {
echo "Du glömde fylla i lösenordet.";
exit;
}
// Fältet är inte tomt då kör vi in det i databasen
$pass = md5($_POST['pass']);
mysql_query("UPDATE npmedlemmar SET pass='{$pass}' WHERE id='{$id}'") or die("Det gick inte att byta lösenord");
print("Du har nu bytt lösenord.");
}
?>