Aller au menu - Aller au contenu

Prendre/Pas prendre la casse ?

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Résolu Le problème de ce sujet a été résolu

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne Th30 # Posté le 04/02/2012 à 03:00:07
Il n'y a rien écrit ici
Avatar

Bonsoir, voila j'ai un espace membre sur un site mais quand on s'inscrit, sa met les majuscules qu'on a inscrit. Mais a la connexion, si on met le meme mais sans les majuscules sa fonctionne, mais sauf que moi j'aimerai que dès la connexion sa remette le pseudo comme il faut, donc si on marque th30 que dans la session sa change en Th30, en gros comme dans la bdd c'est inscrit. Donc voila mon code de connexion:

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require('admin/config.php'); 
require('admin/fonctions.php');
	  if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
	  if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
	  $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
      $data = mysql_fetch_array($req); 
	  mysql_free_result($req); 
      mysql_close(); 
	  if ($data[0] == 1) { 
      session_start(); 
      $_SESSION['login'] = $_POST['login']; 
      header('Location: connexion2.php'); 
      exit();
      } 
	  elseif ($data[0] == 0) { 
      $erreur = 'Votre Login ou mot de passe sont incorrect'; 
      } 
      else { 
      $erreur = 'Probème dans la base de données, veuilliez reesayer dans quelques minutes!'; 
      } 
      } 
      else { 
      $erreur = 'Un champs est vide.'; 
      }  
      }  
	  		if(isset($erreur)) { echo "$erreur"; }
?>


Quelqu'un saurait t'il m'aider?

Merci d'avance !
Édité le 04/02/2012 à 03:01:12 par Th30
Publicité # Posté le 04/02/2012 à 03:00:07

Hors ligne Kovacou' # Posté le 04/02/2012 à 03:28:17
** Tortoise POWER **
Avatar

Ville : Lorgues
Pays : France métropolitaine
Études : IUT Nice

Un simple SELECT `login` au lieu du COUNT(*).

Kovacou'

Image utilisateur

[PHP] SimplePHP : FrameWork en développement !
[PHP] www.kovacou.fr passe en WebOs !
[Etude] Université Sophia-Antipolis: DUT Informatique.

 
Connecté kets14 # Posté le 04/02/2012 à 03:47:55
Avatar

a 3h50 je suis un peu fatigué (mon cerveau tourne aux ralenti)
corrige moi si j'ai mal compris ton probleme si un user a le pseudo Machin tu ne veut pas qu'il puisse se connecter si il tape machin sans le M en majuscule
@--edit
desolé la fatique ma empécher de voir ton erreur
Citation
$_SESSION['login'] = $_POST['login'];

plutot que d'attribuer la valeur de $_POST['login'] a $_SESSION['login'] est ce qu'il ne serait pas plus logique de lui affecté les valeur du resultat de ta requete pour la colonne login de cette manière $_SESSION['login'] aurait la même case que login dans ta base
exemple
Code : PHP
1
$_SESSION['login'] = $resultat_requete['login'];
Édité le 04/02/2012 à 04:02:50 par kets14

Une personne qui n'a jamais commis d'erreurs n'a jamais tenté d'innover
 
Hors ligne Th30 # Posté le 04/02/2012 à 08:25:20
Il n'y a rien écrit ici
Avatar

Non rien ne marche :( J'ai fais sa comme requete:

Code : PHP
1
2
$log = mysql_query("SELECT * FROM membre WHERE login=".$_POST['login']."");
      $log2 = mysql_fetch_array($log);


Mais a la connexion sa m'affiche cette erreur:
Code : Console
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/habbadge/domains/habbadge.org/public_html/admin/connexion/connexion.php on line 11


Sachant que la ligne 11 est celle ci:

Code : PHP
1
$log2 = mysql_fetch_array($log);
Édité le 04/02/2012 à 09:01:38 par Th30
Hors ligne Fecal-Matter # Posté le 04/02/2012 à 10:27:55
Oh My God !
Avatar

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Quand tu as une erreur sur une ligne qui indiques mysql_fetch_array(), c'est la requête précédente qui merde.

$log = mysql_query("SELECT * FROM membre WHERE login=".$_POST['login']."");

Et la sécurité est où ?
Essaye cette requête:
$log = mysql_query("SELECT * FROM membre WHERE login='".mysql_real_escape_string($_POST['login'])."'") or die(mysql_error());

Si ça t'affiche un message, dis le ici.
Édité le 04/02/2012 à 10:28:57 par Fecal-Matter
Hors ligne bendem # Posté le 04/02/2012 à 10:39:22
Avatar

Code : SQL
1
"SELECT * FROM membre WHERE login=".$_POST['login']


sinon, ton erreur est due au quote manquante de ta condition : c'est mieux avec ceci

Code : SQL
1
"SELECT * FROM membre WHERE login='".$_POST['login']."'"


et encore mieux comme l'a dit Fecal-Matter

Image utilisateur
 
Hors ligne Th30 # Posté le 04/02/2012 à 21:51:03
Il n'y a rien écrit ici
Avatar

OWWWWWWI merci Fecal-Matter ça marche parfaitement, en plus tu ajoutes la sécurité en bonus :D

Merci merci merci beaucouuuuuuuup
Hors ligne Kovacou' # Posté le 05/02/2012 à 00:30:41
** Tortoise POWER **
Avatar

Ville : Lorgues
Pays : France métropolitaine
Études : IUT Nice

A en juger par le nom de la variable tu as fait une deuxième requête ? (Useless surtout !)
Mon premier message était pourtant clair. Juste une correction à effectué dans la suite du traitement et le tour était joué.

Kovacou'

Image utilisateur

[PHP] SimplePHP : FrameWork en développement !
[PHP] www.kovacou.fr passe en WebOs !
[Etude] Université Sophia-Antipolis: DUT Informatique.

 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx