Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2007, 16h11   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 2
Points : 1
Points : 1
Par défaut Script de protection db_protect V1.2

Salut à tous,

Je voulais créer un petit centre de téléchargement avec juste une page de login, une page "accueil" (qui affiche telle ou telle informations selon si on est admin ou user) et une page "admin" qui permet d'ajouter des utilisateurs et enfin une page "admin_file" pour gérer l'ajout de fichier.

Je suis partit sur la base d'un script télécharger sur http://www.phpscripts-fr.net

qui s'appelle db protect v1.2
Cliquez ici pour download le script !!

J'ai donc modifier le script surtout au niveau mise en page. Mon problème est que le script est buggé d'origine (et je n'ai pas réussit a joindre l'auteur par mail). En fait lorsqu'on est loggé en tant qu'admin et que l'on veut ajouter un utilisateur (page "admin.php") lorsqu'on clique sur le bouton ajouter les info contenues dans les champs s'insèrent bien dans la bdd mais on est renvoyé vers l'index en étant déconnecté. Normalement il y a une redirection vers la meme page ("admin.php?add=ok") mais cela ne fonctionne pas et je n'arrive pas a comprendre pourquoi

Voici le fichier en question :
Code :
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
<?php require_once('connexion.php'); ?>
<?php
/*
-----------------------------------
------ SCRIPT DE PROTECTION -------
          DBProtect V1.2
-----------------------------------
*/
 
session_start(); // On relaye la session
if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){ // vérification sur la session authentification (la session est elle enregistrée ?)
// On vérifie également si la session ouverte est bien une session admin et on place ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<?php 
// ------ AJOUT D'UN UTILISATEUR --------
if(isset($_POST['login'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
	if(($_POST['login'] == "") || ($_POST['pass'] == "")){ // si login ou mot de passe non spécifiés >> message d'erreur
		header("Location:admin.php?erreur=empty");
	}
	else if($_POST['pass'] == $_POST['pass2']){ // on vérifie si le mot de passe et le mot de passe confirmé ont la même valeur
		// on passe toutes les variables $POST en variables
		$login = $_POST['login'];
		$pass = md5($_POST['pass']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)
		$nom = $_POST['nom'];
		$prenom = $_POST['prenom'];
		$privilege = $_POST['privilege'];
		// on fait l'INSERT dans la base de données
		$add_user = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')");
  		mysql_select_db($database_dbprotect, $dbprotect);
  		$result = mysql_query($add_user, $dbprotect) or die(mysql_error());
		header("Location:admin.php?add=ok"); // redirection si création réussie
	}
	else{
		header("Location:admin.php?erreur=pass"); // redirection si le pass1 est différent du pass2
	}
}
 
// ------ SUPPRESSION D'UN UTILISATEUR --------
// on fait la requête sur tous les utilisateurs de la base pour alimenter notre sélecteur (on fait un tri par nom)
mysql_select_db($database_dbprotect, $dbprotect);
$query_users = "SELECT * FROM utilisateurs ORDER BY nom ASC"; // ORDER BY renvoi les données triées (ici par nom croissant)
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
 
if(isset($_POST['suppr']) && ($_POST['suppr'] != "1")){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
	$id = $_POST['suppr'];
    $delete_user = sprintf("DELETE FROM utilisateurs WHERE id_user='$id'");
 
  mysql_select_db($database_dbprotect, $dbprotect);
  $result = mysql_query($delete_user, $dbprotect) or die(mysql_error());
  header("Location:admin.php?delete=ok"); // url qui servira pour afficher le message de réussite
}
?>
<html>
<head>
<title>ADMINISTRATION - DBProtect</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<form action="" method="post" name="add">
 <div class="titre">- : : : ESPACE ADMINISTRATION : : : -</div> 
 <p align="center">
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "pass")) { // Affiche l'erreur  
	?>
    <span class="erreur">Veuillez entrer deux fois votre mot de passe SVP</span>
    <?php } ?>
    <?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur 
	?>
    <span class="reussite">L'utilisateur a &eacute;t&eacute; cr&eacute;&eacute; avec succ&egrave;s !</span>
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "empty")) { // Affiche l'erreur  
	?>
    <span class="erreur">Un petit oubli non ? Veuillez renseigner au moins un login et un mot de passe SVP</span>
    <?php } ?>
</p>
  <p align="center"><strong><u>Cr&eacute;er un utilisateur</u></strong></p>
  <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
    <tr>
      <td width="40">Login</td>
      <td width="144"><input name="login" type="text" id="login"></td>
    </tr>
    <tr>
      <td>Mot de passe </td>
      <td><input name="pass" type="password" id="pass"></td>
    </tr>
    <tr>
      <td>R&eacute;p&eacute;ter mot de passe </td>
      <td><input name="pass2" type="password" id="pass2"></td>
    </tr>
    <tr>
      <td>NOM</td>
      <td><input name="nom" type="text" id="nom"></td>
    </tr>
    <tr>
      <td>Pr&eacute;nom</td>
      <td><input name="prenom" type="text" id="prenom"></td>
    </tr>
    <tr>
      <td>Privil&egrave;ge</td>
      <td><select name="privilege" id="privilege">
          <option value="user">Utilisateur</option>
          <option value="admin">Administrateur</option>
        </select></td>
    </tr>
    <tr>
      <td height="50" colspan="2"><div align="center">
          <input type="submit" name="Submit" value="Cr&eacute;er cet utilisateur">
        </div></td>
    </tr>
  </table>
</form>
<p align="center"><strong>
  <?php 
if(isset($_GET['delete']) && ($_GET['delete'] == "ok")) { // Affiche l'erreur  
?>
  <span class="reussite">L'utilisateur a &eacute;t&eacute; supprim&eacute; avec succ&egrave;s</span>
  <?php } ?>
  <?php 
if(isset($_POST['verif']) && (!isset($_POST['suppr']))) { // Affiche l'erreur  
?>
</strong><span class="erreur">Veuillez s&eacute;lectionner un utilisateur &agrave; supprimer </span><strong>
<?php } ?>
<?php 
if(isset($_POST['suppr']) && ($_POST['suppr'] == "1")) { // Affiche l'erreur  
?>
</strong><span class="erreur">Vous ne pouvez pas supprimer l'utilisateur par d&eacute;faut toto.<br>
Pour tester la fonction de supression, ajoutez un utilisateur.<br>
Pour s&eacute;curiser votre script, il est fortement recommand&eacute; de le supprimer manuellement dans votre BDD ... </span><strong>
<?php } ?></strong></p>
<form action="" method="post" name="suppr">
  <p align="center"><strong><u>Supprimer un utilisateur</u></strong></p>
  <div align="center">
    <table width="500" border="0" cellpadding="5" cellspacing="0" class="tableaux">
      <tr>
        <td width="240"><div align="center">
            <select name="suppr" size="5" id="select2">
              <?php
	do {  
?>
              <option value="<?php echo $row_users['id_user']?>">
              <?php if($row_users['privilege']== "admin") echo ">> "; echo $row_users['nom']." ".$row_users['prenom']." (".$row_users['login'].")"; if($row_users['privilege']== "admin") echo " <<"?>
              </option>
              <?php
	} while ($row_users = mysql_fetch_assoc($users));
 		$rows = mysql_num_rows($users);
  		if($rows > 0) {
      		mysql_data_seek($users, 0);
	  		$row_users = mysql_fetch_assoc($users);
		}
?>
            </select>
            <input name="verif" type="hidden" id="verif">
        </div></td>
        <td width="157"><input type="submit" name="Submit2" value="Supprimer cet utilisateur"></td>
      </tr>
    </table>
    <p><a href="accueil.php"><strong>&lt; Retour accueil</strong></a></p>
  </div>
</form>
</body>
</html>
En ce qui concerne la suppression d'utilisateur, cela fonctionne très bien, c'est juste le formulaire ou la fonction pour ajouter un utilisateur qui bug et que je n'arrive pas à comprendre.

Si quelqu'un peu m'aider je lui en serait très reconnaissant
bial77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 12h08   #2
Invité de passage
 
Inscription : octobre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 2
Points : 1
Points : 1
Bon bah a force d'acharnement je suis arrivé a le debuguer . En fait j'ai contourner le probleme d'affichage du message ("utilisateur ajouté avec succes" qui n'aparaissait pas vu qu'on était renvoyé vers l'index en étant déco) en changeant l'action lorsqu'on ajout l'utilisateur.

Voici le bout de code a modifier si ce script vous interesse :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//
// ------ AJOUT D'UN UTILISATEUR --------
//
if(isset($_POST['login'])){ 
	if(($_POST['login'] == "") || ($_POST['pass'] == "")){ 
		header("Location:admin.php?erreur=empty");
	}
	else if($_POST['pass'] == $_POST['pass2']){ 
		$login = $_POST['login'];
		$pass = md5($_POST['pass']);
		$nom = $_POST['nom'];
		$prenom = $_POST['prenom'];
		$privilege = $_POST['privilege'];
		$add_user = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')");
  		mysql_select_db($database_dbprotect, $dbprotect);
  		$result = mysql_query($add_user, $dbprotect) or die(mysql_error());
		header("Location:ajout_util_ok.php"); //partie modifiée (necessite la creation d'une page supplémentaire (ajout_util_ok.php) avec le message que vous voulez + des bt pour revenir sur telle ou telle page
	}
	else{
		header("Location:admin.php?erreur=pass");
	}
}
Je conseille a tout le monde ce petit script surtout a ceux qui comme moi débutent en php car il est très simple a comprendre et surtout votre design est très facile a intégrer.

Je posterais d'ici peu une version modifiée de ce script avec la possibilité de gérer des groupes d'utilisateurs et un espace de téléchargement (avec possibilité d'assigner tel ou tel type de fichier a un groupe d'utilisateur)
bial77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h31.


 
 
 
 
Partenaires

Hébergement Web