Aide pour un systéme de connexion en PHP [Résolu]

Messages postés
21
Date d'inscription
jeudi 19 avril 2018
Dernière intervention
16 août 2018
- 19 avril 2018 à 23:14 - Dernière réponse :
Messages postés
21
Date d'inscription
jeudi 19 avril 2018
Dernière intervention
16 août 2018
- 20 avril 2018 à 22:07
Bonjour, je suis débutant en php. J'ai besoin de vous pour améliorer un code en php. Voilà, je m'explique, je voudrais ajoutait à ce code que qund on s'inscrit, en plus de du registerKey, user et password je voudrais mail(Type : varchar) et mailvalue(Type : int). Quand on va s'inscrire, je veux qu'on entre son adresse mail(mail) et que sa le sauvegarde dans la table User dans la base de donnée(fonction register). Et mailvalue est juste un type int que je veux aussi enregistrer dans la table User de base à 0 quand on s'inscrit donc quand on utilise l'action register. Ne vous préoccuper pas de la fonction connect , rc4  mais préoccupé vous de la fonction register. 

Si vous n'avez rien compris site le moi est je vous expliquerait mieux.

Svp aidez moi !

Voici le code :

 

<?php

$sessionID = $_GET["sessionID"];
$actionget = $_GET["action"];
$user = $_GET["user"];
$password = $_GET["password"];
$registerkey = $_GET["registerkey"];

if (empty($sessionID)) die ("ERROR:INVALID_SESSION_ID");

$action = new action;
if ($actionget == "connect")
 $response =  $action->connect($user, $password);
elseif ($actionget == "register")
    $response = $action->register($user, $password, $registerkey);
else
 $response = "ERROR:NO_ACTION";

echo rc4($sessionID, $response);

class action
{
 public $bdd;
 
 public function action()
 {
  try { $this->bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u6****95_base', 'u67****_admin', '******'); }
  catch (Exception $ex) { die('ERROR:ERROR_BDD_CONNECTION'); }
 }
 
 public function connect($user, $pass)
 {
  if (!$this->userExist($user)) return ("ERROR:USER_NOT_FOUND");
  
  $data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array($user));
  if ($data['Password'] != $pass)
   return ("ERROR:INCORRECT_PASSWORD");
  elseif ($data['Banned'] == 1)
      return ("ERROR:USER_BANNED");
  Else
   Return ("OK:") . $data['Premium'];
 }
 
 public function register($user, $pass, $registerkey)
 {
  $data = $this->executeQuery("SELECT * FROM RegisterKeys WHERE RegisterKey = ?;", array($registerkey));
  if (empty($data['RegisterKey'])) return ("ERROR:INVALID_KEY");
  if (!empty($data['User'])) return ("ERROR:KEY_ALREADY_USED");
  if ($this->userExist($user)) return ("ERROR:USER_ALREADY_EXIST");
  
  $this->executeQuery("INSERT INTO Users VALUES ('', ?, ?, '0', '0', ?);", array($user, $pass, getTime()));
  $this->executeQuery("UPDATE RegisterKeys SET User = ? WHERE  RegisterKey = ?;", array($user, $registerkey));
  
  return ("OK:REGISTERED");
 }
 
 private function userExist($user)
 {
  $data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array($user));
  if (empty($data['User']))
   return (false);
  Else
   return (true);
 }
 
 private function executeQuery($query, $args, $fetch = true)
 {
  $response = $this->bdd->prepare($query);
  $response->execute($args);
  if ($fetch)
  {
   $data = $response->fetch();
   $response->closeCursor();
   return ($data);
  }
  else
   Return ($response);
 }
}

function rc4($key, $str) {
$s = array();
for ($i = 0; $i < 256; $i++) {
$s[$i] = $i;
}

$j = 0;

for ($i = 0; $i < 256; $i++) {
$j = ($j + $s[$i] + ord($key[$i % strlen($key)])) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
}

$i = 0;
$j = 0;
$res = '';

for ($y = 0; $y < strlen($str); $y++) {
$i = ($i + 1) % 256;
$j = ($j + $s[$i]) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
$res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
}

return $res;
}

function getTime()
{
 date_default_timezone_get('Europe/Paris');
 return date("Y-m-d h:i:s");
}

?>

Afficher la suite 

Votre réponse

4 réponses

Messages postés
23247
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 20 avril 2018 à 06:50
0
Merci
Bonjour
Oui..et ?
Qu'as tu essayé ? Sur Quoi bloques tu ?
Messages postés
21
Date d'inscription
jeudi 19 avril 2018
Dernière intervention
16 août 2018
- 20 avril 2018 à 10:44
Bonjour jordane45,

J'ai essayé beaucoup de chose mais je n'y arriver pas du tout.

