Problème d'insertion
- Accueil
- Forum
- Programmation
- PHP
- Problème d'insertion
Rivens Le 7 février 2017 à 15:49 (Édité le 25 janvier 2019 à 17:53)
Mon code :
<?php
session_start();
setlocale(LC_TIME, 'fr');
require_once('../php/bdd.php');
require_once('../php/getip.php');
if (isset($_POST['envoyer'])) {
if(!empty($_POST['article_titre']) AND !empty($_POST['article_contenu'])){
$article_titre = htmlspecialchars($_POST['article_titre']);
$article_contenu = htmlspecialchars($_POST['article_contenu']);
$article_position = htmlspecialchars($_POST['position']);
$eleve = htmlspecialchars($_POST['eleve']);
$present = htmlspecialchars($_POST['check']);
$lien = htmlspecialchars($_POST['lien']);
$time = ucfirst(strftime('%A %d %B %Y à %H:%M'));
$ins = $bdd->prepare('INSERT INTO article(titre, contenu, eleve, date_time_publication, position, herelink, link) VALUES (?, ?, ?, ?, ?, ?, ?)');
$ins->execute(array($article_titre, $article_contenu, $eleve, $time, $article_position, $present, $lien));
if (isset($ins)) {
$lastid = $bdd->lastInsertId();
header('Location: ../article.php?ip='.$getip.'&id='.$lastid);
}else{
$error = "Article n'a pas été posté";
}
if(isset($_FILES['miniature']) AND !empty($_FILES['miniature']['name'])){
if (exif_imagetype($_FILES['miniature']['tmp_name']) == 2) {
$chemin = '../miniature/'.$lastid.'.jpg';
move_uploaded_file($_FILES['miniature']['tmp_name'], $chemin);
}else{
$message = "Votre image doit être au format jpg";
}
}
$message = 'Vottre article a bien était poster';
}else{
$message = 'Veuillez remplir tous les champs';
}
}
$getiv = 2121;
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ARTICLE</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700" rel="stylesheet" type="text/css" />
<link href="../default.css" rel="stylesheet" type="text/css" media="all" />
<link href="../style.css" rel="stylesheet" type="text/css" media="all" />
<link rel="icon" type="image/icon" href="../images/favico.ico">
<body>
<div id="wrapper">
<div id="menu">
<?php
require_once('../menu/menuf.php');
?> </div>
<div id="banner"><img src="../images/header-image-bg.jpg" width="1200" height="400" alt="" /></div>
<div id="three-columns">
<div class="content">
<div id="column1">
<ul class="list-style2">
<form method="POST" enctype="multipart/form-data">
<input type="text" placeholder="Titre" name="article_titre">
<textarea placeholder="Votre Article" name="article_contenu" style="margin: 0px; height: 227px; width: 473px;"></textarea>
<label for="eleve">L'article sera poster par : </label><br>
<div class="select">
<input type="radio" name="eleve" value="1">Carla<br>
<input type="radio" name="eleve" value="2">Otilia<br>
<input type="radio" name="eleve" value="3">Jeffrey<br>
<input type="radio" name="eleve" value="4">Noemie<br>
<input type="radio" name="eleve" value="5">Gwenaelle<br>
<input type="radio" name="eleve" value="6">Toute l'équipe<br><br><br>
</div>
<label for="position">L'image sera :</label><br>
<select name="position" value="position">
<option value="1">Avant l'article</option>
<option value="2">Après l'article</option>
<option value="3">Pas d'image</option>
</select><br><br>
<input type="file" name="miniature" /><br><br>
<label for="check">Il ya a t'il une video?</label><br>
oui <input type="radio" name="check" value="1">
non <input type="radio" name="check" value="2"><br><br>
<input type="url" name="lien" placeholder="lien de la video"><br>
<input type="submit" name="envoyer" value="POSTER"><br><br><br><br>
</form>
</br>
<?php if(isset($error)) { echo $error;} ?>
</li>
</ul>
</div>
</div>
</div>
</div>
<div id="footer">
<?php require_once('../name.php'); ?>
</div>
</body>
</html>
Balatharas Le 7 février 2017 à 18:41 (Édité le 7 février 2017 à 18:42)
Revois ton indentation (ou arborescence comme tu veux) et dans ton fichier bdd.php rajoute ceci:
<?php
try {
// ********************************************************
// TA CONNEXION A TA BASE DE DONNÉES ICI !
// ********************************************************
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die('Erreur :' . $e->getMessage());
}
?>
Rivens Le 7 février 2017 à 20:44 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 8 février 2017 à 16:20 (Édité le 8 février 2017 à 16:21)
Un jour tu auras une erreur de condition a cause d'une accolade en trop/manquante ou d'un point-virgule manquant et tout ça parce que tu ne pourras pas te retrouver dans ton code à cause de ton indentation ;)
Libre à toi de la laisser comme ça ^^
TheOldNoob Le 8 février 2017 à 22:07 (Édité le 1 janvier 1970 à 01:00)
Je confirme, indentation pas terrible 😀
Particulièrement pour le php.
Et j'ajouterais aussi pour faire mon relou, qu'il faut mettre des commentaire... c'est mieux pour savoir ou fini une condition.