PDO Insert Into [Résolu/Fermé]

Signaler
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
-
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

Messages postés
235
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
27 juin 2016
116
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>";

}

Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
Merci beaucoup !