Je bloque sur comment rajouter dans la fonction register(quand l'utilisateur s'inscrit), l'addres mail, sa ve dire que quand l'utilisateur s'inscrit il dois mettre son pseudo(user dans le code) et mot de passe(password dans le code) et je veut rajouter qu'il dois mettre aussi son adresse mail qui va étre enregistrer dans la base de donnée.

Code fonction register :
public function register($user, $pass, $registerkey)

 {

  $data = $this->executeQuery("SELECT * FROM RegisterKeys WHERE RegisterKey = ?;", array($registerkey));

  if (empty($data['RegisterKey'])) return ("ERROR:INVALID_KEY");

  if (!empty($data['User'])) return ("ERROR:KEY_ALREADY_USED");

  if ($this->userExist($user)) return ("ERROR:USER_ALREADY_EXIST");

   

  $this->executeQuery("INSERT INTO Users VALUES ('', ?, ?, '0', '0', ?);", array($user, $pass, getTime()));

  $this->executeQuery("UPDATE RegisterKeys SET User = ? WHERE  RegisterKey = ?;", array($user, $registerkey));

   

  return ("OK:REGISTERED");

 }



Tous le code :
<?php

$sessionID = $_GET["sessionID"];
$actionget = $_GET["action"];
$user = $_GET["user"];
$password = $_GET["password"];
$registerkey = $_GET["registerkey"];

if (empty($sessionID)) die ("ERROR:INVALID_SESSION_ID");

$action = new action;
if ($actionget == "connect")
 $response =  $action->connect($user, $password);
elseif ($actionget == "register")
    $response = $action->register($user, $password, $registerkey);
else
 $response = "ERROR:NO_ACTION";

echo rc4($sessionID, $response);

class action
{
 public $bdd;
 
 public function action()
 {
  try { $this->bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u6*****695_base', 'u6*****95_admin', '*******8'); }
  catch (Exception $ex) { die('ERROR:ERROR_BDD_CONNECTION'); }
 }
 
 public function connect($user, $pass)
 {
  if (!$this->userExist($user)) return ("ERROR:USER_NOT_FOUND");
  
  $data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array($user));
  if ($data['Password'] != $pass)
   return ("ERROR:INCORRECT_PASSWORD");
  elseif ($data['Banned'] == 1)
      return ("ERROR:USER_BANNED");
  Else
   Return ("OK:") . $data['Premium'];
 }
 
 public function register($user, $pass, $registerkey)
 {
  $data = $this->executeQuery("SELECT * FROM RegisterKeys WHERE RegisterKey = ?;", array($registerkey));
  if (empty($data['RegisterKey'])) return ("ERROR:INVALID_KEY");
  if (!empty($data['User'])) return ("ERROR:KEY_ALREADY_USED");
  if ($this->userExist($user)) return ("ERROR:USER_ALREADY_EXIST");
  
  $this->executeQuery("INSERT INTO Users VALUES ('', ?, ?, '0', '0', ?);", array($user, $pass, getTime()));
  $this->executeQuery("UPDATE RegisterKeys SET User = ? WHERE  RegisterKey = ?;", array($user, $registerkey));
  
  return ("OK:REGISTERED");
 }
 
 private function userExist($user)
 {
  $data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array($user));
  if (empty($data['User']))
   return (false);
  Else
   return (true);
 }
 
 private function executeQuery($query, $args, $fetch = true)
 {
  $response = $this->bdd->prepare($query);
  $response->execute($args);
  if ($fetch)
  {
   $data = $response->fetch();
   $response->closeCursor();
   return ($data);
  }
  else
   Return ($response);
 }
}

function rc4($key, $str) {
$s = array();
for ($i = 0; $i < 256; $i++) {
$s[$i] = $i;
}

$j = 0;

for ($i = 0; $i < 256; $i++) {
$j = ($j + $s[$i] + ord($key[$i % strlen($key)])) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
}

$i = 0;
$j = 0;
$res = '';

for ($y = 0; $y < strlen($str); $y++) {
$i = ($i + 1) % 256;
$j = ($j + $s[$i]) % 256;
$x = $s[$i];
$s[$i] = $s[$j];
$s[$j] = $x;
$res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
}

return $res;
}

function getTime()
{
 date_default_timezone_get('Europe/Paris');
 return date("Y-m-d h:i:s");
}

?>


Messages postés
23247
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 20 avril 2018 à 11:31
Il faut :
1 - Récupérer les variables venant de ton formulaire
2 - Les passer en paramètre de la fonction lors de son appel
3 - Les récupérer dans la fonction et les ajouter dans la requête d'insertion

NB: Pense à mettre tes class dans des fichiers à part au lieu de les mettre directement dans la même page....
Ca sera plus propre et au moins tu pourras les réutiliser ailleurs si besoin.
Messages postés
21
Date d'inscription
jeudi 19 avril 2018
Dernière intervention
16 août 2018
- 20 avril 2018 à 22:07
Merci jordne45, j'ai réussi !!
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.