paloma, el problema parece ser que o el servidor está realmente sobrecargado o bien lanzas conexiones dentro de un bucle. Al llegar el server al máximo de acomodaciones permitidas te da ese fallo.
Hay otro error que no he notado antes: utilizas los mismos nombres de variables dentro y fuera del bucle, una solución sería esta:
Código PHP:
<?php
$con = mysql_connect("server","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("nombre_base", $con);
$result = mysql_query("SELECT count(*) AS cuenta, password FROM usuario WHERE username='$_POST[usuario]'");
while($row = mysql_fetch_assoc($result))
{
$crypted = md5($_POST["clv"]);
if ($row['cuenta']==1 && $row["password"] == $crypted ){
session_start("autentificado", "usuario", "nombre", "apellido1");
$_SESSION["autentificado"]= "SI";
$_SESSION["usuario"] = $_POST["usuario"];
$result2 = mysql_query("SELECT usr_id, username, nombre, apellido1, apellido2, tipo_perfil_id
FROM usuario
WHERE username='$_POST[usuario]';");
//echo "<table border='0' align='center'>";
while($row2 = mysql_fetch_assoc($result2))
{
$_SESSION["nombre"] = $row2["nombre"];
$_SESSION["apellido1"] = $row2["apellido1"];
$redir = ".index2.html?usr=" . $row2['usr_id'] . "&tp=" . $row2['tipo_perfil_id'];
header("Location: $redir");
if ($row2['cuenta']==54 && $row2["password"] == $crypted ){
session_start("autentificado", "usuario", "nombre", "apellido1");
$_SESSION["autentificado"]= "SI";
$_SESSION["usuario"] = $_POST["usuario"];
$result3 = mysql_query("SELECT usr_id, username, nombre, apellido1, apellido2, tipo_perfil_id
FROM usuario
WHERE username='$_POST[usuario]';");
//echo "<table border='0' align='center'>";
while($row3 = mysql_fetch_assoc($result3))
{
$_SESSION["nombre"] = $row3["nombre"];
$_SESSION["apellido1"] = $row3["apellido1"];
$redir2 = ".index1.html?usr=" . $row3['usr_id'] . "&tp=" . $row3['tipo_perfil_id'];
header("Location: $redir2");
}
mysql_free_result($result3);
} else {
echo "<br><br><br><br><br><br><br><br><br><br><br>" ;
echo "<table border='0' align='center'>
<tr>
<th><h1> Su usuario no ha sido aceptado*" . $_POST[usuario] . "*</h1></th>
</tr>
<tr>
<th> <A href='aviso.html'> Intentar nuevamente </A>
</tr></table>";
}
}
mysql_free_result($result2);
}
}
mysql_free_result($result);
mysql_close($con);
?>
He agregado la función mysql_free para liberar los recursos del sistema. Por otra parte, si vas a acceder a los recursos por clave, utiliza la función mysql_fetch_assoc que devuelve la mitad de resultados.
Por supuesto que el código se puede simplificar como apunta ninco90, pero eso ya lo harás cuando entiendas y funcione ESTE código. Si lo abandonas sin entender los fallos no aprendes nada. Claro que esta es sólo una opiñión. Espero que te sirva, saludos