par
Nephilme » 20 mars 2017, 21:22
Bonjour à tous !
Après de nombreuses recherches infructueuses je m'en remet à vous !
Je suis encore un débutant en PhP et après avoir suivi et fini plusieurs cours PhP je n'arrive toujours pas à comprendre et a mettre en place un système d'article reprenant l'id d'un membre afin de le lier à l'article créer afin de pouvoir poster chaque article appartenant au dit membre.
Ma partie sql se compose en deux partie :
- Une partie création membre, qui génère un id en auto avec le pseudo, le mdp ainsi que l'adresse mail.
- l'autre partie composée d'une table "article" comprenant : id ( de l'article ), id_membre, titre, message, etc..
Voilà les deux partie du code :
creation_fiche :
<form action="insertion_bdd.php" method="post" enctype="multipart/form-data"><br><h1>Titre: <input type="text" name="titre" /></h1>
<input type="file" name="image1"/>
<input type="file" name="image2"/>
<input type="file" name="image3"/>
<textarea name="message" placeholder="Message" style="width:714px; height: 133px;"></textarea>
<p>Marque: <input type="text" name="marque" /></p>
<p>Prix: <input type="text" name="prix" /></p>
<p>Numero de téléphone: <input type="text" name="telephone" /></p>
<input type="submit" value="Envoyer" /><form action="insertion_bdd.php" method="post" enctype="multipart/form-data"><br><h1>Titre: <input type="text" name="titre" /></h1>
insertion_bdd :
<?php
session_start();
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
$imagesPourBD = array();
for ($i=1; $i<4;$i++) {
if (isset($_FILES['image'.$i]) AND $_FILES['image'.$i]['error'] == 0) {
// Testons si le fichier n'est pas trop gros
if ($_FILES['image'.$i]['size'] <= 1000000) {
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['image'.$i]['name']);
if (in_array($infosfichier['extension'], array('jpg', 'jpeg', 'gif', 'png'))) {
// On peut valider le fichier et le stocker définitivement
$nom = md5(uniqid("produit_", true));
$name = "photo/".str_replace(' ','',$nom);
if (move_uploaded_file($_FILES['image'.$i]['tmp_name'], $name)) {
//Sauvegarde des noms pour la requête SQL
$imagesPourBD[] = $nom;
echo "Image transféré sur le serveur";
/*
* A partir de là on peut traiter le SQL
*/
} else {
echo 'echec transfert image sur le serveur';
}
} else {
echo '<br/>Les extensions valides sont: "jpg","jpeg","gif" et "png"';
}
} else {
echo '<br/>Votre fichier est trop gros => 1000 000 octets max';
}
} else {
echo 'Aucune image numéro '.$i.' n\'a été chargée';
}
}
if (sizeof($imagesPourBD) > 0) {
/*
* Pour simplifier je mets tout dans le try / catch
*/
try{
// Connexion à la base de données
$bdd = new PDO('mysql:host=xxxxx;dbname=xxxx', 'xxxx', 'xxx',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$requete = "INSERT INTO fiche_voiture (id_membre, titre, prix, message, marque, telephone, image1, image2, image3)";
$requete .= " VALUES ";
$requete .= " VALUES (:id_membre, :titre, :prix, :message, :marque, :telephone, :image1, :image2, :image3)";
$stmt = $bdd->prepare($requete);
$stmt->bindValue('id_membre',$_SESSION['id']); //ID MEMBRE contenu en session
$stmt->bindValue('titre',$_POST['titre']);
$stmt->bindValue('prix',$_POST['prix']);
$stmt->bindValue('message',$_POST['message']);
$stmt->bindValue('marque',$_POST['marque']);
$stmt->bindValue('telephone',$_POST['telephone']);
for ($i=1; $i<4;$i++) {
$stmt->bindValue('image'.$i,$imagesPourBD[$i]);
}
if (!$stmt->execute()) {
echo '<br/>Erreur execute INSERT';
} else {
//OK
echo '<br/>Insertion en base OK';
}
} catch (PDOException $pdoE) {
echo 'Connexion impossible: '.$pdoE->getMessage();
}
}
?>
Je commence a désespérer après plusieurs jours bloquer sur ce problème et en ayant fait plusieurs modification possible, sans avoir aucuns résultat.. La valeur de la SESSION ne s'incrémente jamais à la table dans l'espace id_membre..
J’espère avoir été assez compréhensible, et vous remercie d'avance pour votre aide !!
Bonjour à tous !
Après de nombreuses recherches infructueuses je m'en remet à vous !
Je suis encore un débutant en PhP et après avoir suivi et fini plusieurs cours PhP je n'arrive toujours pas à comprendre et a mettre en place un système d'article reprenant l'id d'un membre afin de le lier à l'article créer afin de pouvoir poster chaque article appartenant au dit membre.
Ma partie sql se compose en deux partie :
- Une partie création membre, qui génère un id en auto avec le pseudo, le mdp ainsi que l'adresse mail.
- l'autre partie composée d'une table "article" comprenant : id ( de l'article ), id_membre, titre, message, etc..
Voilà les deux partie du code :
creation_fiche :
[html]<form action="insertion_bdd.php" method="post" enctype="multipart/form-data"><br><h1>Titre: <input type="text" name="titre" /></h1>
<input type="file" name="image1"/>
<input type="file" name="image2"/>
<input type="file" name="image3"/>
<textarea name="message" placeholder="Message" style="width:714px; height: 133px;"></textarea>
<p>Marque: <input type="text" name="marque" /></p>
<p>Prix: <input type="text" name="prix" /></p>
<p>Numero de téléphone: <input type="text" name="telephone" /></p>
<input type="submit" value="Envoyer" /><form action="insertion_bdd.php" method="post" enctype="multipart/form-data"><br><h1>Titre: <input type="text" name="titre" /></h1>[/html]
insertion_bdd :
[php]<?php
session_start();
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
$imagesPourBD = array();
for ($i=1; $i<4;$i++) {
if (isset($_FILES['image'.$i]) AND $_FILES['image'.$i]['error'] == 0) {
// Testons si le fichier n'est pas trop gros
if ($_FILES['image'.$i]['size'] <= 1000000) {
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['image'.$i]['name']);
if (in_array($infosfichier['extension'], array('jpg', 'jpeg', 'gif', 'png'))) {
// On peut valider le fichier et le stocker définitivement
$nom = md5(uniqid("produit_", true));
$name = "photo/".str_replace(' ','',$nom);
if (move_uploaded_file($_FILES['image'.$i]['tmp_name'], $name)) {
//Sauvegarde des noms pour la requête SQL
$imagesPourBD[] = $nom;
echo "Image transféré sur le serveur";
/*
* A partir de là on peut traiter le SQL
*/
} else {
echo 'echec transfert image sur le serveur';
}
} else {
echo '<br/>Les extensions valides sont: "jpg","jpeg","gif" et "png"';
}
} else {
echo '<br/>Votre fichier est trop gros => 1000 000 octets max';
}
} else {
echo 'Aucune image numéro '.$i.' n\'a été chargée';
}
}
if (sizeof($imagesPourBD) > 0) {
/*
* Pour simplifier je mets tout dans le try / catch
*/
try{
// Connexion à la base de données
$bdd = new PDO('mysql:host=xxxxx;dbname=xxxx', 'xxxx', 'xxx',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$requete = "INSERT INTO fiche_voiture (id_membre, titre, prix, message, marque, telephone, image1, image2, image3)";
$requete .= " VALUES ";
$requete .= " VALUES (:id_membre, :titre, :prix, :message, :marque, :telephone, :image1, :image2, :image3)";
$stmt = $bdd->prepare($requete);
$stmt->bindValue('id_membre',$_SESSION['id']); //ID MEMBRE contenu en session
$stmt->bindValue('titre',$_POST['titre']);
$stmt->bindValue('prix',$_POST['prix']);
$stmt->bindValue('message',$_POST['message']);
$stmt->bindValue('marque',$_POST['marque']);
$stmt->bindValue('telephone',$_POST['telephone']);
for ($i=1; $i<4;$i++) {
$stmt->bindValue('image'.$i,$imagesPourBD[$i]);
}
if (!$stmt->execute()) {
echo '<br/>Erreur execute INSERT';
} else {
//OK
echo '<br/>Insertion en base OK';
}
} catch (PDOException $pdoE) {
echo 'Connexion impossible: '.$pdoE->getMessage();
}
}
?>[/php]
Je commence a désespérer après plusieurs jours bloquer sur ce problème et en ayant fait plusieurs modification possible, sans avoir aucuns résultat.. La valeur de la SESSION ne s'incrémente jamais à la table dans l'espace id_membre..
J’espère avoir été assez compréhensible, et vous remercie d'avance pour votre aide !!