Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL

Programmation => PHP/MySQL - (x)HTML - ... => Discussion démarrée; par: Larine le 02 Novembre 2013, 13:15:45



Titre: formulaire :
Posté par: Larine le 02 Novembre 2013, 13:15:45
Bonjour je voulais savoir si le mon code ci-dessous était suffisant pour  savoir si le formulaire a été envoyé.

Code:
if(mysql_query("INSERT INTO member VALUES('', '" . $username  . "' , '" . $password  . "'  , '" . $email  . "' , '" . time() . "' , '' , '" . $_SERVER["REMOTE_ADDR"] . "')"))

Si il est envoyé alors le formulaire est valide. Sinon je renvois une erreur. Merci par avance.
P.s: J'ai pas mis tous le code.


Titre: Re: formulaire :
Posté par: Coleim le 04 Novembre 2013, 14:18:37
Bonjour,

D’après la documentation, je dirais a priori que oui.

http://php.net/manual/fr/function.mysql-query.php


Titre: Re: formulaire :
Posté par: Larine le 05 Novembre 2013, 21:20:01
Je te remercie pour ta réponse :).


Titre: Re: formulaire :
Posté par: Larine le 06 Novembre 2013, 23:41:31
Mon code se présente comme ceci et je pense que ça peut-être simplifié. Vous avez des idées?*
Code:
//Le code ci dessous gêre l'affichage et la suppression des différentes parties. Il se compose en trois parties :
// --> La Modification de l'article.
// --> La suppression d'un article ou d'une image.
// --> La "mise à zéro" des variables lors de la création d'un article.

//On cherche à modifier un article. On vérifie par "isset" que la variables est définie et différente de NULL.
if (isset($_GET['modifly']))
{
//On vérifie l'article a modifier existe. Sinon, on renvoie un méssage d'erreur.
$select_newspanelposted_news_idgetmodiflyandwriterusername = mysql_query('select * from news where id="'.$_GET['modifly'].'" and writer="'.$_SESSION['username'].'"');
$count_newspanelposted_news_idgetmodiflyandwriterusername = mysql_num_rows($select_newspanelposted_news_idgetmodiflyandwriterusername);

//L'article existe, on récupère les informations.
if ($count_newspanelposted_news_idgetmodiflyandwriterusername == 1)
{
$formulaire = true;
$display_newspanelposted_news_idgetmodiflyandwriterusername = mysql_fetch_array($select_newspanelposted_news_idgetmodiflyandwriterusername);
$title = $display_newspanelposted_news_idgetmodiflyandwriterusername['title'];
$picture = $display_newspanelposted_news_idgetmodiflyandwriterusername['picture'];
$pictureposition = $display_newspanelposted_news_idgetmodiflyandwriterusername['pictureposition'];
$category  = $display_newspanelposted_news_idgetmodiflyandwriterusername['category'];
$article = $display_newspanelposted_news_idgetmodiflyandwriterusername['article'];
$id = $display_newspanelposted_news_idgetmodiflyandwriterusername['id'];
}
else
{
$formulaire = false;
$infoboxnewspanelposted = 'L\'article que vous cherchez &agrave; modifier n\'existe pas. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';}
}

