HsBridou | Salut à tous,
Voilà j'ai un problème que je n'arrive absolument pas à regler car je ne sais pas d'ou est-ce qu'il provient.
J'ai fait une partie administraiton pour mon site pour pouvoir géré le site sans avoir acces au ftp, enfin bref...
En local je n'es aucun problème, tout marche parfaitement mais quand je teste ma partie administration sur internet, elle va marché pendant quelques "actions" je vais pouvoir ajouter des articles, faire quelques modifs et après ce message arrive :
Warning: User ?????@unix1.xelacom.net has already more than 'max_user_connections' active connections in /......./httpdocs/administration/verifsession.php on line 13
Impossible de se connecter à la base de données
J'ia caché certaines informations par les ?? et ... vous savez pourquoi
Mon lancement de Session se fait en gros de cette facon :
Une page acces.php :
On entre son nom et mdp, puis on valide, dans la BD MySql on verifie que les infos sont bonnes.
Voilà le code pour la session :
Citation :
Function start_session($localhost, $login, $mot, $dbName, $dblink, $pseudo, $motdepasse)
{
Global $session, $user_niv;
$pseudo = trim($pseudo);
$pass = trim($motdepasse);
$tableverif = "utilisateurs";
$verif = "SELECT niveau FROM $tableverif WHERE pseudo='$pseudo' AND pass='$motdepasse'";
$resultverif = @mysql_db_query($dbName, $verif);
$numrow = mysql_num_rows($resultverif);
if ($numrow == 1)
{
$Pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
$lastChar = strlen($Pool) - 1;
srand(time());
for($i = 0; $i < 20; $i++)
{
$session .= $Pool[rand(0, $lastChar)];
}
$date = time() + 3600;
$startses = "UPDATE $tableverif SET session = '$session', date = '$date' WHERE pseudo like '$pseudo'";
if ($res = mysql_query($startses))
{
$r_user = mysql_query("select niveau from $tableverif where pseudo like '$pseudo'" );
$r = mysql_fetch_array($r_user);
$user_niv = $r["niveau"];
}
else
{
echo "Un incident grave c'est produit<BR>La commande n'a pas abouti";
exit();
}
}
else
{
echo "Login ou mot de passe incorrect<BR>La commande n'a pas abouti";
exit();
}
}
|
Donc si c'est bon la session est bien créer j'accede a une page console.php ou j'ai fait un menu pour els différentes rubriques de mon site, passons....
A chaque page de mon adminsitration je fais le test de validité de la session en appellant la page verifsession.php :
Citation :
<?php
if (!isset($session))
{
echo "<br><br>Accès refusé ";
exit();
}
else
{
$localhost = "blabla";
$login = "blabla";
$mot = "blabla";
$dbName = "blabla";
$dblink = mysql_pconnect($localhost,$login,$mot) or die("Impossible de se connecter à la base de données" ); @mysql_select_db("$dbName" ) or die("Impossible de se connecter à la base de données" );
$tableverif = "utilisateurs";
$resultverif = @mysql_query("SELECT pseudo, niveau, date, email FROM $tableverif WHERE session='$session'" );
if ($numrow = mysql_num_rows($resultverif) == 0)
{
echo "<br><br>Accès refusé ";
exit();
}
$res = mysql_fetch_array($resultverif);
$current_date = time();
$date_limit = $res["date"] + 3600;
if (($current_date > $date_limit) or !(in_array($res["niveau"],$niveau)))
{
echo "<br><br>Accès refusé ";
exit();
}
}
$pseudo = $res["pseudo"];
$email = $res["email"];
?>
|
Par pitié dites moi que vous avez la soluce (pb dans mes ficiers, pb dut a l'hebergeur, utiliser une autre methode pour les sessions ?)
Merci d'avance les gars ! |