Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3032 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  requete SQL avec effacement du fichier concerné ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete SQL avec effacement du fichier concerné ?

n°1938430
fscalda
Gaaaaaazzzz
Posté le 06-11-2009 à 16:28:52  profilanswer
 

Hello,
 
après php, me revoilà avec SQL... je récupere mon ID, ce qui me permet de n'éffacer que le fichier voulu contenu de la table. Mais je ne sais pas effacé le fichier correspondant.
 

Code :
  1. $id = $_GET["id"];
  2. mysql_connect($dbhost,$dblogin,$dbpassword);
  3. mysql_selectdb($dbname);
  4. $result=mysql_query("DELETE FROM produits WHERE id='$id'" );
  5. mysql_close();
  6. ?>


 
Je bloque encore une fois ...

mood
Publicité
Posté le 06-11-2009 à 16:28:52  profilanswer
 

n°1938441
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-11-2009 à 16:49:50  profilanswer
 

il manque beaucoup d'infos pour pouvoir te répondre convenablement...  
Donc au pif je dirais avant de faire ton delete, fais un select, récupère le "chemin" de ton fichier, fais un suppression de celui-ci(unlink) puis ton delete.


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1938451
fscalda
Gaaaaaazzzz
Posté le 06-11-2009 à 17:03:51  profilanswer
 

oki, je vais regarder UNLINK, je ne connaissais pas, ma variable est $aFile .
 
Sinon, le chemin des images est fixe, donc déja, de ce côté, je suis tranquille.


Message édité par fscalda le 06-11-2009 à 17:04:31
n°1938473
NewsletTux
<Insérez ici votre vie />
Posté le 06-11-2009 à 18:06:10  profilanswer
 

teste bien le chemin du unlink ...
car si tu fais un unlink($dossier.$fichier) et que $fichier est vide, alors tu risques d'avoir des bugs ... (ou de vider le contenu d'un dossier p-ê)


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1938935
fscalda
Gaaaaaazzzz
Posté le 09-11-2009 à 12:18:38  profilanswer
 

Bon ben j'aurais tenter mais non, rien à faire, je comprends pas bien. Je vais relire et relite le tutaux mais j'ai du mal à l'adapter. Déja que j'arrive pas pour un fichier... alors j'image sur 7 ...
 

Code :
  1. $dbhost     = "xxxxxxx";
  2. $dblogin    = "xxxxxx";
  3. $dbpassword = "xxxxxx";
  4. $dbname     = "xxxxxxxxx";
  5. $id = $_GET["id"];
  6. mysql_connect($dbhost,$dblogin,$dbpassword);
  7. mysql_selectdb($dbname);
  8. //
  9. $chemin2= "../societe/"; //chemin pour acceder au dossier
  10. $chemin = "../societe/,$aFile,"; //chemin contenant le nom de fichier à supprimer.
  11. $ouverture= opendir("$chemin2" ); //on ouvre le dossier
  12. chmod ($chemin, 0777); //onpasse le fichier en niveau de sécu 777
  13. unlink($chemin); //on efface
  14. closedir($ouverture); //on ferme le dossier
  15. $suppression = "DELETE FROM societe WHERE id = $suppr";
  16. $suppr1 = mysql_query($suppression) or die(mysql_error());
  17. //
  18. mysql_close();
  19. ?>


Message édité par fscalda le 09-11-2009 à 12:18:53
n°1938965
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-11-2009 à 13:52:58  profilanswer
 

ton code est une passoire... tu n'envisages pas de le mettre en ligne, rassure moi ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1938979
stealth35
Posté le 09-11-2009 à 14:04:51  profilanswer
 

Harkonnen a écrit :

ton code est une passoire... tu n'envisages pas de le mettre en ligne, rassure moi ?


 
+1
 
PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO, PDO.
 
Ou autre juste prepare statment

n°1939082
fscalda
Gaaaaaazzzz
Posté le 09-11-2009 à 16:32:09  profilanswer
 

Il est situé dans une zone vérouillé par un htaccess. Bah, de toute façon, marche pas, je reprends tout depuis le début.

n°1939086
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-11-2009 à 16:45:21  profilanswer
 

fscalda a écrit :

Il est situé dans une zone vérouillé par un htaccess.


ça n'a rien à voir avec le htaccess, c'est la façon dont tu construis tes requêtes SQL qui n'est pas du tout fiable. tu récupères les paramètres en GET, que tu concatènes directement dans la requête. c'est la porte ouverte à toutes les injections SQL possibles.
comme te le dit Stealth35, regarde donc du coté des requête paramétrées


---------------
J'ai un string dans l'array (Paris Hilton)
n°1939091
pataluc
Posté le 09-11-2009 à 16:54:07  profilanswer
 

Harkonnen a écrit :


ça n'a rien à voir avec le htaccess, c'est la façon dont tu construis tes requêtes SQL qui n'est pas du tout fiable. tu récupères les paramètres en GET, que tu concatènes directement dans la requête. c'est la porte ouverte à toutes les injections SQL possibles.
comme te le dit Stealth35, regarde donc du coté des requête paramétrées


j'pense qu'il voulait dire qu'il est le seul à y avoir accès (mauvaise excuse inside)

