Il y a actuellement 298 visiteurs
Vendredi 19 Avril 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Romalu

Ce membre n'a pas encore choisi d'avatar
Visiteur
Visiteur
Nom d'utilisateur:
Romalu
Groupes:

Contacter Romalu

Statistiques de l’utilisateur

Inscription:
22 Avr 2014 08:24
Dernière visite:
22 Avr 2014 08:35
Messages:
1 (0.00% de tous les messages / 0.00 messages par jour)
Forum le plus actif:
Forum Programmation, Web & Ftp
(1 Message / 100.00% des messages de l'utilisateur)
Sujet le plus actif:
Créer un espace membre, convertir mysql postgresql
(1 Message / 100.00% des messages de l'utilisateur)

Les derniers messages de Romalu

Message Créer un espace membre, convertir mysql postgresql
Bonjour à tous,

Dans le but de créer un site internet, je dois réaliser un espace membre.

Voilà notre table membre en SQL :

Code: Tout sélectionner
CREATE TABLE membre (
   id int(11) NOT NULL auto_increment,
   login text NOT NULL,
   pass_md5 text NOT NULL,
   PRIMARY KEY  (id)
) TYPE=MyISAM;



Pour l'inscription :
Code: Tout sélectionner
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
   // on teste les deux mots de passe
   if ($_POST['pass'] != $_POST['pass_confirm']) {
      $erreur = 'Les 2 mots de passe sont différents.';
   }
   else {
      $db = new PDO("pgsql:host='localhost';dbname='referentiel_competence22';port='5432'; user='l3mass22'; password=''");
  echo 'Connexion OK';

      // on recherche si ce login est déjà utilisé par un autre membre
      $sql = 'SELECT count(*) FROM PERSONNE WHERE login="'.pg_escape_string($_POST['login']).'"';
      $req = pg_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.pg_result_error());
      $data = pg_fetch_array($req);

      if ($data[0] == 0) {
      $sql = 'INSERT INTO PERSONNE VALUES("", "'.pg_escape_string($_POST['login']).'", "'.pg_escape_string(md5($_POST['pass'])).'")';
      pg_query($sql) or die('Erreur SQL !'.$sql.'<br />'.pg_result_error());

      session_start();
      $_SESSION['login'] = $_POST['login'];
      header('Location: membre.php');
      exit();
      }
      else {
      $erreur = 'Un membre possède déjà ce login.';
      }
   }
   }
   else {
   $erreur = 'Au moins un des champs est vide.';
   }
}
?>
<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>



Membre :

Code: Tout sélectionner
<?php
session_start();
if (!isset($_SESSION['login'])) {
   header ('Location: index.php');
   exit();
}
?>

<html>
<head>
<title>Espace membre</title>
</head>

<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>





Index :

Code: Tout sélectionner
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

   $db = new PDO("pgsql:host='localhost';dbname='referentiel_competence22';port='5432'; user='l3mass22'; password=''");
  echo 'Connexion OK';


   // on teste si une entrée de la base contient ce couple login / pass
   $sql = 'SELECT count(*) FROM PERSONNE WHERE login="'.pg_escape_string($_POST['login']).'" AND pass_md5="'.pg_escape_string(md5($_POST['pass'])).'"';
   $req = pg_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.pg_result_error());
   $data = pg_fetch_array($req);

   pg_free_result($req);
   pg_close();

   // si on obtient une réponse, alors l'utilisateur est un membre
   if ($data[0] == 1) {
      session_start();
      $_SESSION['login'] = $_POST['login'];
      header('Location: membre.php');
      exit();
   }
   // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
   elseif ($data[0] == 0) {
      $erreur = 'Compte non reconnu.';
   }
   // sinon, alors la, il y a un gros problème :)
   else {
      $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
   }
   }
   else {
   $erreur = 'Au moins un des champs est vide.';
   }
}
?>
<html>
<head>
<title>Accueil</title>
</head>

<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>


Deconnexion :

Code: Tout sélectionner
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>




Voilà c'est juste enorme, j'ai bcp de mal...Il faudrait convertir ça de mysql en postgre sql, ou alors le tester mais je peux pas
le faire chez moi.
Quelqu'un pourrait m'aider ?

Merci d'avane



.: Nous contacter :: Flux RSS :: Données personnelles :.