PDO Insert Into

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 22 mai 2015 à 11:43
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 27 mai 2015 à 15:20
Bonjour à tous !

Je rencontre sérieusement un problème avec PDO. Je dois reformer toute mon administration.
Il est facile d'afficher les informations de sa base de données, mais les ajouter, éditer, supprimer... c'est autre chose et je n'y arrive pas depuis malgré les tutos que je trouves très mal expliqués. On croirais même que on cherche à fuir le PDO !

Dans ma page config.php j'ai fais ceci :
define("MYSQL_HOST",	"mon_host");
define("MYSQL_BASE",	"ma_base");
define("MYSQL_USER",	"mon_user");
define("MYSQL_PASS",	"mon_pass");

// Connexion PDO
$pdo = new PDO('mysql:host='.MYSQL_HOST.';dbname='.MYSQL_BASE, MYSQL_USER, MYSQL_PASS); $pdo->exec("SET CHARACTER SET utf8");


Dans ma page ajouter.php
<form action="add_rss.php" method="POST" name="Form">
<input type="hidden" name="action" value="send" />
<input type="hidden" name="access[]" value="home" />

Date : <input name="Date" type="text" id="Date" value="" />
Titre : <input name="Titre" type="text" id="Titre" value="" />
Descriptions : <textarea name="Desc" id="Desc"></textarea>

<input type="submit" name="Envoyer" value="Envoyer" />

</form>


Et enfin dans confirmer.php
<?php
if(isset($_POST["action"]) && $_POST["action"] == "send"){

if (isset($_POST['Date'])) $Date = mysql_real_escape_string($_POST["Date"]);else $Date = "";
if (isset($_POST['Titre'])) $Titre = mysql_real_escape_string($_POST["Titre"]);else $Titre = "";
if (isset($_POST['Desc'])) $Desc = mysql_real_escape_string($_POST["Desc"]); else $Desc = "";

if(empty($Date)) {$_GET["msg"] = urlencode("Champ Date vide");}else{
if(empty($Titre)) {$_GET["msg"] = urlencode("Champ Titre vide");}else{
if(empty($Desc)) {$_GET["msg"] = urlencode("Champ Desc vide");}else{

$DateReel = date('Y-m-d H:i:s', strtotime($Date));

$MyPDOadd = "INSERT INTO tb_ci_rss (Date, Titre, Descriptions) VALUES (:DateReel, :Titre, :Descriptions)";

if($MyPDOadd ){echo("<div class=\"Message\">Ajouté avec succès.</div>");}
else {echo("<div class=\"Erreur\">Erreur</div>");}
exit();}}}

if (!empty($_GET["msg"]))
{$msg = urldecode($_GET["msg"]); $msg = stripslashes($msg); echo("<div class=\"Erreur\">$msg</div>");}

}; ?>


J'y arrive pas ! Vous pouvez svp me mettre sur la voie ?

1 réponse

VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
22 mai 2015 à 11:47
Je trouve que tout ça est bien compliqué pour juste ajouter qque chose à ta base de donnée via PHP

try
{
$DB= new PDO('mysql:host=localhost;dbname=csws','root','adminroot');
$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Base de données indisponible !!! ";
}




if (isset($_POST['submit']))
{
$Login = htmlentities(trim($_POST['Login'],ENT_QUOTES)); // est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.
$Password = htmlentities(trim($_POST['Password'],ENT_QUOTES));// aucun XSS est possible et que votre demande est sécurisé :
$repeatPass = htmlentities(trim($_POST['repeatPass'],ENT_QUOTES));
$date_naissance = htmlentities(trim($_POST['date_naissance'],ENT_QUOTES));
$Mail = htmlentities(trim($_POST['Mail'],ENT_QUOTES));

if($Login && $Password && $repeatPass && $date_naissance && $Level && $Mail)
{
$sql = "SELECT * FROM users WHERE Login='".$Login."'";
$req = $DB->query($sql) or die ("Erreur SQL");
$data = $req->fetch();
if ($data['Login'] != $Login)
{
if($Password==$repeatPass)
{
$Password=md5($Password);
$d= array('$Login','$Password','$date_naissance','$Level','$Mail');
$req = $DB->prepare("INSERT INTO users VALUES('','$Login','$Password','$date_naissance','$Mail')");
$req->execute($d);
echo "<a href='./index.php'><span class='rac'>Retour</a></span><span class=\"messinsc\"><font color='green'> Inscription terminée </font></span>";
}else echo "<span class=\"messinsc\"> les deux mots de passes doivent etre identique !!!</span>";
}else echo "<span class=\"messinsc\"> Log existant</span>";

}else echo "<span class=\"messinsc\">Tous les champs ne sont pas remplis !!!</span>";

}

0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
27 mai 2015 à 15:20
Merci beaucoup !
0