webForumDet fria alternativet

Vad saknas för uppdatering av mysql?

PHP

3 svar · 227 visningar · startad av unidentify

Medlem sedan juni 200319 inlägg
Frågan#1

Det här ska vara en sida där admin byter sitt lösenord. Den ska ha 2st fält där båda nya lösenorden måste vara likadana innan det ändras. Just nu händer inte ett smack på i antingen databasen eller sidan. (inget errors eller echo's) Känns som jag missat en hel del.
Tabellen heter 'login' har har fälten 'id', 'user', 'pass'

Är evigt tacksam för alla svar.

<?PHP include("start_session.txt"); ?> 
<?php include("db.php"); ?> 
<?php 
if($password1 == NULL || $password2 == NULL) { 
    echo "Var snäll och fyll i alla fält."; 
} else { 
    if($password1 == $password2) { 
        $todo = "UPDATE login SET pass='$password1'"; 
        $solution = mysql_query($todo) or die(mysql_error()); 
        echo "Lösenordet är ändrat"; ?> 
        <?    } else { 
    echo "Lösenorden stämmer inte överens."; 
    } 
} 
?> 
<html> 
<head> 
<title>Byt l&ouml;senord</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<LINK title="Admin Style" href="admin.css" type=text/css rel=StyleSheet> 
</head> 
<body bgstyle="color: #FFFFFF;" text="#000000"> 
<center><FORM METHOD="post" ACTION="bytlosen.php" name="byt"> 
    <h3>Byt l&ouml;senord</h3> 
    <INPUT TYPE="password" NAME="$password1" size="15" value="<?=$row['pass'];?>"> 
    <br> 
   <INPUT TYPE="password" NAME="$password2" size="15" value="<?=$row['pass'];?>"> 
    <br> 
    <INPUT TYPE="submit" NAME="submit" VALUE="Byt l&ouml;senord"> 
 
</form> 
  <font color="#FF0000"><b>Ditt nya l&ouml;senord har uppdaterats.</b></font><br> 
  Gl&ouml;m inte bort att skriva ner detta p&aring; ett s&auml;kert st&auml;lle.<br> 
  <br> 
  <a href="javascript:window.close();"><b>St&auml;ng ner mig</b></a> 
</center> 
</body> 
</html>
Medlem sedan dec. 200012 464 inlägg
#2

Flyttas från Mysql till PHP

Medlem sedan maj 20002 993 inlägg
#3

Den koden var ju inte speciellt vacker.

Sen så har du namngivit formulärfälten fel och så skriver du ut meddelandena innan html taggen, vilket kanske inte är så bra.

Detta kankse fungerar lite bättre? :)

<?
include("start_session.txt");
include("db.php");

if(empty($_POST['password1']) || empty($_POST['password2']))
{ 
	$output = "Var snäll och fyll i alla fält."; 
}
else
{
	if($_POST['password1'] == $_POST['password2'])
	{
		mysql_query("UPDATE login SET pass='$_POST[password1]' WHERE user='Admin'") or die(mysql_error());
		$output = "Lösenordet är ändrat";
	}
	else
	{
		$output = "Lösenorden stämmer inte överens.";
	}
}
?> 
<html> 
<head> 
<title>Byt l&ouml;senord</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<LINK title="Admin Style" href="admin.css" type=text/css rel=StyleSheet> 
</head> 
<body bgstyle="color: #FFFFFF;" text="#000000"> 
<center>

<?=$output;?>

<FORM METHOD="post" ACTION="bytlosen.php" name="byt"> 
    <h3>Byt l&ouml;senord</h3> 
    <INPUT TYPE="password" NAME="[b]password1[/b]" size="15" value="<?=$row['pass'];?>"> 
    <br> 
   <INPUT TYPE="password" NAME="[b]password2[/b]" size="15" value="<?=$row['pass'];?>"> 
    <br> 
    <INPUT TYPE="submit" NAME="submit" VALUE="Byt l&ouml;senord"> 
 
</form> 

  <font color="#FF0000"><b>Ditt nya l&ouml;senord har uppdaterats.</b></font><br> 
  Gl&ouml;m inte bort att skriva ner detta p&aring; ett s&auml;kert st&auml;lle.<br> 
  <br> 
  <a href="java script:window.close();"><b>St&auml;ng ner mig</b></a> 
</center> 
</body> 
</html>
Medlem sedan mars 20034 471 inlägg
#4

Ett påpekande och en fråga.

Så vitt jag begriper kommer ovanstående lösning av AlphaII att fungera under två förutsättningar:

I) Att administratören verkligen har användarnamnet Admin (med stort A och litet för resten). Det är väl inte särskilt vanligt??? :q

II) Och att det finns exakt en sådan Admin. Annars får alla administratörer nytt lösenord...

Sedan undrar jag: Vi hade en diskussion för nån månad sedan om SQL Injections. Är inte detta med lösenordsändring ett ställe att verkligen kolla vad det är vi får in? :q (Eller kan denna sida endast nås av administratörer? Då är kanske inte problemet så stort.)

Tillägg: Är det inte bättre att jämföra strängarna med strcmp än med == ? :q

red: Lagt till tillägget

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)