[PHP] script de connexion qui marche plus
Fermé
Utilisateur anonyme
-
Modifié par seby1996 le 25/09/2010 à 23:57
Utilisateur anonyme - 26 sept. 2010 à 22:57
Utilisateur anonyme - 26 sept. 2010 à 22:57
A voir également:
- [PHP] script de connexion qui marche plus
- Gmail connexion - Guide
- Script vidéo youtube - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Plus de connexion internet - Guide
7 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 sept. 2010 à 11:41
26 sept. 2010 à 11:41
comme proposé plus haut
if ($data['langue'] == fr && $data['https'] == 1) { header('Location: https://my-webdesign.org/membres/membre.php'); } elseif ($data['langue'] == fr && $data['http'] == 0) { header('Location: http://my-webdesign.org/membres/membre.php'); } else { if ($data['https'] == 1) { header('Location: https://my-webdesign.org/en/membres/membre.php'); } else { header('Location: http://my-webdesign.org/en/membres/membre.php'); } } exit(); }
Utilisateur anonyme
26 sept. 2010 à 00:01
26 sept. 2010 à 00:01
Salut,
J'ai pas compris grand chose à ton code tellement il est approximatif, mais essais ça :
______________________________________________________________
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']) && (isset($_POST['check']) && !empty($_POST['check'])))) {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('lounge', $base);
$date = Date("d/m/Y H:i:s");
$sql = 'SELECT id, prenom, nom, email, https, langue FROM membres WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md3="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 1) {
$data = mysql_fetch_array($req);
session_start();
$_SESSION['login'] = $_POST['login'];
// on enregistre en plus l'id du membre dans une variable de session
$_SESSION['id'] = $data['id'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['email'] = $data['email'];
$_SESSION['langue'] = $data['langue'];
$_SESSION['https'] = $data['https'];
mysql_free_result($req);
mysql_close();
if ($data['langue'] == fr && $data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}
elseif ($data['langue'] == fr && $data['http'] == 1)
{
header('Location: http://my-webdesign.org/membres/membre.php');
}
else
{
if ($data['https'] == 1)
{
header('Location: https://my-webdesign.org/en/membres/membre.php');
}
else
{
header('Location: http://my-webdesign.org/en/membres/membre.php');
}
}
exit();
}
elseif ($nb == 0) {
$erreur = 'Compte non reconnu.';
}
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
mysql_free_result($req);
mysql_close();
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
J'ai pas compris grand chose à ton code tellement il est approximatif, mais essais ça :
______________________________________________________________
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']) && (isset($_POST['check']) && !empty($_POST['check'])))) {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('lounge', $base);
$date = Date("d/m/Y H:i:s");
$sql = 'SELECT id, prenom, nom, email, https, langue FROM membres WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md3="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 1) {
$data = mysql_fetch_array($req);
session_start();
$_SESSION['login'] = $_POST['login'];
// on enregistre en plus l'id du membre dans une variable de session
$_SESSION['id'] = $data['id'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['email'] = $data['email'];
$_SESSION['langue'] = $data['langue'];
$_SESSION['https'] = $data['https'];
mysql_free_result($req);
mysql_close();
if ($data['langue'] == fr && $data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}
elseif ($data['langue'] == fr && $data['http'] == 1)
{
header('Location: http://my-webdesign.org/membres/membre.php');
}
else
{
if ($data['https'] == 1)
{
header('Location: https://my-webdesign.org/en/membres/membre.php');
}
else
{
header('Location: http://my-webdesign.org/en/membres/membre.php');
}
}
exit();
}
elseif ($nb == 0) {
$erreur = 'Compte non reconnu.';
}
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
mysql_free_result($req);
mysql_close();
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
Utilisateur anonyme
26 sept. 2010 à 00:03
26 sept. 2010 à 00:03
Merci bcp
elle doit te connecter en allant cherche toutes les données de la bases de donnée : à savoir : id, login, pass_md3(crypté en md5), prenom, nom, email, langue, https (soit 1 ou 0, 1 voulant dire actif et 0 non-actif) et les enrengistré dans des variables de la session, vérifier que le login et le mot de passe correspondent à une des entrées de la base de donnée, et une redirection si en anglais ou en francais avec dans chaque si le https est activé une redirection dans la bonne langue mais en https.
Merci de ton aide. Je vais me coucher.
Merci de ton aide. Je vais me coucher.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 sept. 2010 à 10:53
26 sept. 2010 à 10:53
dans cette partie des erreurs de principe dans tes test conditionels if /else
if ($data['langue'] == fr) {
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}else {
header('Location: http://my-webdesign.org/membres/membre.php');
}
else { // la tu n'as pas le droit de mettre un deuxieme else
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/en/membres/membre.php');
}
else {
header('Location: http://my-webdesign.org/en/membres/membre.php');
}
}
}
pour mettre plusieurs else il faut des else if(condition)
if ($data['langue'] == fr) {
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}else {
header('Location: http://my-webdesign.org/membres/membre.php');
}
else { // la tu n'as pas le droit de mettre un deuxieme else
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/en/membres/membre.php');
}
else {
header('Location: http://my-webdesign.org/en/membres/membre.php');
}
}
}
pour mettre plusieurs else il faut des else if(condition)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
26 sept. 2010 à 11:24
26 sept. 2010 à 11:24
que suis-je donc sansé faire, je ne comprend pas, j'avais utilisé ce script avec le https et ca fonctionnait très bien, mais maintenant que j'utilise en plus l'anglais ca beugue alors franchement, la je suis paumé.
Utilisateur anonyme
26 sept. 2010 à 22:57
26 sept. 2010 à 22:57
J'ai trouvé, ca marche, yavais encore une erreure que j'ai faite par inadvertance, c'était franchement con, mais c pas grave, merci à tous.
26 sept. 2010 à 17:19