Te dejo el codigo como yo lo haria, de todas formas respete tus variables y estructura.
Código PHP:
<?
//siempre incluye tus archivos al comienzo a menos q tengas una razon valida :)
include "conexion.php";
//aqui lo que vamos a hacer es sanitizar los datos que te envian. para que no te hagan injecciones sql simples.
//mas adelante deberias poner una funcion que sanitize de veras :P
$usuario = mysql_escape_string($_POST["usuario"]);
//aqui el unico cambio que haria seria que ademas encriptaria la clave usando md5.
$contrasena = mysql_escape_string($_POST["password"]);
//vamos a hacer la consulta a ver si el $usuario y $contrasena son correctos
$result=mysql_query("SELECT nombredeusario, contrasena FROM contrasenas where nombredeusuario = $usuario and contrasena = $contrasena ",$conn);
//chequeamos si hubo resultados, si el resultado es correcto deberia haber 1 solo resultado
if (mysql_num_rows($result) == 1) {
// en lo personal usaria true en ves de si
$valido="si";
//no precisamos hacer un while ya q es solo un resultado el que tienes
$row = mysql_fetch_row($result);
//abres la session
session_start();
$_SESSION['usuario'] = $row['nombredeusuario'];
$_SESSION['password'] = $row['contrasena'];
}else {
// en lo personal usaria false en ves de no
$valido="no";
}
include "cerrar_conexion.php";
?>
como te mencionaban antes hay un par de detalles impotantes.
1- es mejor el sql query que te pusieron antes y yo use
2- deberias guardar las passwords encriptadas y no planas
3- siempre debes sanitizar los datos antes de usarlos
Saludos y espero que te sea de utilidad el codigo