Dreamweaver et PHP 5.4 connecter l'utilisateur
Bonjour,
Me revoilà au sujet de dreamweaver et php 5.4
Beaucoup de gens disent qu'ils suffit d'ajouter un simple i à mysql mais ce n'est pas aussi simple. C'est une vrai galère...
Mes scripts pour connecter l'utilisateur fonctionne toujours très bien mais avec la version PHP 5.4, rien ne fonctionne.
Voici Le script généré par Dreamweaver pour connecter l'utilisateur à son interface. (J'ai modifié en mysqli)
Si une personne peut m'aider, ce serait géniale. Un grand merci par avance...
<?php require_once('../Connections/connex_2019.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['mail'])) {
$loginUsername=$_POST['mail'];
$password=$_POST['mp'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "Ok-pape-membre-accueil.php";
$MM_redirectLoginFailed = "errOOOORRR.php";
$MM_redirecttoReferrer = false;
mysqli_select_db($feu_connectiq,$database_donne);
$LoginRS__query=sprintf("SELECT MailAnnonceur, Mdp FROM annonceur WHERE MailAnnonceur=".$loginUsername." AND Mdp=".$password."");
$LoginRS = mysqli_query($feu_connectiq,$LoginRS__query) or die(mysqli_error());
$loginFoundUser = mysqli_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<form ACTION="<?php echo $loginFormAction; ?>" name="form1" method="POST">
<label>Votre Email</label>
<input name="mail" type="text" class="pass-input" id="mail" placeholder="" value="" size="80" maxlength="100"/>
<label>Votre mot de pass :</label>
<input name="mp" type="password" class="pass-input" id="mp" value="" maxlength="10" placeholder=""/>
<button class="btn big-btn color-bg flat-btn">Se connecter<i class="fa fa-angle-right"></i></button>
</form>
Réponses apportées à cette discussion
Bonjour Sophie,
bidouiller du code généré par Dreamweaver est une assez mauvaise méthode d'apprentissage. Il ne serait pas totalement inutile d'apprendre un minimum la programmation PHP en codant directement sans générateur.
Un élément essentiel lorsqu'on apprend, c'est aussi de se servir de la documentation. Pour MySQLi, il faut ensuite choisir si on code en procédural ou en objet. Les deux sont possibles, mais pour une question de cohérence d'ensemble, il est de très loin préférable et vivement recommandé de n'utiliser qu'un seul type de programmation.
Pour MySQLi, la documentation présente en outre une page d'exemples de base fort utiles pour en voir les utilisations essentielles. Et l'exemple montré dans cette page est assez complet :
<?php
// Passons une variable $_GET à notre exemple, dans ce cas
// c'est aid pour actor_id dans notre base de données Sakila.
// Rendons le par défaut à 1, et transtypons le en entier pour éviter
// les injections SQL et / ou des problèmes de sécurité connexe.
// Gérer tout ceci sort du cadre de cet exemple basique. Exemple :
// http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
$aid = (int) $_GET['aid'];
} else {
$aid = 1;
}
// Se connecter et sélectioner une base de données MySQL nommé sakila
// Hostname: 127.0.0.1, username: votre_utilisateur, password: votre_mdp, db: sakila
$mysqli = new mysqli('127.0.0.1', 'votre_utilisateur', 'votre_mdp', 'sakila');
// Oh non ! Une connect_errno existe donc la tentative de connexion a échoué !
if ($mysqli->connect_errno) {
// La connexion a échoué. Que voulez-vous faire ?
// Vous pourriez vous contacter (email ?), enregistrer l'erreur, afficher une jolie page, etc.
// Vous ne voulez pas révéler des informations sensibles
// Essayons ceci :
echo "Désolé, le site web subit des problèmes.";
// Quelque chose que vous ne devriez pas faire sur un site public,
// mais cette exemple vous montrera quand même comment afficher des
// informations lié à l'erreur MySQL -- vous voulez peut être enregistrer ceci
echo "Error: Échec d'établir une connexion MySQL, voici pourquoi : \n";
echo "Errno: " . $mysqli->connect_errno . "\n";
echo "Error: " . $mysqli->connect_error . "\n";
// Vous voulez peut être leurs afficher quelque chose de jolie, nous ferons simplement un exit
exit;
}
// Réaliser une requête SQL
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$result = $mysqli->query($sql)) {
// Oh non ! La requête a échoué.
echo "Désolé, le site web subit des problèmes.";
// Denouveau, ne faite pas ceci sur un site public, mais nous vous
// montrerons comment récupérer les informations de l'erreur
echo "Error: Notre requête a échoué lors de l'exécution et voici pourquoi :\n";
echo "Query: " . $sql . "\n";
echo "Errno: " . $mysqli->errno . "\n";
echo "Error: " . $mysqli->error . "\n";
exit;
}
// Phew, nous avons réussie. Nous savons que la connexion MySQL et la requête
// a réussi, mais avons nous un résultat ?
if ($result->num_rows === 0) {
// Oh, pas de lignes ! Dès fois c'est acceptable et attendue, dès fois
// ce l'est pas. Vous décidez. Dans ce cas, peut être que actor_id était trop
// large ?
echo "Nous n'avons pas trouvé de correspondance pour ID $aid, nous sommes désolé. Veuillez réessayer de nouveau.";
exit;
}
// Maintenant, nous savons qu'un seul résultat existera dans cet exemple donc
// récupérons le dans un tableau associatif où les clés du tableau sont
// les noms de colonnes de la table
$actor = $result->fetch_assoc();
echo "Parfois je vois " . $actor['first_name'] . " " . $actor['last_name'] . " à la TV.";
// Maintenant, récupérons cinq acteurs aléatoires et affichons leurs noms dans une liste.
// Nous ajouterons moins de gestion d'erreur car vous savez désormais faire ceci vous-même.
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
echo "Désolé, le site web subit des problèmes.";
exit;
}
// Affichons nos 5 acteurs aléatoires, et un lien pour chaque acteur
echo "<ul>\n";
while ($actor = $result->fetch_assoc()) {
echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
echo $actor['first_name'] . ' ' . $actor['last_name'];
echo "</a></li>\n";
}
echo "</ul>\n";
// Le script libérera automatiquement le résultat et fermera la connexion
// MySQL quand elle existe, mais faisons le quand même
$result->free();
$mysqli->close();
?>
À partir de là, il devrait devenir assez facile de corriger ton code actuel.