Passage à php 7 de l’hébergeur. plus de connexion à la base.

titiatita
Invité n'ayant pas de compte PHPfrance

14 févr. 2016, 17:18

Bonjour,
mon hébergeur ma conseillé de passer php en php7.
problème suite a sa modification plus rien ne fonctionne, mon administration est inutilisable. d'après lui je dois adapter mon code de connexion mais je ne sais pas quoi changer... alors je viens vous demander de l'aide.
ma page connexion.php est la suivante.

Code : Tout sélectionner

<?php session_start(); // Redirige l'utilisateur s'il est déjà identifié if(isset($_SESSION["TB_Nom_Utilisateur"])) { header("Location: index.php"); } else { // Formulaire visible par défaut $masquer_formulaire = false; // Une fois le formulaire envoyé if(isset($_POST["BT_Envoyer"])) { // Vérification de la validité des champs if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"])) { $message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n"; $message .= "L'utilisation de l'underscore est autorisée"; } elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"])) { $message = "Votre mot de passe doit comporter au moins 6 caractères"; } else { // Connexion à la base de données // Valeurs à modifier selon vos paramètres configuration mysql_connect("host","utilisateur","mdp"); mysql_select_db("base"); // Sélection de l'utilisateur concerné $result = mysql_query(" SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active FROM Utilisateurs WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "' "); // Si une erreur survient if(!$result) { $message = "Une erreur est survenue lors de la tentative de connexion"; } else { // Si aucun utilisateur n'a été trouvé if(mysql_num_rows($result) == 0) { $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas"; } else { // Récupération des données $row = mysql_fetch_array($result); // Si le compte n'a pas été activé if($row["Compte_Active"] == 0) { $message = "Votre compte utilisateur n'a pas été activé"; } else { // Vérification du mot de passe if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"]) { $message = "Votre mot de passe est incorrect"; } else { //création de session $_SESSION['TB_Nom_Utilisateur'] = $_POST['TB_Nom_Utilisateur']; // $_SESSION['ID_Utilisateur'] = $ID_Utilisateur; // $TB_Nom_Utilisateur = $_POST['TB_Nom_Utilisateur']; //enregistrement de l'ouverture de session pour statistique $sql = "INSERT INTO historique(ID_Utilisateur, Nom_Utilisateur, Date_Connexion ) VALUES('','$TB_Nom_Utilisateur', NOW())"; mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error()); // Fermeture de la connexion à la base de données mysql_close(); // Redirection de l'utilisateur header("Location: index.php"); } } } } // Fermeture de la connexion à la base de données mysql_close(); } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Connexion</title> <link rel="stylesheet" type="text/css" href="style/style.css"></link> </head> <body class="login"> &nbsp; <div id="login"> <?php if(isset($message)) { ?> <?php echo $message; ?><?php } if($masquer_formulaire != true) { ?> <form name="loginform" id="loginform" action="http://<?php echo $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post"> <p> <label>Identifiant<br /> <input type="text" name="TB_Nom_Utilisateur" id="TB_Nom_Utilisateur" class="input" value="" size="20" tabindex="10" /></label> </p> <p> <label>Mot de passe<br /> <input type="password" name="TB_Mot_de_Passe" id="TB_Mot_de_Passe" class="input" value="" size="20" tabindex="20" /></label> </p> <p class="submit"> <input type="submit" name="BT_Envoyer" class="button-primary" value="Se connecter" tabindex="100" /> </p> </form> <?php } ?> </div> </body> </html>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 févr. 2016, 22:00

Bonjour,

ereg() n'existe plus en PHP7, à remplacer par preg_match()
Idem pour les fonctions en mysql_* qui doivent être remplacées par des fonctions mysqli_* ou par PDO

Si tout ton site est basé sur des fonctions périmées comme celles ci, ça va te demander pas mal de boulot
Quand tout le reste a échoué, lisez le mode d'emploi...