[PHP] petits problèmes =>debutant!
jeje45
-
Brachior Messages postés 616 Statut Membre -
Brachior Messages postés 616 Statut Membre -
Bonjour,
alors je suis debutant en php et j'apprend au fur et a mesure sur different site pour m'entrainer je crée un site pour la société de mon pere mais qui verra certainement jamais le jour. Je vous explique mes problème:
1) Je fais en faite une partie admin qui amenne sur un gestionnaire de fichier ou l'on peut afficher tout les fichiers et sous-dossiers d'un dossier du serveur que j'ai specifié. Donc je voudrais savoir si je peu poster le code pour que vous me disiez si il a y pas de faille. Je precise que je n'ai pas fais le code en entier, je l'ai trouvé et j'ai essayé de faire mes modifs (d'entant plus qu'une grande partie est en javascript je crois)
2) ensuite pour y acceder j'ai créé un espace admin avec des seccions (avec le tuto de phpdebutant). le problème est que je croit que l'ideal est de hasher les mot de passe de la base de donné pour un max de securité, mais ce que je conprend pas c'est que quand l'admin voudra se connecter, et que son mot de passe aura été hasher dans la base de donné, il faudra qu'il entre le mot de passe hasher non ?
3) j'ai créé un page pour uploader les fichiers, grâce a l'applet java Jupload, seulement les fichier sont uploader avec des autorisations insufisantes pour qu'apres avec le gestionnaire de fichier je puisse les affichers (fichiers image principalment uploadés) , il faudrai que l'orsque que l'upload est fini, ma page soit redirigé ver une page qui ferai un chmod en 755 de tout les fichiers du dossier (particulièrement les nouveaux), j'ai essayé mais je bloque car j'ai cette fonction :
<?php
chmod("/uploads", 0777);
?>
mais comment faire pour que ça fasse un chmod de tout le dossier upload car la ca fais que le fichier uploads, non ?
Bon ça sera tout pour l'instant, c'est deja pas mal !!
J'espère que vous pourrez l'aider.
cordialement frco9
alors je suis debutant en php et j'apprend au fur et a mesure sur different site pour m'entrainer je crée un site pour la société de mon pere mais qui verra certainement jamais le jour. Je vous explique mes problème:
1) Je fais en faite une partie admin qui amenne sur un gestionnaire de fichier ou l'on peut afficher tout les fichiers et sous-dossiers d'un dossier du serveur que j'ai specifié. Donc je voudrais savoir si je peu poster le code pour que vous me disiez si il a y pas de faille. Je precise que je n'ai pas fais le code en entier, je l'ai trouvé et j'ai essayé de faire mes modifs (d'entant plus qu'une grande partie est en javascript je crois)
2) ensuite pour y acceder j'ai créé un espace admin avec des seccions (avec le tuto de phpdebutant). le problème est que je croit que l'ideal est de hasher les mot de passe de la base de donné pour un max de securité, mais ce que je conprend pas c'est que quand l'admin voudra se connecter, et que son mot de passe aura été hasher dans la base de donné, il faudra qu'il entre le mot de passe hasher non ?
3) j'ai créé un page pour uploader les fichiers, grâce a l'applet java Jupload, seulement les fichier sont uploader avec des autorisations insufisantes pour qu'apres avec le gestionnaire de fichier je puisse les affichers (fichiers image principalment uploadés) , il faudrai que l'orsque que l'upload est fini, ma page soit redirigé ver une page qui ferai un chmod en 755 de tout les fichiers du dossier (particulièrement les nouveaux), j'ai essayé mais je bloque car j'ai cette fonction :
<?php
chmod("/uploads", 0777);
?>
mais comment faire pour que ça fasse un chmod de tout le dossier upload car la ca fais que le fichier uploads, non ?
Bon ça sera tout pour l'instant, c'est deja pas mal !!
J'espère que vous pourrez l'aider.
cordialement frco9
A voir également:
- [PHP] petits problèmes =>debutant!
- Easy php - Télécharger - Divers Web & Internet
- Logiciel montage vidéo débutant - Guide
- Logiciel de programmation pour débutant - Guide
- Expert php pinterest - Télécharger - Langages
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
7 réponses
1) oui montre ns le code :)
2) il suffit de choisir le format que tu veux md5 ou autre puis lorsque qu'une personne s'inscri tu fait :
$mdp=md5($_POST['mdp']);
avant de l'envoyer ds la db ( assure toi que ton champs soit assez gd ^^ ( 40char pr md5 ^^ )
et pareil lorsqu'il veut se connecter ^^
3) je sais pas si tu peux faire une reccurence comme en shell mais si c'est le cas alr l'option est -R ^^
ou alr en conciderant le fichier * Oo ( 'tin ca fait lgtps qu'j'ai pas mis les pied sous unix =/ )
PS si tu veux maximiser la securité .. alr il faudra aussi te protéger des injection sql grace a la fct mysql_real_escape_string() ^^
2) il suffit de choisir le format que tu veux md5 ou autre puis lorsque qu'une personne s'inscri tu fait :
$mdp=md5($_POST['mdp']);
avant de l'envoyer ds la db ( assure toi que ton champs soit assez gd ^^ ( 40char pr md5 ^^ )
et pareil lorsqu'il veut se connecter ^^
3) je sais pas si tu peux faire une reccurence comme en shell mais si c'est le cas alr l'option est -R ^^
ou alr en conciderant le fichier * Oo ( 'tin ca fait lgtps qu'j'ai pas mis les pied sous unix =/ )
PS si tu veux maximiser la securité .. alr il faudra aussi te protéger des injection sql grace a la fct mysql_real_escape_string() ^^
slt,
merci pour tes reponces si rapides alors voila le code :
d'ailleur si tu pouvait en meme temps m'expliquer c'est quoi les grandes chaines de cartère au debut ? (je crois que c'est pour la lecture des differents formats ??)
ensuite pour $mdp=md5($_POST['mdp']); je comprend pas trop : la ca crée la variable mdp qui crypte la variable mdp recu du formulaire c'est ça ? ok mais quand la personne s'autentifie , il entre le mot de passe normal et ca marche quand meme ? tien voila qui verifie le login :
Je vois pas comment faire le lien avec le mot de passe hasher dans la base de donné car si par exemple je hash juste avant ca le mot de passe qu'il vient de rentrer puis le compare a celui de la base de donné , il me dira que le mot de passe est faut car il hash pas tout le temp de la meme manière pur un meme mot de passe ? Tu comprend ce que je conprend pas !?
ensuite j'ai une nouvelle question je m'essai a une newsletter (juste pour apprende le principe et m'ameliorer, mais je bolque) je te met le code dans une autre reponse car la je crois que ça fait deja un peu long !!
merci pour ton aide
jeje45
PS: Au passage si tu dectete des erreur ou des truc pas très securisé ou que je pourrais ammeliorer dis le moi !!
merci
merci pour tes reponces si rapides alors voila le code :
<?php
session_start();
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
//echo 'Vous n\'êtes pas autorisé à acceder à cette zone';
header("Location: http://".getenv("SERVER_NAME")."/erreuracess.php");
exit;
}
// This block MUST be at the very top of the page!
@ob_start('ob_gzhandler');
if(isset($_GET['icon']))
{
$e=$_GET['icon'];
$I['file']='R0lGODlhEAAPAOYAAIyMlu7u9PHx9vDw9fT0+PPz97u7vvf3+vb2+d/f4vn5+/39/vv7/Pr6+/b29+3t7pCRnI6PmZOVn5ibpZWYopqeqJ2hq6KnsaClr9fZ3ff4+t/g4qSqtKmwuqeuuM3P0vHz9tze4be6vuzv8+vu8urt8eXo7Kuzva61vquyu9/k6uXp7uTo7cvU3dHZ4dDY4Nfe5d3j6dzi6Nvh5+Po7eLn7OHm69HV2ejs8Ofr7+7x9OHk597h5PT2+PP19/Hz9evt7+Lk5t3f4fr7/Pn6+/b3+PX299Tc49rh5+ru8fDz9ff5+vb4+fP19vz9/f////7+/vv7+/Pz8+/v7+zs7Orq6ubm5uHh4d7e3sDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFkALAAAAAAQAA8AAAevgFmCJ4SFhDuCiYIdUI1QDQ9NKCGKgh4LjQsOG0smKRmVHAxPUAtGQktLPxxTihcKjU5FQR8iBhdXihgHC05DTEA8NwkYWIoWCENEGj1KJCsIFsaJFQRMPT5KIzk2BBXTghMFIEo6JDk1MQUT4FkUAiVJOCs2MTACFO0SAyw0NiozYLgYIKEdhAAyZiCBceRFiwAQ2kUIQLFixQjtAGjcyBFAuyhSqFgZSXJklSyBAAA7';
$I['dir']='R0lGODlhEAAOAOYAAP79uv//4/j43f//5f7+5v7+6f//7f//7//8qf/9vf/9wf/+xP/9yf793P/+4f32hP/6iv/6pP/9zP/4kf/4nP/4n/373//1jf/2nP32tvnodfzuff/xhv/3uP/revftrvz32v/ocf/odP/rhPnz0/z44+DAPOHAPe/gnPXrvv3zyM6hAMicAMeaANStJdu4PNy7RODDWN7EaOLIauLIa//10ffuzcudAMiaAMSWAMOVAMGTAL2PALqMAMilLtayPNe2TNW0TNKxTNm7V9e5V82vU9zEd+7jvurfvPXryfbu072NALiKALaIALOEALKDALGCAK+AAMinRMalRMOiRNCuTM6sTMuqTMmnTLyfUdm8ZtW9et3Kl+XUoa19AKp6AK6EG7GHIr2YNr+cQ7iXQ8akTMSjTb6jXs2waMOqbNjEkNDDpM2xctfQwPz8/Pv7+/r6+vX19fHx8ezs7Ovr6+jo6Ofn5+bm5uHh4eDg4N/f397e3t3d3cDAwAAAAAAAACH5BAEAAH0ALAAAAAAQAA4AAAe4gEkzMkNERl19iYqKMSkGjwZbRVJTVGhqijACEJwQEpCPWXKJOBYPp6ioFjh2bn06IBuys7MgOnpwfTwkGiY/QEFCVVZXWGVmYl9MNic0BwHQ0QMOBUhgT0cuJQoJ3d4LAARja15aKAwI6QgRFRQYGVxke1AvDRMXHB4iIfwjSmFt6iz50KGGwYMGVbBJgyeODxYrbrTIsYNHjyZOopzhM8fVHT17QooUmYdOrj5v4KhcyRKOqz6BAAA7';
$I['doc']='R0lGODlhEAAQAPcAAAEyeCg+bQgviwU2ggg8iAZCmwlLsiFMmjpamDJbtipitzhhrjppuE1qp0BmtERquVVtpF11q2d+s0JuxEl0zFJ3ylV7zl99w1h+0XeKnG6Ov3KQv3KRv3aTvXqVu3uVvH6XulWAyFmBxliCxV2ExF6ExGCBzWGIw2KJw2WKwmeLwWmMwWyOwGeK1XeR1XyX2P8A/4KavIWdvoOc2oCe5oigwIuiwoyiwouk3ZGnxpesyZCu1p2xzYml6ZOr5qO20am71K260K+836q+8a/A2LPD2rfI9MnS4tbc6tLi+tTj+tbk+tfl+9zi9Nnm+9vn+9zo+97p++Dq/OHs/OPt/OXu/Obv/Ojw/erx/evy/e3z/e/0/fDy+vD2/vL3/vT4/vX5/vf6/vn7/////wCpEQAAABLs7NS5srGlQNcVPRQCgBQCQBLtDNdNrxQCgGQCeNdN4xQCgBLtFAAAAJEFyCNr8BLt4JEFURQHqJEFbRLuOAAAABLtPAAAAJEFyFiHuBLuCJEFURQHSBLtWAAAAJEFyFiHuBLuJJEFURQHSJEFbRLuaAAABAAAAOaERAAAAgAABAAAMAAAACNr+NSLsf3QAAAAMAAABBQAABLrmJD7bAAAIAAAAFiHwBLuOAAAAAAAIADwqgAAIAAAAAAAAJDnvJDVhhLuCJD7bJD7cZDVhpDnvBQAABLt5JDnyBLujJDuGJD7eAH//wAABBLtaAAAABLujJDuGJEFcP///5EFbZEJvBQAAAAAAFiHwBLuSJEJkliHwAAAABLunN3tDt3tIGKmyAABxGKm1AAAAAAAAAAAAAAAAAAAABLuaBLu7BS3YBS3YBLuoOb8I8OlLsYaoBLu2MLCzQAABMLC4xS04BS3YAAAAxSwbsXS4BSwABLu1BLupP///xLvQMNclMEgcP///8LC40SV1RS3YGMboGMboEUEtRQAABS04IoASAAAAAAAAOqG1OqG1OqG1OqG1AAC8BLvJN1sdBLvLIoASIoASObgowAACeaCsAAABCH5BAEAADAALAAAAAAQABAAAAjhAGEILALkBw8dOWzIAAFCoEMYRMSEAfPFS5ctIMY0hOHDRw8aL1pgqDBBgZaMGjmOWclypYEsKDX2GDLDBBITTSDgMICFoU8aTWZcaPKgSYMMBq5YqUJlCggXY1w8EHIAB4IjBZY2lQKixRgJDyIMSBBgTIEqO3ZIieLBwhgICIwMGBBkDIGtUaB0oDBGwAIuAxysHDAlLZQnGxi0bAlg7WEnLBQYmFygMoEBAKKkdcJEhcMbWqc4fsJ5CQqHNZimXZ12iZISDmXgfczEdRIRDmN8+NCBg4YVKU6QGBEiREAAADs=';
$I['xls']='R0lGODlhEAAQAPcAADVJGjRNGTVNGDRSFzRTFzRYFTReEzReFDVeGjNpDzNtDjRtDjRjETRkEjZjGztoHjpvHjNwDTlwHjp3GTx3Hz57HjJoKDtxIjp9Jz99IWB+XEKAJUaELEeFLUKJNUeIO02MNk+OOUiSP1OTQFKXSFiYR1qaSVieUl6YVV+hU1uiWHCbbWGiVGGgWGWnW2eqX2SoYGmtYmqsZW2wZ3SlcG6Ov3KQv3KRv3aTvXqVu3uVvH6XulWAyFmBxliCxV2ExF6ExGGIw2KJw2WKwmeLwWmMwWyOwP8A/4KavIWdvoephZC9i5ywm6Gzn4igwIuiwoyiwpGnxpesyZCu1p2xzaO20am71JPCjpPEjZbEkZrGlq/A2LPD2sDRwMzay8/dz9bi1t/p39Li+tTj+tbk+tfl+9nm+9vn+9zo+97p++Xs5eDq/OHs/OPt/OXu/Obv/Ojw/erx/evy/e3z/e/0/fD2/vL3/vT4/vX5/vf6/vn7/////xLtPAAAAJEFyCLVGBLuCJEFURQHSBLtWAAAAJEFyCLVGBLuJJEFURQHSJEFbRLuaAAABAAAAOaERAAAAgAABAAAMAAAAFeQiNSLsf3QAAAAMAAABBQAABLrmJD7bAAAIAAAACLVIBLuOAAAAAAAIADwqgAAIAAAAAAAAJDnvJDVhhLuCJD7bJD7cZDVhpDnvBQAABLt5JDnyBLujJDuGJD7eAH//wAABBLtaAAAABLujJDuGJEFcP///5EFbZEJvBQAAAAAACLVIBLuSJEJkiLVIAAAABLunN3tDt3tIGKmyAABwGKm1AAAAAAAAAAAAAAAAAAAABLuaBLu7BSuABSuABLuoOb8I8OlLsYaoBLu2MLCzQAABMLC4xSsQBSuAAAAAxSg2MXS4BSgABLu1BLupP///xLvQMNclMEgcP///8LC40SV1RSuAGMboGMboEUEtRQAABSsQKR+UAAAAAAAAOqG1OqG1OqG1OqG1AACBBLvJN1sdBLvLKR+UKR+UObgowAACeaCsAAABCH5BAEAAEcALAAAAAAQABAAAAjhAI8I5GKlChUpUZ4k2bFDoMMjW/TkwXPHTh06O/Y0PDIjhosUJkaA6LChwpyMGjnuWclyZQQ5KDXOuAKDxB4vKFAwURCHoc8XarDI8ECjxQcwCeC8cdOGzQ4We75oUYHBQpc9DJY2XbOjxJ4lJ7KouLAizAE3U6asSZMjxBIKEBwsEfGgSYGtadDg4NBSiQQEGgawSYvmjI0MLVsKWFvYjJEJERYkaGCgAIEAANKkNVOGiEMoWtkwPsOZjBCHTpimXZ2WzBggDpPgbVzGtZgeDpHo0IHjRo0iQ4L88MGDR0AAADs=';
$I['jpg']=$I['gif']=$I['png']='R0lGODlhEAAQAPcAAPuBhP0RI9fU1r24vL25vn+CmKSxzLfF4cPL28bO3srO1oOk4WF4opyuzpWlwpurx6i30qm30ae1zqa0zb3M57G/2Kq3z6m2zcTR6aSvw9Dd9crW7NPe8tXg88PM3OLs/tXe7+Lr/Njh8eHp98/W4wBe9Yibup+vyZemv6e2z6e2zsXW8rLC26e1zK+91Kezx8jU6Nvo/eDr/dzm9uLs/OTt/MvT4ODn897l8dvi7uvy/gxn7Keyw7K9zsTQ4uPu/t7p+dzm9c/Y5t7n9dri7svb8djh7ejw++vw9+fs87jI2+Hu/lem/vH3/lSp/uTx/vP5/snj9+33/qGoqPz+/v3+/lXSYAC1AH3GdS6qHnDIW1OmL+Hp173JqoGaKby9srurRv3slf7dbf7cc/7Xb/7QZ/3SdP7FVd6wUP7LaP6/SP68SeS7cv6vMP62QNycN+KuWOCuW/vt1fueGf6qL/6vN/6xOf65V+C/jP2XEv6eGvmeH/6gI/6iJOCSKM+WR9ScUPjEff6ZG8qELbB/ROG0f/2EAPeAAf6IAuR5BP6JCP6QENKTTdmseuC7kbBhEKlfFa5iGMR0I8d+M45aJr6BRM2VW9ikcNuugNG8pvLk1v37+f17AO1zAKlUBrNiFqBdHplZHr97PcB/Q690Pc6KTcWHT7F9T9CYY9Opg9KujN25l6NJAJJFBK5sMpNnQcqcdKaGbL+fhPfw6qpKALeDWtijebGReOC4mdm2nKuQe+XDqfjy7tm0nedXBa+ZjPjz8OfOwauSh/BvO/55QcY0AN7a2d4dA+kwFdsTBv7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMsALAAAAAAQABAAAAj/AJcJXIbDSI6DREDAQKBs4MAgVZRJVNaEwwYbDgUaozJRGZQON46QcLgplaNLmFZpoiLDh5AKHgTuKmVJlzBVqEbBSlIEQgMTy2wxkhOFiZMFXLoQOiWCwgEHuCQ1KvRlRwkGWqxgERVrBYYHkwAF68VmSgE8Wa5sCRQqgYYTg8LEgWOGTJk0YLz8uQOJQAwDptCMEXNmjZs6dIgBGOZpwJIJs3JVeqPGDp0+c5AFSNZKwQ8JAnnV8tOGj6A8vo4VozTjg4qBwFzt0bNIESJDrH49oZHCoaxHiQ5x6kTr1QggIXoPFJCJVKRPoG4hkVJDRwSHQ5T04JHhBQsXF1pYA0AREAA7';
$I['txt']='R0lGODlhEAAQAPcAAB6Kcm6Ov3KQv3KRv3aTvXqVu3uVvH6XulWAyFmBxliCxV2ExF6ExGGIw2KJw2WKwmeLwWmMwWyOwP8A/4KavIWdvoigwIuiwoyiwo+lxJGnxpKoxpWryJesyZmtypCu1p2xzaO20am71K/A2LPD2tLi+tTj+tbk+tfl+9nm+9vn+9zo+97p++Dq/OHs/OPt/OXu/Obv/Ojw/erx/evy/e3z/e/0/fD2/vL3/vT4/vX5/vf6/vn7/////xLuYAAAQAAAAAAAABLuqBLuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBLurJDuGAAAAAAAAgAAAQACEBLuYAACEJEZcAa6SAa6KAAAAAAAAAHskAABHhLsBJDuGBLswNS5TACpEQCpERLs1NS47q0nqACpEQAAABLs7NS5sq0nqNcVPRQCgBQCQBLtDNdNrxQCgCoFBtdN4xQCgBLtFAAAAJEFyCLqgBLt4JEFURQHqJEFbRLuOAAAABLtPAAAAJEFyAcKIBLuCJEFURQHSBLtWAAAAJEFyAcKIBLuJJEFURQHSJEFbRLuaAAABAAAAOaERAAAAgAABAAAMAAAACLqiNSLsf3wAAAAMAAABBQAABLrmJD7bAAAIAAAAAcKKBLuOAAAAAAAIADwqgAAIAAAAAAAAJDnvJDVhhLuCJD7bJD7cZDVhpDnvBQAABLt5JDnyBLujJDuGJD7eAH//wAABBLtaAAAABLujJDuGJEFcP///5EFbZEJvBQAAAAAAAcKKBLuSJEJkgcKKAAAABLunN3tDt3tIGKmyAABsGKm1AAAAAAAAAAAAAAAAAAAABLuaBLu7BR5EBR5EBLuoOb8I8OlLsYaoBLu2MLCzQAABMLC4xR2sBR5EAAAAxRwicXS4BRwABLu1BLupP///xLvQMNclMEgcP///8LC40SV1RR5EGMboGMboEUEtRQAABR2sIPdOAAAAAAAAOqG1OqG1OqG1OqG1AABsBLvJN1sdBLvLIPdOIPdOObgowAACeaCsAAABCH5BAEAABMALAAAAAAQABAAAAipACcIJCEiBIgOGi5UOHBAoMMJI3js0JEDxw0bB3o0nACgo8ePHXto5CiyBwCTKEuKPBCypcmTABgybEkTJowXLljChPnSJM4WOkGCbNGCRQGHHmrQmCEjxk0XRVcQcMhh6YerWD+sUCHA4QamTn+y2JpCgsMMTbNiTYECgkMMYaGOVcH2hAOHFm6qvXrCBAOHFcSSRdG3RAKHFAwYIDAgQIQHDRYoQIAgIAA7';
$I['avi']=$I['mpg']=$I['mpeg']=$I['mp3']='R0lGODlhEAAQAPcAAEhHSHd2d//+/+/q9+7r9KalqPLx9NrZ3HZ1e4mJjx0dHoeHi+Dg4/n5++np6+jo6tLS1NjY2ZqamxYelholkUBHhIWGjHB2lREwshozpCdDujZPuoOEiIWNqBI7tJWWmdTV2B1NwihTuC9iyDZqzlF60X+Vw/z9/xtbyxZczvb5/h1m0EqA0EZ/z1aP3srd9h502hh24VSc6SuD3oqLjNfY2SGN70ik6cHe9ODn6urv8MTGxnG+AYTVDXiuKaPOX6DEZ+nu4XO3AWWgAU56AYypWoWWaNPcw22pAWacAVyKCTpTCm2bFF+BHHehLEVnAWGNBk9zBXWDV1BhKsbKvZm0VajRMHKKKJG5AUlaBnp9b4ulGoqMgYiIhoKCgLOzseDg325qVf/++dqvAdmvAei7As2oBtCoB8qlB+jAF+jAG6eLE5yDGezHK+fFN4RyIN7AOOTEOuPDO4BuIu3MQ+XIR+rLSuXHSOXHSu3VaO3Wc+7YeIuFa/ry0vz343lxVn16cnh2cMHAvpOOiPjx6evq6eHc2v9zTfV6WfnRxuHLxfvx7v9KG/lHG/hIG/lOIvxNI/dOJP5ZLv5aMexYMvVeOPRjPv9xTP92U/BzU/99Xet2WPKijvWvnu+unvGxofnMwNvLx/r19P////v7+/Ly8uzs7Ojo6Obm5uTk5OLi4uDg4N/f39jY2NbW1tLS0s/Pz87Ozs3NzczMzMfHx7Ozs62traenp56enpycnJqamnl5eWtra2RkZE5OTiEhIRwcHBsbGxMTEwgICAQEBP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMUALAAAAAAQABAAAAj/AIsJXMRpE6UtPopQMSCwYTFQlRpBeoSFxxAlRg44TBRpEiZNiKz0EJKEiBQIAkVZkoTpU6gINY78QALlCRdVxTw5utSJEK8dDggMAMIkypQCpDIxOqSIEABeu2gJCOKkyRIvq5QeMuTU169hvR5UuZJFC6wWM27kcBqMGDBYDPLAMcNnFosYNnAQUiDsFqwTfuy4OQNolokUMGToGCSowahRe+6oWWMhFggRKFa4eKFCTB89deSM+SOBVbEOHkKMIFGCDh08ccq8+WBLYKELGTBo2NCmTRoyczjkStUQTIIKFCagQcMmDA1crRwWK/WlC4JAARboqnVKekNTrmTJBnqFapTDgAA7';
$I['pdf']='R0lGODlhEAAQAPcAAFoAAGMAAHMYGG6Ov3KQv3KRv3aTvXqVu3uVvH6XulWAyFmBxliCxV2ExF6ExGGIw2KJw2WKwmeLwWmMwWyOwIwACJQAAJwhIa0ACLUAAL05OZxCQr1KSr1SWsYAAM4ICM4QENYYGM4pMd45OecIEPcQEPcYGO85OfcpKf8xOc5KSt5KStZja+dKSu9CSu9KSudaWu9SUu9SWudaY+dzc+97e/9zc/8A/4KavIWdvoigwIuiwoyiwo+lxJGnxpKoxpWryJesyZmtypywzJ2xzaO20am71Ky+1q/A2LPD2t6EhN61veeMjO+cnO+trdLi+tTj+tbk+tfl+9nm+9vn+9zo+97p++/W1ufv9+Dq/OHs/OPt/OXu/Obv/Ojw/erx/evy/e3z/e/0/fD2/vL3/vT4/vX5/vf6/vn7/////xQCgBQCQBLtDNdNrxQCgBEGqNdN4xQCgBLtFAAAAJEFyCJ8mBLt4JEFURQHqJEFbRLuOAAAABLtPAAAAJEFyFWi2BLuCJEFURQHSBLtWAAAAJEFyFWi2BLuJJEFURQHSJEFbRLuaAAABAAAAOaERAAAAgAABAAAMAAAACJ8oNSLsf3QAAAAMAAABBQAABLrmJD7bAAAIAAAAFWi4BLuOAAAAAAAIADwqgAAIAAAAAAAAJDnvJDVhhLuCJD7bJD7cZDVhpDnvBQAABLt5JDnyBLujJDuGJD7eAH//wAABBLtaAAAABLujJDuGJEFcP///5EFbZEJvBQAAAAAAFWi4BLuSJEJklWi4AAAABLunN3tDt3tIGKmyAACvGKm1AAAAAAAAAAAAAAAAAAAABLuaBLu7BSjUBSjUBLuoOb8I8OlLsYaoBLu2MLCzQAABMLC4xSo8BSjUAAAAxSgLcXS4BSgABLu1BLupP///xLvQMNclMEgcP///8LC40SV1RSjUGMboGMboEUEtRQAABSo8KR+UAAAAAAAAOqG1OqG1OqG1OqG1AACXBLvJN1sdBLvLKR+UKR+UObgowAACeaCsAAABCH5BAEAADcALAAAAAAQABAAAAjcAG8ITGKkCJEgPnbkSJBAoMMbSNCcMVOGzBgxCdI0fHhkYsWLYTJqvNGBgwYVM2DIgOFCBBiRGm28SIHChIkSJkhg+MKw54kQIEB4+OABQ4YKXrpw2aIlgYUAAARsmLrhwgalTLNsvDFETBgwX1Zg1ZLFygGHQr5+uTKiSVYrVQw4BALWSw0sTJyUrUKFgMMfX7xcaeHEyYoWMZRMoeCwR1IYS8jCXcJCigSHPLrMYCKZ7xQpUSA41EGDRmcqn6NAceAwx1vPoKE8WeAQBwIEBgoMmBDhQQMGChQEBAA7';
$I['rar']=$I['zip']='R0lGODlhDwAQAOYAAMjY9gRLsBJPqRZQpydpx7TP9iFbrSNfsChltixquzt6xEmH0VqU2G2h4HSk4HGc05jC9ZCz3jmF1zqA0EOK106P2JC235S335a535i531am9FOa5FOa4l2l61uZ13Cv7ne09IKx3ziZ81yr9mGz/2i3/2Go62as7XK7/26x7ni+/3W38Ha38HKx5nu88XWx5IjD84HA8oTD84vK+ZvP9YnJ963b+bzl+8fs/fT///79mf//r///uf//xPr2k//9pP/4hv/6kPr1kPr1kf/7mvfvgvPkbdm/Ktm/LPn25dm8L/vwvfvzzt61AfbNLNm3KfzUMdm3Mdu5M9q6Nd6+O/3ZR/vdZPzkhfvnl/roodq0Kv7TOP3VOf3aUfzZWPzebfvedPziffrjj/rprfrrs/juytKgB9SjCNWlC8+hDtWmEM+hENKmFNWmFtSnG9WqH9SqH9WqIdWrItiuKOjRh7J9DrR8D7mFKaptDbJ7I6ttDax0HfEZAf///wAAAAAAACH5BAEAAH0ALAAAAAAPABAAAAe8gH2CgzIxLispJyaCdGmOdCY5ODc2NDAsC31pfJxpBJ+gEyMeAWtaT0dISlFSU1R2fSEvAXI6PTw7P0RBQEZ1fRYyAW8+SWVjYmBeW02/GDMBcENMZFhhVlVQzX3P0dPV19nbF9BxQktZV19dXE7bGTUBbEVzbm1qaGdm2xEtAXd59ODZAwrUgw8dAgwStKgECRQqVHRQsHCQiQQIDhwwoLCiRxOLPA7i4KABgwoUJAgQuQFAAQggNIgYEAgAOw==';
header('Cache-control: max-age=2592000');
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T',time()+2592000));
header('Content-type: image/gif');
print base64_decode(isset($I[$e])?$I[$e]:$I['file']);
exit;
}
// End block
// Start configs
$sitename='Gestionnaire de Fichiers LHA Chambray';
$date='d-m-Y'; // date format
$ignore=array('.','..','.htaccess','index.php','icon.php','Thumbs.db'); // ignore these files
// End configs
$root=dirname(__FILE__);
$dir=isset($_GET['dir'])?$_GET['dir']:'';if(strstr($dir,'..'))$dir='';
$path="$root/$dir/";
$dirs=$files=array();
if(!is_dir($path)||false==($h=opendir($path)))exit('Directory does not exist.');
while(false!==($f=readdir($h)))
{
if(in_array($f,$ignore))continue;
if(is_dir($path.$f))$dirs[]=array('name'=>$f,'date'=>filemtime($path.$f),'url'=>'index.php?dir='.rawurlencode(trim("$dir/$f",'/')));
else$files[]=array('name'=>$f,'size'=>filesize($path.$f),'date'=>filemtime($path.$f),'url'=>trim("$dir/".rawurlencode($f),'/'));
}
closedir($h);
$current_dir_name = basename($dir);
$up_dir=dirname($dir);
$up_url=($up_dir!=''&&$up_dir!='.')?'index.php?dir='.rawurlencode($up_dir):'index.php';
// END PHP ?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?=$current_dir_name==''?'Directory list':$current_dir_name?></title>
<style type="text/css">
body {
font-family: tahoma, verdana, arial;
font-size: 0.7em;
color: black;
cursor: default;
background-color: #fff;
}
#idx {
border: 3px solid #fff;
width: 500px;
}
#idx td.center { text-align: center; }
#idx td { border-bottom: 1px solid #f0f0f0; }
#idx img { margin-bottom: -2px; }
#idx table { color: #606060; width: 100%; margin-top:3px; }
#idx span.link { color: #0066DF; cursor: pointer; }
#idx .rounded { padding: 10px 7px 10px 10px; -moz-border-radius:6px; }
#idx .gray { background-color:#fafafa;border-bottom: 1px solid #e5e5e5; }
#idx p { padding: 0px; margin: 0px;line-height:1.4em;}
#idx p.left { float:left;width:60%;padding:3px;color:#606060;}
#idx p.right {float:right;width:35%;text-align:right;color:#707070;padding:3px;}
#idx strong { font-family: "Trebuchet MS", tahoma, arial; font-size: 1.2em; font-weight: bold; color: #202020; padding-bottom: 3px; margin: 0px; }
#idx a:link { color: #0066CC; }
#idx a:visited { color: #003366; }
#idx a:hover { text-decoration: none; }
#idx a:active { color: #9DCC00; }
</style>
<script type="text/javascript">
<!--
var _c1='#fefefe'; var _c2='#fafafa'; var _ppg=25; var _cpg=1; var _files=[]; var _dirs=[]; var _tpg=null; var _tsize=0; var _sort='date'; var _sdir={'type':0,'name':0,'size':0,'date':1}; var idx=null; var tbl=null;
function _obj(s){return document.getElementById(s);}
function _ge(n){n=n.substr(n.lastIndexOf('.')+1);return n.toLowerCase();}
function _nf(n,p){if(p>=0){var t=Math.pow(10,p);return Math.round(n*t)/t;}}
function _s(v,u){if(!u)u='B';if(v>1024&&u=='B')return _s(v/1024,'KB');if(v>1024&&u=='KB')return _s(v/1024,'MB');if(v>1024&&u=='MB')return _s(v/1024,'GB');return _nf(v,1)+' '+u;}
function _f(name,size,date,url,rdate){_files[_files.length]={'dir':0,'name':name,'size':size,'date':date,'type':_ge(name),'url':url,'rdate':rdate,'icon':'index.php?icon='+_ge(name)};_tsize+=size;}
function _d(name,date,url){_dirs[_dirs.length]={'dir':1,'name':name,'date':date,'url':url,'icon':'index.php?icon=dir'};}
function _np(){_cpg++;_tbl();}
function _pp(){_cpg--;_tbl();}
function _sa(l,r){return(l['size']==r['size'])?0:(l['size']>r['size']?1:-1);}
function _sb(l,r){return(l['type']==r['type'])?0:(l['type']>r['type']?1:-1);}
function _sc(l,r){return(l['rdate']==r['rdate'])?0:(l['rdate']>r['rdate']?1:-1);}
function _sd(l,r){var a=l['name'].toLowerCase();var b=r['name'].toLowerCase();return(a==b)?0:(a>b?1:-1);}
function _srt(c){switch(c){case'type':_sort='type';_files.sort(_sb);if(_sdir['type'])_files.reverse();break;case'name':_sort='name';_files.sort(_sd);if(_sdir['name'])_files.reverse();break;case'size':_sort='size';_files.sort(_sa);if(_sdir['size'])_files.reverse();break;case'date':_sort='date';_files.sort(_sc);if(_sdir['date'])_files.reverse();break;}_sdir[c]=!_sdir[c];_obj('sort_type').style.fontStyle=(c=='type'?'italic':'normal');_obj('sort_name').style.fontStyle=(c=='name'?'italic':'normal');_obj('sort_size').style.fontStyle=(c=='size'?'italic':'normal');_obj('sort_date').style.fontStyle=(c=='date'?'italic':'normal');_tbl();return false;}
function _head()
{
if(!idx)return;
_tpg=Math.ceil((_files.length+_dirs.length)/_ppg);
idx.innerHTML='<div class="rounded gray" style="padding:5px 10px 5px 7px;color:#202020">' +
'<p class="left">' +
'<strong><?=$current_dir_name==''?$sitename:$current_dir_name?></strong><?=$dir!=''?' (<a href="'.$up_url.'">Retour</a>)':''?><br />' + (_files.length+_dirs.length) + ' fichiers dans ce dossier, ' + _s(_tsize) + ' total.' +
'</p>' +
'<p class="right">' +
' <span class="link" onmousedown="return _srt(\'name\');" id="sort_name"> </span><span class="link" onmousedown="return _srt(\'type\');" id="sort_type"> </span><span class="link" onmousedown="return _srt(\'size\');" id="sort_size"> </span><span class="link" onmousedown="return _srt(\'date\');" id="sort_date"> </span>' +
'</p>' +
'<div style="clear:both;"></div>' +
'</div><div id="idx_tbl"></div>';
tbl=_obj('idx_tbl');
}
function _tbl()
{
var _cnt=_dirs.concat(_files);if(!tbl)return;if(_cpg>_tpg){_cpg=_tpg;return;}else if(_cpg<1){_cpg=1;return;}var a=(_cpg-1)*_ppg;var b=_cpg*_ppg;var j=0;var html='';
if(_tpg>1)html+='<p style="padding:5px 5px 0px 7px;color:#202020;text-align:right;"><span class="link" onmousedown="_pp();return false;">Previous</span> ('+_cpg+'/'+_tpg+') <span class="link" onmousedown="_np();return false;">Next</span></p>';
html+='<table cellspacing="0" cellpadding="5" border="0">';
for(var i=a;i<b&&i<(_files.length+_dirs.length);++i)
{
var f=_cnt[i];var rc=j++&1?_c1:_c2;
html+='<tr style="background-color:'+rc+'"><td><img src="'+f['icon']+'" alt="" /> <a href="'+f['url']+'">'+f['name']+'</a></td><td class="center" style="width:50px;">'+(f['dir']?'':_s(f['size']))+'</td><td class="center" style="width:70px;">'+f['date']+'</td></tr>';
}
tbl.innerHTML=html+'</table>';
}
<?php while(list(,$d)=each($dirs))print sprintf("_d('%s','%s','%s');\n",addslashes($d['name']),date($date,$d['date']),addslashes($d['url'])); ?>
<?php while(list(,$f)=each($files))print sprintf("_f('%s',%d,'%s','%s',%d);\n",addslashes($f['name']),$f['size'],date($date,$f['date']),addslashes($f['url']),$f['date']);?>
window.onload=function()
{
idx=_obj('idx'); _head(); _srt('name');
};
-->
</script>
</head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" dir="ltr">
<head>
<title>Présentation de LHA Chambray</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="favicon.gif" type="image/ico" />
<link rel="stylesheet" type="text/css" href="/Style&CSS/style.css" title="default" media="screen" />
<style type="text/css">
<!--
.Style1 {font-size: 14pt}
#apDiv1 {
position:absolute;
left:213px;
top:104px;
width:60px;
height:56px;
z-index:1;
background-image: url(images2/electromenager.gif);
}
a:link {
color: #000000;
}
.Style6 {font-size: 1pt}
.Style7 {color: #B3B3B3}
.Style8 {color: #929292}
.Style9 {color: #858585}
.Style10 {color: #202020}
.Style11 {color: #FFFFFF}
.Style12 {color: #E8E8E8}
.Style14 {font-size: 9pt; }
-->
</style>
</head>
<body>
<center>
<div id="global">
<!-- Début du header, ici est affiché le header et les différents liens qu'il contient -->
<div id="header">
<p> </p>
<p class="Style14"> </p>
<p class="Style14"> </p>
<p align="right"> </p>
<p align="right"> </p>
<p> </p>
<h2 class="titre_contenu"></h2>
</div>
<!-- Début du menu, ici sont affichés les liens de la page web, mais pour l'instant j'ai rien mis -->
<div id="menu">
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<!-- Début du contenu, c'est ici que le contenu du site est affiché -->
<div id="contenu">
<p align="left"> </p>
<div id="idx"><p align="left"><!-- do not remove --></p></div>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
<p align="left" class="Style1"> </p>
</div>
<!-- Début du footer -->
<div id="footer"> <p> </p>
</div>
</div>
</center>
</body>
</html>
d'ailleur si tu pouvait en meme temps m'expliquer c'est quoi les grandes chaines de cartère au debut ? (je crois que c'est pour la lecture des differents formats ??)
ensuite pour $mdp=md5($_POST['mdp']); je comprend pas trop : la ca crée la variable mdp qui crypte la variable mdp recu du formulaire c'est ça ? ok mais quand la personne s'autentifie , il entre le mot de passe normal et ca marche quand meme ? tien voila qui verifie le login :
<?
// on se connecte à MySQL
$db = mysql_connect('localhost', 'login', 'mdp');
// on sélectionne la base
mysql_select_db('nom de la base',$db);
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
include('erreurlogin.php'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
//echo 'Vous etes bien logué';
header("Location: http://".getenv("SERVER_NAME")."/Gestionnaire_de_Fichiers/index.php");
}
}
else {
//echo '<p>Vous avez oublié de remplir un champ.</p>';
include('erreuracess.php'); // On inclut le formulaire d'identification
exit;
}
?>
Je vois pas comment faire le lien avec le mot de passe hasher dans la base de donné car si par exemple je hash juste avant ca le mot de passe qu'il vient de rentrer puis le compare a celui de la base de donné , il me dira que le mot de passe est faut car il hash pas tout le temp de la meme manière pur un meme mot de passe ? Tu comprend ce que je conprend pas !?
ensuite j'ai une nouvelle question je m'essai a une newsletter (juste pour apprende le principe et m'ameliorer, mais je bolque) je te met le code dans une autre reponse car la je crois que ça fait deja un peu long !!
merci pour ton aide
jeje45
PS: Au passage si tu dectete des erreur ou des truc pas très securisé ou que je pourrais ammeliorer dis le moi !!
merci
ton script est horrible xD lol ^^
il donne mal au crane xD
voila mon code pr hasher le mdp ( je crypte en SHA1 ^^ )
qui contient soit 0 (aucun droit) 1 (membre) ou 2(admin)
et mes page st faites ainsi :
il donne mal au crane xD
voila mon code pr hasher le mdp ( je crypte en SHA1 ^^ )
/* l'enregistrement */
$login=mysql_real_escape_string(htmlspecialchars($_POST["login"]));
$mdp=mysql_real_escape_string(htmlspecialchars($_POST["mdp"]));
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."'";
$test=mysql_query($req);
while ($tab = mysql_fetch_assoc($test)){
$test2=$tab["NB"];}
if ($test2=='0'){
$req2="INSERT INTO `Site__Membres` (`Login`,`mdp`) VALUES ('$login',SHA1('$mdp'))";
mysql_query($req2);
header('Location:index.php');}
/* la verification */
if(isset($_SESSION['login']) || isset($_SESSION['mdp'])){
$log=$_SESSION['log'];
$_POST['login']=$_SESSION['login'];
$_POST['mdp']=$_SESSION['mdp'];}
if(isset($_POST['mdp']) AND isset($_POST['login'])){
$mdp=mysql_real_escape_string(htmlspecialchars(SHA1($_POST['mdp'])));
$login=mysql_real_escape_string(htmlspecialchars($_POST['login']));
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'";
$log2=mysql_query($req) or die("erreur requete");
while ($tab=mysql_fetch_assoc($log2)){
$log=$tab["NB"];}
$_SESSION['log']=$log;}
if ($log=='1'){
$authentification=mysql_query("SELECT * FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'") or die("erreur de requete");
while($auth=mysql_fetch_assoc($authentification)){
$_SESSION['login']=html_entity_decode($auth["Login"]);
$_SESSION['mdp']=$_POST['mdp'];
$_SESSION['droit']=$auth["Droit"];}je me sers ensuite de la variable $droit
qui contient soit 0 (aucun droit) 1 (membre) ou 2(admin)
et mes page st faites ainsi :
<?php if ($_SESSION['droit']!=2){ ?>
<h2>Vous êtes sur une page réservée aux Administrateurs</h2>
<?php } else{ ... } ?>
merci
alors la j'ai pas le temps mais ce soir je reposte ton code et je vais ajouté des commentaire au niveau de chaque ligne pour dire ce que ca fais . Tu pourra me dire si c'est bien ca.
Merci quand meme pour ton code mais je prefère le comprendre puis l'utilisé plutôt que de le collé simplement dans ma page web.
et quand tu dis
alors la j'ai pas le temps mais ce soir je reposte ton code et je vais ajouté des commentaire au niveau de chaque ligne pour dire ce que ca fais . Tu pourra me dire si c'est bien ca.
Merci quand meme pour ton code mais je prefère le comprendre puis l'utilisé plutôt que de le collé simplement dans ma page web.
et quand tu dis
ton script est horrible xD lol ^^ il donne mal au crane xDc'est a dire ?????
tu as des script de partt ^^ et ts ne st pas ds le head ...
ton css est melangé ds le code ( meme si ca passe c'est tjs plus propre d'en avor un externe ^^ )
enfin bn plein d'chose ^^ comme par exemple que la j'me demande comment réagit le validator Oo
( tu m'diras y a pas mal de php ^^ )
et saches que je n'attends pas que tu recopies mon code betement lol ^^
par contre si tu veux plus d'explications dessus .. n'hesites pas ;)
ton css est melangé ds le code ( meme si ca passe c'est tjs plus propre d'en avor un externe ^^ )
enfin bn plein d'chose ^^ comme par exemple que la j'me demande comment réagit le validator Oo
( tu m'diras y a pas mal de php ^^ )
et saches que je n'attends pas que tu recopies mon code betement lol ^^
par contre si tu veux plus d'explications dessus .. n'hesites pas ;)
re,
bon voila je remet le code avec mes question en commentaire y en a que au debut car je bloque dès le depart !!!!
bon voila je remet le code avec mes question en commentaire y en a que au debut car je bloque dès le depart !!!!
/* l'enregistrement */
$login=mysql_real_escape_string(htmlspecialchars($_POST["login"])); //la tu test les variables envoyé ?
$mdp=mysql_real_escape_string(htmlspecialchars($_POST["mdp"]));
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."'"; //SELECT COUNT c'est comme SELECT ?
$test=mysql_query($req); // envoi de la requette test ?
while ($tab = mysql_fetch_assoc($test)){
$test2=$tab["NB"];}
if ($test2=='0'){
$req2="INSERT INTO `Site__Membres` (`Login`,`mdp`) VALUES ('$login',SHA1('$mdp'))";
mysql_query($req2);
header('Location:index.php');}
/* la verification */
if(isset($_SESSION['login']) || isset($_SESSION['mdp'])){ // la je comprend pas car tu test des variables de
$log=$_SESSION['log']; // session alor qu'aucune session n'est demarré ??
$_POST['login']=$_SESSION['login'];
$_POST['mdp']=$_SESSION['mdp'];}
if(isset($_POST['mdp']) AND isset($_POST['login'])){
$mdp=mysql_real_escape_string(htmlspecialchars(SHA1($_POST['mdp'])));
$login=mysql_real_escape_string(htmlspecialchars($_POST['login']));
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'";
$log2=mysql_query($req) or die("erreur requete");
while ($tab=mysql_fetch_assoc($log2)){
$log=$tab["NB"];}
$_SESSION['log']=$log;}
if ($log=='1'){
$authentification=mysql_query("SELECT * FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'") or die("erreur de requete");
while($auth=mysql_fetch_assoc($authentification)){
$_SESSION['login']=html_entity_decode($auth["Login"]);
$_SESSION['mdp']=$_POST['mdp'];
$_SESSION['droit']=$auth["Droit"];}
hum oui j'ai pas mis tt le code mais juste les parties importantes ^^
il y a bien evidement session_start(); ds mon entete ainsi que ma connexion a la db ^^
--------
tout en me protegeant des injection sql eventuelles
( via mysql_real_escape_string() qui rajoute un \ devant chaque caracteres speciaux comme ' " & .. etc )
--------
en gros je lui dis comptes toutes les lignes de Site__Membres où le Login correspond au login envoyé
mysql_query est la syntaxe pr dialoguer avec la db ^^
ensuite je lui dit :
tant que tu trouves des resultats a mettre ds $tab alors tu donnes a $test2 la valeur du champs nb de $tab
en gros je lui demande de me dire s'il a trouvé le login ou non .. si non il renvoie 0 si oui il rencoie 1 ( pas plus car c'est ma cle primaire ^^ )
--------
( sachant que ds mon veritable code je test aussi l'adresse mail pr eviter d'avoir 2 comptes avec la meme adresse )
remarque bien que pr enregistrer le mdp je le crypte : SHA1('$mdp')
--------
alr je copie les données ds le tableau POST
( ca m'evites une succession de || et de && par la suite ^^ )
--------
alr je recupere les données tt en me protegeant des injection sql
et en cryptant le mdp pr qu'il soit identique a celui de la db ( si le meme ^^ )
je compte ensuite le nb de personne qui existe avec ce login et ce mdp et je l'enregistre ds $log
si 1 alr la personne existe .. si 0 alr inconnu au bataillon ^^
autre OO .. y a une erreur xD lol ^^
--------
le champs Droit contient le niveau du membre ^^ 0 1 ou 2
si tu as d'autres questions .. n'hesite pas ^^
il y a bien evidement session_start(); ds mon entete ainsi que ma connexion a la db ^^
--------
$login=mysql_real_escape_string(htmlspecialchars($_POST["login"])); $mdp=mysql_real_escape_string(htmlspecialchars($_POST["mdp"]));je recupere les valeurs envoyées
tout en me protegeant des injection sql eventuelles
( via mysql_real_escape_string() qui rajoute un \ devant chaque caracteres speciaux comme ' " & .. etc )
--------
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."'";
$test=mysql_query($req);
while ($tab = mysql_fetch_assoc($test)){
$test2=$tab["NB"];}COUNT c'est la fct 'compter' de mysql ^^
en gros je lui dis comptes toutes les lignes de Site__Membres où le Login correspond au login envoyé
mysql_query est la syntaxe pr dialoguer avec la db ^^
ensuite je lui dit :
tant que tu trouves des resultats a mettre ds $tab alors tu donnes a $test2 la valeur du champs nb de $tab
en gros je lui demande de me dire s'il a trouvé le login ou non .. si non il renvoie 0 si oui il rencoie 1 ( pas plus car c'est ma cle primaire ^^ )
--------
if ($test2=='0'){
$req2="INSERT INTO `Site__Membres` (`Login`,`mdp`) VALUES ('$login',SHA1('$mdp'))";
mysql_query($req2);
header('Location:index.php');}si le login n'existe pas alr il peut inserer le nouveau membre
( sachant que ds mon veritable code je test aussi l'adresse mail pr eviter d'avoir 2 comptes avec la meme adresse )
remarque bien que pr enregistrer le mdp je le crypte : SHA1('$mdp')
--------
if(isset($_SESSION['login']) || isset($_SESSION['mdp'])){
$log=$_SESSION['log'];
$_POST['login']=$_SESSION['login'];
$_POST['mdp']=$_SESSION['mdp'];}la je dis que si une session existe
alr je copie les données ds le tableau POST
( ca m'evites une succession de || et de && par la suite ^^ )
--------
if(isset($_POST['mdp']) AND isset($_POST['login'])){
$mdp=mysql_real_escape_string(htmlspecialchars(SHA1($_POST['mdp'])));
$login=mysql_real_escape_string(htmlspecialchars($_POST['login']));
$req="SELECT COUNT(*) AS NB FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'";
$log2=mysql_query($req) or die("erreur requete");
while ($tab=mysql_fetch_assoc($log2)){
$log=$tab["NB"];}
$_SESSION['log']=$log;}si le tableau POST existe ou celui de session ( voir code precedent ^^ )
alr je recupere les données tt en me protegeant des injection sql
et en cryptant le mdp pr qu'il soit identique a celui de la db ( si le meme ^^ )
je compte ensuite le nb de personne qui existe avec ce login et ce mdp et je l'enregistre ds $log
si 1 alr la personne existe .. si 0 alr inconnu au bataillon ^^
autre OO .. y a une erreur xD lol ^^
--------
if ($log=='1'){
$authentification=mysql_query("SELECT * FROM Site__Membres WHERE Login='".$login."' AND MDP='".$mdp."'") or die("erreur de requete");
while($auth=mysql_fetch_assoc($authentification)){
$_SESSION['login']=html_entity_decode($auth["Login"]);
$_SESSION['mdp']=$_POST['mdp'];
$_SESSION['droit']=$auth["Droit"];}si il existe alr on recupere ses données et on facilite la navigation ^^
le champs Droit contient le niveau du membre ^^ 0 1 ou 2
si tu as d'autres questions .. n'hesite pas ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
alors merci pour l'aide mais si j'ai bien compris ton code correspond plus a un site qui a une seccion utilisateur + admin ? Alors que moi j'aurais un formulaire ou il y a aura un utilisateur (pte 2) mais je les cree directement dans la base de donné . Il y a donc juste un formulaire pour le login avec verification de l'existance dans la base de donné. J'ai donc repris juste quelques elements de ton code notamment pour me protéger de l'injection dans la base de donné . Donc merci pour ton aide , je ferme pas le sujet car j'ai encoor une question a propos d'une newsletter. Je suis pas chez moi la mais quand je rentre, je t'explique mon problème et poste le code . Merci encore
jeje45
alors merci pour l'aide mais si j'ai bien compris ton code correspond plus a un site qui a une seccion utilisateur + admin ? Alors que moi j'aurais un formulaire ou il y a aura un utilisateur (pte 2) mais je les cree directement dans la base de donné . Il y a donc juste un formulaire pour le login avec verification de l'existance dans la base de donné. J'ai donc repris juste quelques elements de ton code notamment pour me protéger de l'injection dans la base de donné . Donc merci pour ton aide , je ferme pas le sujet car j'ai encoor une question a propos d'une newsletter. Je suis pas chez moi la mais quand je rentre, je t'explique mon problème et poste le code . Merci encore
jeje45
bonjour,
alors enfaite c'était le serveur qui deconnait, car la ça a l'air de marcher je poste le code de la page qui verifie le formulaire d'inscrition. D'ailleur pourriez vous faire un essai je vous supprimerai de la BD, voila l'adresse http://lhachambray.fr.tc/newsletter.php
sinon voila le code
parcontre pour la confirmation ou l'echec y a un bug et je l'ai pas encore integé a une page
j'attend votre reponce
cordialment jeje45
alors enfaite c'était le serveur qui deconnait, car la ça a l'air de marcher je poste le code de la page qui verifie le formulaire d'inscrition. D'ailleur pourriez vous faire un essai je vous supprimerai de la BD, voila l'adresse http://lhachambray.fr.tc/newsletter.php
sinon voila le code
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'login', 'mdp');
// on sélectionne la base
mysql_select_db('nom de la base',$db);
// Mise en variables simples des valeurs du formulaire
$nom = htmlentities(addslashes($_POST['nom']));
$prenom = htmlentities(addslashes($_POST['prenom']));
$email = htmlentities(addslashes($_POST['email']));
$adresse = htmlentities(addslashes($_POST['adresse']));
$codepostal = htmlentities(addslashes($_POST['codepostal']));
$ville = htmlentities(addslashes($_POST['ville']));
// On vérifie qu'il y a bien eu un envoi de données.
// Pour cela, on vérifie que le champ "titre" à bien été rempli
if(isset($_POST['email']))
{
// Enregistrement dans la base de donnees
$sql = "INSERT INTO tbl_newsletter(nom,prenom,email,adresse,codepostal,ville) Values('$nom','$prenom','$email','$adresse','$codepostal','$ville')";
mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo 'Vous avez bien été enregistré(e), vous receverez desormais periodiquement un mail d\'information a l\'adresse suivante : $email ';
}
else
{
echo 'L\'enregistrement a échoué veuillez recommencer';
}
?>
parcontre pour la confirmation ou l'echec y a un bug et je l'ai pas encore integé a une page
j'attend votre reponce
cordialment jeje45
en faite j'ai pas dis c'etait quoi le pb : enfaite a la validation du formulaire, il me renvoyait bien sur newsletterverif.php mais rien ne ce passait : pas de message d'erreur ou de confirmation, rien une page blanche comme si le code php ne s'executait pas bizard ???
attention tres tres important ^^
sinon il faut obligatoirement concaténer ^^
echo 'Vous avez bien été enregistré(e), vous receverez desormais periodiquement un mail d\'information a l\'adresse suivante : $email ';les variables ne sont remplacées que si ET SEULEMENT SI tu utilises des double quote ( " " )
sinon il faut obligatoirement concaténer ^^
ok merci bcp pour ton aide, et ta ractivité ! sinon pour les champs vide c'est bizard car normalement il test au moin la variable email ?? d'ailleur faudrai pas que je test toutes les variable ? pour les doubles quote je vais modif merci .
Si tu a d'autre remarque je les attends avec impatience !!
merci encore
jeje45
Si tu a d'autre remarque je les attends avec impatience !!
merci encore
jeje45