mood
Publicité
Posté le 09-11-2009 à 16:54:07  profilanswer
 

n°1939094
stealth35
Posté le 09-11-2009 à 16:59:48  profilanswer
 

ouai, et puis c'est facil de faire un petit control type ACL

 

$type = 'delete';
$user = $_SERVER['REMOTE_USER'];

 

if(is_auth($user, $type))
{
    //tout le blabla
}
else
{
    //redirection ou mùessage d'erreur
}

 

apres definir la fonction is_auth, avec un xml ou base sql, fichier ini....


Message édité par stealth35 le 09-11-2009 à 17:00:13
n°1939097
stealth35
Posté le 09-11-2009 à 17:06:46  profilanswer
 

et puis elle sort d'ou la variable '$aFile' ?

n°1939098
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-11-2009 à 17:15:37  profilanswer
 

pataluc a écrit :


j'pense qu'il voulait dire qu'il est le seul à y avoir accès (mauvaise excuse inside)


ptet ben, mais comme tu dis, c'est une mauvaise excuse :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°1939104
fscalda
Gaaaaaazzzz
Posté le 09-11-2009 à 17:51:29  profilanswer
 

Harkonnen a écrit :


ptet ben, mais comme tu dis, c'est une mauvaise excuse :o


 
Vous avez raison, c'est une très mauvaise excuse, et puis on sait jamais, il suffit que j'oublie et que je laisse un accès et pam, dans les dents.  
stealth35, j'ai regardé pdo depuis le temps que tu m'en parles, mais pfiou, j'ai l'impression que c'est énorme à apprendre  :(  déja que j'en suis juste au base du php que je ne maitrise pas encore.

n°1939113
stealth35
Posté le 09-11-2009 à 18:10:51  profilanswer
 

fscalda a écrit :


 
Vous avez raison, c'est une très mauvaise excuse, et puis on sait jamais, il suffit que j'oublie et que je laisse un accès et pam, dans les dents.  
stealth35, j'ai regardé pdo depuis le temps que tu m'en parles, mais pfiou, j'ai l'impression que c'est énorme à apprendre  :(  déja que j'en suis juste au base du php que je ne maitrise pas encore.


 
 
héhé, mais non tu va voir c'est meme encore plus simple
 
pour ta connexion  c'est pareil (meme 1 ligne suffirais, mais on ajoute la gestion d'erreur comme si tu faisais le 'or die')
 

try{
    $dbh = new PDO('mysql:host=localhost;dbname=cafdes','root', 'uapm_dissertation');
}catch(PDOException $e){
    echo $e->getMessage();  
}


 
pour faire une requete simple (ex: recuperer un user avec son id)
 

$user = $dhb->query("SELECT * FROM user WHERE id=$id" )->fetch();
print_r($user);


 
recuperer tout les utilisateur d'un coup (fini les while et compagnie)
 

$users = $dhb->query("SELECT * FROM user" )->fetchAll();
print_r($users);


 
 
voila pour query (en vite fait)
 
tu vois bien que encore un fois on peu faire de l'injection, on utilise les requetes préparer, en gros c'est pareil, mais plus pratique apres tu verras
 
pareil pour l'user
 

$req  = $dbh->prepare("SELECT * FROM user WHERE id=?" );
$req->execute(array($id));
 
$user = $req->fetch();


 
et idem pour le fetchAll
 
 
maintenant image que t'as 15000 lignes a inserer dans ta base de donner, avant t'aurai ouvert et ferme 15000 fois ta connexion et refais ta requete a chaque fois
 
la tu feras
 

$users = array // une liste type nom, prenom, email
 
$req = $dbh->prepare("INSERT INTO user (nom, prenom, email) VALUES ('?', '?', '?')" );
 
foreach($users as $user)
{
   $req->execute($user);
}


 
et voila tout le monde est inseré
bon c'est hyper survolé, et faudais que je t'explique le coup des '?', un petit tour ici et ca roule
 
http://www.siteduzero.com/tutoriel [...] x-bdd.html
http://php.net/manual/fr/book.pdo.php


Message édité par stealth35 le 09-11-2009 à 18:11:24
n°1940589
fscalda
Gaaaaaazzzz
Posté le 13-11-2009 à 16:29:42  profilanswer
 

Merci stealth35, si je n'ai pas encore répondu, c'est parce ce que je suis sur le site du zero.... et j'en ai pour un moment. lol

n°1940590
stealth35
Posté le 13-11-2009 à 16:31:09  profilanswer
 

ca marche bon courage ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  requete SQL avec effacement du fichier concerné ?

 

Sujets relatifs
Requête sql avec jointure?Manipulation basique de fichier texte a l'aide de Perl
Problème fichier de configuration hibernatearbre binaire/fonction recursif/lecture fichier
[RESOLU] - Script de copie de dossier en BAT vers plusieurs [...][RESOLU]Requête SQL: Afficher Gratuit/Payant en une seule fois
Regex cherche email dans un fichier texte.echappement fichier struts
Impossible de suprimer un fichier .htacces en double 
Plus de sujets relatifs à : requete SQL avec effacement du fichier concerné ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR