[PHP] script de connexion qui marche plus
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'ai un problème, je créais un script php pour se connecter mais il me renvoie tout le temps cette erreur : "Parse error: parse error in C:\wamp\www\lounge\index.php on line 35". Je crois que le problème viens su fait que je créais un système avec deux langue, je pense qu'il y a conflit entre le if de la connexion https et celui de la connexion fr ou en (français et anglais). Je vous ai mis si dessous ke code source avec la zone à problème en gras :
<?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) {
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}
else {
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 un problème, je créais un script php pour se connecter mais il me renvoie tout le temps cette erreur : "Parse error: parse error in C:\wamp\www\lounge\index.php on line 35". Je crois que le problème viens su fait que je créais un système avec deux langue, je pense qu'il y a conflit entre le if de la connexion https et celui de la connexion fr ou en (français et anglais). Je vous ai mis si dessous ke code source avec la zone à problème en gras :
<?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) {
if ($data['https'] == 1) {
header('Location: https://my-webdesign.org/membres/membre.php');
}
else {
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.';
}
}
?>
A voir également:
- [PHP] script de connexion qui marche plus
- Gmail connexion - Guide
- Script vidéo youtube - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Heure de connexion whatsapp qui ne changé pas - Accueil - WhatsApp
7 réponses
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
Ca ne fonctionne toujours pas, je suis désolé, mais ma fonction multilangue je pense qu'elle va être mis à la poubelle, avec le https ca fonctionnai, et maintenant plus.
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.';
}
}
?>
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.
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
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é.