//On cherche à supprimer un article.  On supprime l'article de la BDD, et on renvoie un méssage d'erreur.
elseif (isset($_GET['remove']))
{
//On vérifie que l'article existe et qui est bien rédigé par la personne connecté.
$select_newspanelposted_news_idgetremoveandwriterusername = mysql_query('select * from news where id="'.$_GET['remove'].'" and writer="'.$_SESSION['username'].'"');
$count_newspanelposted_news_idgetremoveandwriterusername = mysql_num_rows($select_newspanelposted_news_idgetremoveandwriterusername);
if ($count_newspanelposted_news_idgetremoveandwriterusername == 1)
{
$display__newspanelposted_news_idgetremoveandwriterusername = mysql_fetch_array($select_newspanelposted_news_idgetremoveandwriterusername);
$picture = htmlspecialchars($display__newspanelposted_news_idgetremoveandwriterusername['picture']);
unlink("UPLOAD_DOSSIER/" . $picture  . "");
mysql_query('DELETE from news where id="'.$_GET['remove'].'"');
$formulaire = false;
$successboxnewspanelposted = 'Votre article &agrave; bien &eacute;t&eacute; supprimer.<br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
else
{
$formulaire = false;
$infoboxnewspanelposted = 'L\'article que vous cherchez &agrave; supprimer n\'existe pas. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
}

//On cherche à supprimer une image.
elseif (isset($_GET['removepicture']))
{
$select_newspanelposted_news_idgetremovepicture = mysql_fetch_array(mysql_query("select * from news where id='" . $_GET['removepicture'] . "'" ));
$picture = htmlspecialchars($select_newspanelposted_news_idgetremovepicture['picture']);;
unlink("UPLOAD_DOSSIER/" . $picture  . "");
mysql_query("UPDATE news SET picture='' WHERE id='" . $_GET['removepicture'] . "'" );
$formulaire = false;
$successboxnewspanelpostedupload = 'Votre image &agrave; bien &eacute;t&eacute; supprimer.<br /> <a href="panelnews.php?module=newspanelposted&modifly=' . $_GET['removepicture'] . '">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}

//On veut ni modifier, ni supprimer un article ou une image. On cherche à créer un nouvel article. L'affichage dans le formulaire des attribues "value" est donc vide.
//$id est donc égal à zero.
else
{
$formulaire = true;
$title = '';
$picture = '';
$pictureposition = '';
$category   = '';
$article = '';
$id = 0;
}


//On créer un nouvelle article :
//On vérifie par "isset" que les variables sont définies et différentes de NULL.
if (isset($_POST['title']) AND isset($_POST['category']) AND isset($_POST['article']))
{
$_POST['title'] = stripslashes($_POST['title']);
$_POST['pictureposition'] = stripslashes($_POST['pictureposition']);
$_POST['category'] = stripslashes($_POST['category']);
$_POST['article'] = stripslashes($_POST['article']);
$_POST['id'] = intval($_POST['id']);

//On vérifie que le titre de l'article est bien envoyé.
if (!empty($_POST['title']))
{
//On vérifie que la category de l'article est bien envoyé.
if (!empty($_POST['category']))
{
//On verifie que l'utilisateur à écrit un article et que celui-ci ne dépasse pas les 10000 caractères...
if (!empty($_POST['article']))
{
if(strlen($_POST['article'])<=10000)
{
$title = mysql_real_escape_string($_POST['title']);
$picture = mysql_real_escape_string($_POST['picture']);
$pictureposition = mysql_real_escape_string($_POST['pictureposition']);
$category = mysql_real_escape_string($_POST['category']);
$article = mysql_real_escape_string($_POST['article']);
$id = mysql_real_escape_string($_POST['id']);

//On insere ici le traitement de l'image.
if (isset($_FILES['picture']) AND $_FILES['picture']['error'] == 0)
{
if(!empty($_FILES['picture']['name']))
{
$extension  = pathinfo($_FILES['picture']['name']);
$extension_upload = $extension['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'JPG', 'JPEG');
if (in_array($extension_upload, $extensions_autorisees))
{
$infosImg = getimagesize($_FILES['picture']['tmp_name']);
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
if(($infosImg[0] <= 400) && ($infosImg[1] <= 400) AND (filesize($_FILES['picture']['tmp_name']) <= 1000000))
{
$picture = md5(uniqid()) .'.'. $extension_upload;
if(move_uploaded_file($_FILES['picture']['tmp_name'], 'UPLOAD_DOSSIER/'.$picture))
{
$successboxnewspanelpostedupload = 'Le fichier uploader &agrave; bien &eacute;t&eacute; envoy&eacute;.';
$formulaire = true;
}
else
{
$errorboxnewspanelpostedupload = 'Une erreur est survenu lors de l\'upload de l\'image.';
$formulaire = true;
}
}
else
{
$errorboxnewspanelpostedupload = 'Votre fichier et superieur au valeur indiqu&eacute; ci-dessous :<br /><ul><li>Largeur:400px.</li> <li>Hauteur:400px.</li> <li>Poids :1Mo</li></ul>.';
$formulaire = true;
}
}
else
{
$errorboxnewspanelpostedupload = 'Le format du fichier demand&eacute; n\'est pas t&eacute;l&eacute;chargeable.'; $formulaire = true;
$formulaire = true;
}
}
else
{
$errorboxnewspanelpostedupload = 'Le format du fichier demand&eacute; n\'est pas t&eacute;l&eacute;chargeable.';
}
}
else
{
}
}
else
{
}
//Fin du traitement de l'image.
if ($id == 0)
{
//On vérifie qu'il n'y ai pas d'erreur bloquante au niveau de l'ilage.
if ($errorboxnewspanelpostedupload == NULL)
{
if(mysql_query("INSERT INTO news VALUES('', '" . $_SESSION['username'] . "', '" . $title . "', '".$picture."', '" . $pictureposition. "', '" . $category . "', '" . $article . "', '" . time() . "' , '" . time() . "', '" . $_SERVER["REMOTE_ADDR"] . "')"))
{
$formulaire = false;
$successboxnewspanelposted = 'Votre article &agrave; bien &eacute;t&eacute; ajout&eacute;. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
else
{
$formulaire = false;
$successboxnewspanelposted = 'Une erreur et survenue lors de la cr&eacute;ation de l\'article. <br /> <a href="panelnews.php?module=newspanelposted">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
}
else
{
//En présence d'une erreur blocante, le message d'erreur est retourné si dessous.
}
}
else
{
//Sinon on veut modifier un article.
//On vérifie que l'article existe. Sinon, on renvoie un méssage d'erreur.
$select_newspanelposted_news = mysql_query('select * from news where id="'. $id .'" and writer="'.$_SESSION['username'].'"');
$count_newspanelposted_news = mysql_num_rows($select_newspanelposted_news);
if ($count_newspanelposted_news == 1)
{
//On vérifie qu'il n'y ai pas d'erreur bloquante au niveau de l'ilage.
if ($errorboxnewspanelpostedupload == NULL)
{
if(mysql_query("UPDATE news SET title= '" . $title . "' ,picture= '" . $picture . "', pictureposition= '" . $pictureposition . "', category= '" . $category . "', article= '" . $article . "'  WHERE id='" . $id . "'"))
{
$formulaire = false;
$successboxnewspanelposted = 'L\'article &agrave; bien &eacute;t&eacute; modifier. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
else
{
$formulaire = false;
$successboxnewspanelposted = 'Un erreur et survenue lors de la modification de l\'article. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
}
else
{
//En présence d'une erreur blocante, le message d'erreur est retourné si dessous.
}
}
else
{
$formulaire = false;
$infoboxnewspanelposted = 'L\'article que vous cherchez &agrave; supprimer n\'existe pas. <br /> <a href="panelnews.php?module=newspanel">Cliquer ici</a> pour revenir &agrave; la page d\'accueil.';
}
}
}
else
{
$formulaire = true;
$errorboxnewspanelposted = "L'article saisie contient plus de 10000 caract&egrave;res.";
}
}
else
{
$formulaire = true;
$errorboxnewspanelposted = "Vous n'avez pas &eacute;cris d'article.";
}
}
else
{
$formulaire = true;
$errorboxnewspanelposted = "Vous n'avez pas s&eacute;lectionn&eacute; de cat&eacute;gorie.";
}
}
else
{
$formulaire = true;
$errorboxnewspanelposted = "Vous n'avez pas saisie de nom de titre.";
}
}
else
{
}


Titre: Re: formulaire :
Posté par: Coleim le 07 Novembre 2013, 16:00:28
Oula, y'en a des lignes.

Si ca marche, pourquoi le simplifier ?


Titre: Re: formulaire :
Posté par: Larine le 07 Novembre 2013, 18:38:57
C'est la façon dont je vérifie les informations liées a l'image. Quand je poste mon sujet je suis obligé de vérifier si il n'y à pas une erreur en cause de l'upluad. Je trouve que ça fait lourd :s.


Titre: Re: formulaire :
Posté par: Larine le 10 Novembre 2013, 17:11:53
Bonjour encore une petite question :
Y a t'il un sens dans l'écriture des fonctions mysql_real_escape_string et stripslashes, faut il les vérifier séparément?
Code:
$title = mysql_real_escape_string(stripslashes($_POST['title']));


Titre: Re: formulaire :
Posté par: Coleim le 12 Novembre 2013, 10:34:18
Non je ne pense pas.

http://php.net/manual/fr/function.mysql-real-escape-string.php

http://php.net/manual/fr/function.stripslashes.php


Titre: Re: formulaire :
Posté par: sheyna le 26 Novembre 2013, 10:56:52
ton code marche selon tes dire, mais moi, je le trouve trop mal organiser.
connais-tu le fait que l'on peut créer des fonction?
et pour posser le bouchon plus loin encore dans les possibiliter, connait tu les OBJET en PHP?
sais-tu les utiliser et les créer?
et en parlant des OBJET PHP, virre-moi toute ces fonction BDD, remplace les par l'objet PDO.
et tant que j'y suis, NE MET PLUS LES VARIABLES DES UTILISATEUR DANS LE LANGAGE SQL!!!!!!
l'avantage avec PDO, c'est que tu déclare ta requet un premier temps ( $preparation_request=$PDO->prepare('-- votre code sql');
et on met les variable pour executer ($reponse=$preparation_request->execute(array('variable'=>$variable));

renseignes-toi sur les OBJET PHP.
si tu ne sais pas créer, ou comment les architecturer, je peut te le faire, mais il me faudras plus de détailles.
et une derniere chose, inutile de ce proteger contre les injection SQL avec cette methode, car les variable ne sont pas dans le langage, il n'y as plus qu'a utiliser HTMLSPECIALCHARS contre les injection HTML et JAVASCRIPT.

repond ici pour savoir ou tu en es.


Titre: Re: formulaire :
Posté par: lalias le 26 Février 2014, 15:49:42
Bonjour,

J'ai commencé à lire ton code et je me suis vite arrêter en voyant le nom des variables. C'est juste insupportable à lire ! Simplifie !

Sinon voici un très bon tuto (http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/presentation-des-bases-de-donnees-2) pour apprendre à utiliser MySQL avec l'objet PDO.
Ça rendras ton code beaucoup plus propre et lisible.