IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

projet en php/mysql


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Par défaut projet en php/mysql
    Bonjour,

    je suis nouvelle en php et egalement sur ce site je viens de m'y inscrire d'ailleurs

    bon je travaille actuellement sur un site marchand que je suis censee deposer dans 10 jours je suis plantee au niveau panier et malhereusement je "collabore" avec un ingenieur qui ne s'y connait pas du tout et developpe d'une maniere un peu "bizzare" ,voila la deadline approche et nous avons toujours pas implemente ni l'authentification ni le panier s'il ya qqn parmi vous qui pourra me guider dans la realisation de ces deux etapes j'en serai vraiment reconnaissante .
    je suis ouverte a toute proposition a voir meme des cours sur ligne que je connais pas ou des codes existants que je pourrai adapter a mes besoins.....
    sans oublier la contrainte de temps que jai

    merci d"avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Par défaut
    Bonsoir,

    Voila ci dessous le script d'un espace protégé que j'utilise, mais un peut simple pour un site marchand avec je pense du paiement par carte et autre, mais bon cela peut te donner au moins le départ pour l'espace d'enregistrement des membres avec une sécurisation par base de donnée dans l'exemple ci dessous (éventuellement essai de modifier les variable qui sont données pour plus de sécurité). et si tu arrives a bien analyser le code pour le mot de passe rajoute la fonction md5() au minimum par contre la dessus il te faut encore le formulaire d'enregistrement des clients et la gestion. Je ne veux pas être pessimiste, mais le délais de 10 jour me semble court pour tout programmer et tout tester car la il te faut encore faire la liaison entre les identifiant et le panier. Si tu as besoin de conseil par rapport à mon code tu peut me joindre en postant ici j'active le suivi.


    voila un script tout fait pour faire une sécurisation assez optimum des page web via une connexion qui est sécurisé par la base de donnée.

    à la racine du site ou autre position il faudra simplement faire pointer sur ce fichier la page qui contient le formulaire de connexion (c'est d'ailleur ce que je conseille il faut juste être vigilant sur les liens)
    et il devra contenir le fichier qui reçois les données et qui dans mon script s'appel "totor.php"

    Connexions

    fichier totor.php
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_totor = "00.000.00.00";///ip ou adresse serveur MySQL qui contient votre base de donnée
    $database_totor = "nombasedonnées";/// nom de la base de donnée
    $username_totor = "loginbase";////login de connexion à la base de données
    $password_totor = "passebase";////mot de passe de connexion à la base de données
    $totor = mysql_pconnect($hostname_totor, $username_totor, $password_totor) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
     
     
     
    page qui contient le formulaire de connexion
     
    code:
    <?php require_once('Connexions/totor.php');/// créer un fichier avec les variable d'accès à la base de donnée ?>
    <?php
    // *** ouverture de la session
    session_start();
     
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($accesscheck)) {
      $GLOBALS['PrevUrl'] = $accesscheck;
      session_register('PrevUrl');
    }
     
    if (isset($_POST['user'])) {
      $loginUsername=$_POST['user'];
      $password=$_POST['passe'];
      $MM_fldUserAuthorization = "droit";//// nom du champ de la table qui donne les niveau d'accès si pas de doit suprimer simplement la valeur entre les "" et les laisser vide $MM_fldUserAuthorization = " "
      $MM_redirectLoginSuccess = "page.php";//// page de destination si la connexion est validée
      $MM_redirectLoginFailed = "conexion.php";///// page de destination si la connexion echout (dans notre cas elle même) mais cela peut être un fichier avec un message il suffit de remplacer le lien.
      $MM_redirecttoReferrer = true;
      mysql_select_db($database_totor, $totor); //// seclection de la table utilisateur suivant les données reprise dans le fichier connection de la première ligne
     
      $LoginRS__query=sprintf("SELECT champ_login, champ_passe, champ_droit FROM nom_de_la_table WHERE login='%s' AND passe='%s'", /// ligne qui faut modifier pour la requette MySQL sur la table
      get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
     
      $LoginRS = mysql_query($LoginRS__query, $totor) or die(mysql_error());//// seclection de la table utilisateur suivant les données
      $loginFoundUser = mysql_num_rows($LoginRS);
      if ($loginFoundUser) {
     
        $loginStrGroup  = mysql_result($LoginRS,0,'droit');
     
        //déclaration et assignation des variables de sessions
        $GLOBALS['MM_Username'] = $loginUsername;
        $GLOBALS['MM_UserGroup'] = $loginStrGroup;        
     
        //register les variable de sessions
        session_register("MM_Username");
        session_register("MM_UserGroup");
            $_SESSION["MM_Username"] = $loginUsername;
            $_SESSION["MM_UserGroup"] =  $loginStrGroup;
     
        if (isset($_SESSION['PrevUrl']) && true) {
          $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
        }
        header("Location: " . $MM_redirectLoginSuccess ); /// redirection si OK
      }
      else {
        header("Location: ". $MM_redirectLoginFailed ); //// redirection si pas OK
      }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <p>Ecran de connexion</p>
    <form name="form1" id="form1" method="POST" action="<?php echo $loginFormAction; ?>">
      Votre user : 
      <input name="user" type="text" id="user" size="20" />
      <br/><br/>
       Votre user : 
      <input name="passe" type="password" id="passe" size="20" />
      <br/><br/>
      <input type="submit" name="Submit" value="connexion" />
     
    </form>
    <p>&nbsp;</p>
    </body>
    </html>
     
     
    et enfin pour finir la page de reception qui est protégée par mot de passe et par niveau d'utilisateur (ce qui donne plus de possibilité pour éventuellement ce faire une partie admin)
     
    la page.php contient le code qu'il faut mettre sur chaque page que l'on veut protéger (toute la partie en php qui est avant la balise <!DOCTYPE
     
    code:
    <?php
    session_start(); //// demarage de la session
    $MM_authorizedUsers = "admin";//// valeures des niveau d'accès si plusieur mettre $MM_authorizedUsers = "admin,util,toto";
    $MM_donotCheckaccess = "false";
     
    // *** Restrict Access To Page: Grant or deny access to this page
    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
      // For security, start by assuming the visitor is NOT authorized. 
      $isValid = False; 
     
      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
      // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
      if (!empty($UserName)) { 
        // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
        // Parse the strings into arrays. 
        $arrUsers = Explode(",", $strUsers); 
        $arrGroups = Explode(",", $strGroups); 
        if (in_array($UserName, $arrUsers)) { 
          $isValid = true; 
        } 
        // Or, you may restrict access to only certain users based on their username. 
        if (in_array($UserGroup, $arrGroups)) { 
          $isValid = true; 
        } 
        if (($strUsers == "") && false) { 
          $isValid = true; 
        } 
      } 
      return $isValid; 
    }
     
    $MM_restrictGoTo = "conexion.php";//// par de renvoie si l'accès à la page n'a pas été fait depuis l'ecran de connexion et validé par la table USER
    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
      $MM_qsChar = "?";
      $MM_referrer = $_SERVER['PHP_SELF'];
      if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
      if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
      $MM_referrer .= "?" . $QUERY_STRING;
      $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
      header("Location: ". $MM_restrictGoTo); 
      exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    voila une page protéger par variable de session et niveau d'accès
    </body>
    </html>
     
     
    Pour que le code tel qu'il est ci-dessus fonctionne avec des droits il faut 4 champ minimum dans la table des user " id_user", "user_name", "user_passe", "user_droit".
    Attention ce ne sont que des exemples de nom pour les champs mais ils peuvent avoir ceux que vous voulez il faut simplement adapter la page du formulaire suivant ceux-ci à votre cas, voir les notes dans les script. Et les codes que je vous donnes ci-dessus fonctionne telquel avec adaptation pour un site qui travail en "_blank" et "_self",
    si vous travaillez avec des includes cela est tout a fait possible je l'ai fait mais cela nécessite d'importante modification et il ne faut pas forcément les codes complet sur chaque page.
     
    Voila si ce petit bout de code peut rendre service servez-vous il est testé sur "Infomaniac" "amen" "tiscali en perso" "free en hébergement perso" (il faut juste pensé à créer un répertoire "sessions"....
     
    Voila je pense que vous avez de quoi vous amuser.
     
    complement une page de deconexion pour detruire toutes les variables de session, il suffit dans chaque page de faire un lien vers cette page pour fermer la session et detruire les variable de session dans leurs globalitée.
    fermeture_session.php
     
    code:
    <?php
    // On démarre la session
    session_start ();
     
    // On détruit les variables de notre session
    session_unset ();
     
    // On détruit notre session
    session_destroy ();
     
    // On redirige le visiteur vers la page d'accueil
    header ('location: page_de_retour.php');//// mettre le lien vers la page de retour
    ?>
     
    et bonus, si vous avez des variable de session à promener sur votre site il suffit de les rajouter dans votre fichier totor.php saprès la dernière ligne et de les faire reprendre
    dans le formulaire de connexion pour que celles-ci ne soient mise session que si la connexion a été validé suivant le principe ci-dessous:
    dans le totor.php
    code sous la dernière ligne avent fermeture du php:
     
     
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_totor = "00.000.00.00";///ip ou adresse serveur MySQL qui contient votre base de donnée
    $database_totor = "nombasedonnées";/// nom de la base de donnée
    $username_totor = "loginbase";////login de connexion à la base de données
    $password_totor = "passebase";////mot de passe de connexion à la base de données
    $totor = mysql_pconnect($hostname_totor, $username_totor, $password_totor) or trigger_error(mysql_error(),E_USER_ERROR); 
    $propre_table_user="non";
    $chemin_script="xxxxxxxxxxxxx";
    $table_user="yyyyyyyy";
    ?>
     
     
    et dans la page du formulaire de connexion ce rajout:
     
    if (isset($_POST['login'])) {
      $loginUsername=$_POST['login'];
      $password=$_POST['passe'];
      $session_script=$chemin_script;
      $session_table_user=$table_user;
    //////////////////////////////////
    //////////////////////////////////
    //declare two session variables and assign them
        $GLOBALS['MM_Username'] = $loginUsername;
        $GLOBALS['MM_UserGroup'] = $loginStrGroup;
            $GLOBALS['MM_session_script'] = $session_script;
            $GLOBALS['MM_session_table_user'] = $session_table_user;
     
     
        //register the session variables
        session_register("MM_Username");
        session_register("MM_UserGroup");
            session_register("MM_session_script");
            session_register("MM_session_table_user");
     
     
     
            $_SESSION["MM_Username"] = $loginUsername;
            $_SESSION["MM_UserGroup"] =  $loginStrGroup;
            $_SESSION["MM_session_script"] =  $session_script;
            $_SESSION["MM_session_table_user"] =  $session_table_user;
    et cela n'est qu'un exemple, vous pouvez en mettre autant que vous voulez.....

    Voila maintenant je pense que je suis complet c'est vraiment à vous de jouer.....

    Pour voir un exemple qui est fait sur ce principe (mais avec des includes) <lien>http://www.ggcsauer-moder.net</lien>

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Par défaut
    c'est tres gentil a toi "c'etait rapide quand meme"
    je veillerai un peu cette nuit pour essayer ce code et je te dirai demain ce qu'il en ai.
    et en + tu n'es pas vraiment pessimiste car moi non plus je ne sais comment remedier a cette contrainte de temps .

    merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CDD/CDI] Chef de projet/Développeur PHP/Mysql
    Par eh!man dans le forum Demandes
    Réponses: 0
    Dernier message: 07/10/2009, 09h58
  2. Réponses: 0
    Dernier message: 18/08/2009, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo