aide pour Script de Modification de données d'un base avec formulaire

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 18:51

Et s'il y avait 2 logins identiques...?

L'id étant unique, tu es sûr qu'un seul membre le possède contrairement à l'ID.
le script d'inscription verifie a chaque fois qu'il y a pas deja un login dans la table a chaque inscription. donc impossible d'avoir 2 meme login.
$accesslevel = stripslashes($data['accessLevel']);
ne sert à rien, tu ne l'utilises nulle part.

Regardes la fonction que je t'ai indiqué plus haut pour te protéger des injections.
c'es fait et corrigé
$accesslevel = mysql_real_escape_string($data['accessLevel']);

c'es la partie 3 qui posse probleme je pense le update ce ce fait pas

voila le scrypt
<?php

//scrypt By  D Akira , D Boulon..
// tout droits rerservés
 

include("config/config.php");

// On protège la variable "login" pour éviter une faille SQL
$_POST['login'] = mysql_real_escape_string($_POST['login']);

// C'est une modification, on met juste à jour l'accessLevel

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'");

echo $result;

mysql_close();

?>
j'ai un echo $result

il me met un le chiffre 1 a la fin mais le update ne ce fait pas

merci encore de votre aide

Cordialemnt Boulon
Modifié en dernier par boulon le 29 oct. 2008, 19:11, modifié 1 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 oct. 2008, 19:06

Fait bien attention aux différents noms que tu donnes.
// On protège la variable "login" pour éviter une faille SQL 
$_POST['login'] = mysql_real_escape_string($_POST['login']); 

// C'est une modification, on met juste à jour l'accessLevel 

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'");
Où est déclaré $login ?

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 19:39

a que parti j'ai donné un different nom
Modifié en dernier par boulon le 29 oct. 2008, 19:45, modifié 2 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 oct. 2008, 19:42

a que parti j'ai donné un different oau niveau du login.
et...? ça ne répond pas à la question

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 19:52

je suis in peu perdu si tu voi ou sai di le moi sil te play. merci


dit moi je voudrai inclure la (partie 2) mais vue que tout est relié et que je dois passer par la (partie 1) pour la partie 2 , son lien es comme ca

accounts_modif.php?login='. $data['login'].'

pour l'inclure il faudrai que je le met comme ca
?page=accounts_modif?login='. $data['login'].'
et dans mon fichier qui gere tous le fichier include j'ai ca
<?

@$page = $_GET['page'];

include("Scripts/module/admin/accounts.php");

if(isset($page))
{

	switch("$page")
		{
//Menu
		case "accounts":include ("Scripts/module/admin/accounts.php");break;
		case "accounts_modif?login='. $data['login'].'"include("Scripts/module/admin/accounts_modif.php");break;
default:
		include ("home.php");break;
		}
}
else 
	{
	include("home.php");
	}

?>

erreur le pobleme vue que ca '. $data['login'].' c'es allatoire il ne ce calle pas dessu donc a chaque fois il cherche pas page mais en vin
Modifié en dernier par boulon le 29 oct. 2008, 20:04, modifié 2 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 oct. 2008, 20:00

Houlàlà où vas-tu comme ça. Chaque chose en son temps, tu n'as même pas réglé ton premier souci que tu t'attaques déjà à autre chose. Le 2d "case" de ton switch est totalement faux en passant.

Déjà répond aux différentes questions. Dans ton code
// On protège la variable "login" pour éviter une faille SQL  
$_POST['login'] = mysql_real_escape_string($_POST['login']);  

// C'est une modification, on met juste à jour l'accessLevel  

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'");
où as-tu déclaré le $login que tu utilises ?

PS : fait un petit effort lorsque tu écris, pas facile à te comprendre

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 20:05

oui j'ai declaré ca comme ca revoila le code

premiere methode
<?php

//scrypt By  D Akira , D Boulon..
// tout droits rerservés
 

include("config/config.php");

$login = $_GET['login'];
$accessLevel = $_POST['accessLevel'];

// On protège la variable "login" pour éviter une faille SQL
$_GET['login'] = mysql_real_escape_string($_GET['login']);

// C'est une modification, on met juste à jour l'accessLevel

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'"); 
echo $login;
echo $result;
echo $accessLevel;

mysql_close();

?>

2eme methode

<?php

//scrypt By  D Akira , D Boulon..
// tout droits rerservés
 

include("config/config.php");

$login = $_POST['login'];
$accessLevel = $_POST['accessLevel'];

// On protège la variable "login" pour éviter une faille SQL
$_POST['login'] = mysql_real_escape_string($_POST['login']);

// C'est une modification, on met juste à jour l'accessLevel

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'"); 
echo $login;
echo $accessLevel;

mysql_close();

?>
on a le echo $login; qui affiche le login et le echo $accessLevel; qui affiche le accessLevel mais dans la table de la BDD rien n'a changé
Modifié en dernier par boulon le 29 oct. 2008, 20:26, modifié 2 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 oct. 2008, 20:22

Dans ta 2d méthode, tu déclares une première fois $login
$login = $_GET['login'];
et en bas tu fais
$_GET['login'] = mysql_real_escape_string($_GET['login']);
ce n'est pas très logique.

Pourquoi ne pas faire simplement
$login=mysql_real_escape_string($_GET['login']);
?

Le code corrigé
<?php 
//scrypt By  D Akira , D Boulon.. 
// tout droits rerservés 
  
include("config/config.php"); 

 = $_POST['login']; 
$accessLevel = $_POST['accessLevel']; 

// On protège la variable "login" pour éviter une faille SQL 
$login = mysql_real_escape_string($_POST['login']); 
$accessLevel = mysql_real_escape_string($_POST['accessLevel']);

// C'est une modification, on met juste à jour l'accessLevel 

$result = mysql_query("UPDATE accounts SET accessLevel='$accessLevel' WHERE login='$login'");  
echo $login; 
echo $accessLevel; 

mysql_close(); 
?>
Si ça ne marche toujours pas, teste directement ta requête sous phpmyadmin pour voir si la requête fonctionne correctement.

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 20:32

la 2eme methode marche tres bien.. merci de ton aide

il me reste que cette

je suis in peu perdu si tu vois

dit moi je voudrai inclure la (partie 2) mais vue que tout est relié et que je dois passer par la (partie 1) pour la partie 2 , son lien es comme ca

accounts_modif.php?login='. $data['login'].'

pour l'inclure il faudrai que je le met comme ca
?page=accounts_modif?login='. $data['login'].'

et dans mon fichier qui gere tous le fichier include j'ai ca

<?

@$page = $_GET['page']; 

if(isset($page)) 
{ 

    switch("$page") 
        { 
//Menu 
        case "accounts":include ("Scripts/module/admin/accounts.php");break; 
        case "accounts_modif?login='. $data['login'].'"include("Scripts/module/admin/accounts_modif.php");break; 
default: 
        include ("home.php");break; 
        } 
} 
else  
    { 
    include("home.php"); 
    } 

?>

erreur le pobleme est que ca '. $data['login'].' c'es alleatoire il ne ce calle pas dessu donc a chaque fois il cherche le page mais en vin.. page non trouver
Modifié en dernier par boulon le 29 oct. 2008, 21:26, modifié 1 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 oct. 2008, 20:43

Je ne comprend pas du tout comment fonctionne ta logique. C'est quoi "page" et à quoi sert ce switch ??

Eléphanteau du PHP | 25 Messages

29 oct. 2008, 21:08

en faite je t'explique

j'ai mon index.php il y a tout le contenu du design et vien ensuite la partie core du site ou vont etre afficher tout le contenu, ma login a fait que au lieu de recopier le design a toute les page je fai des apel d'include des contenue qui viens ce grefet a l'index comme ca l'index ne pouge pas il y juste le contenu des pages qui change

par exemple

j'ai l'index.php en suite je veux faire aparaitre boulon.php ?pk metre le design de l'index sur boulon.php..

dans mon lien je met ca ?page=boulon

et dan lotre ficher lui il gere tous les include de page qui vont etre mis en contenu

je met ceuci
case "boulon":include (" (le chemin du fichier boulon )Scripts/module/admin/boulon.php");break;
et lui il sais ke lindex a besoin de boulon et va le chercher et boulon apai dans l'index et utilise son son desingn

je ne sais pas si j'ai reussi a me faire comprendre

Avatar du membre
ViPHP
ViPHP | 3008 Messages

30 oct. 2008, 09:52

J'ai un peu de mal, si ce n'est dire beaucoup, avec tes explications.

En fait je ne vois aucun rapport avec une connexion membre et tes includes...or apparemment tu essaies de mettre le login dans le switch. Que tentes-tu de faire à ce niveau ?

Une fois la personne connectée c'est du tout bon, pourquoi passes-tu encore le login en paramètre url ? Utilises une session pour garder le login en mémoire si besoin est.

Eléphanteau du PHP | 25 Messages

30 oct. 2008, 19:06

merci de ton aide en plus ma derniers question n'a rien avoir avec ce topic

grace a toi j'ai fait ce que j'avais en tete.... sur ce script

cordialement Boulon