2
I’m developing a CMS where the user can insert articles and if he wants to upload an image to that same article, the text uploads work properly but the images don’t, the only thing that appears is the name of the image in the place where the image is supposed to appear, I followed the same logic I did for uploading text (articles).
PHP:
<?php
session_start();
include_once('../includes/connection.php');
if(isset($_SESSION['logged_in'])) {
// display add page
if (isset($_POST['title'], $_POST['content'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$image = $_FILES['image']['name'];
if (empty($title) || empty($content)) {
$error = 'Todos os campos têm de ser preenchidos!';
}
else {
$query = $pdo->prepare('INSERT INTO articles(article_title, article_content, article_img, article_timestamp) VAlUES (?, ?, ?, ?)');
$query->bindValue(1, $title);
$query->bindValue(2, $content);
$query->bindValue(3, $image);
$query->bindValue(4, time());
$query->execute();
header('Location:index.php');
}
}
}
else {
header('Location:index.php');
}
?>
<html>
<head>
<title>AdminPT</title>
<meta charset="UTF-8">
<link rel ="stylesheet" href="../assets/style.css"/>
</head>
<body>
<div class="container">
CMS
<br>
<h4 id ="add">Adicionar Artigo</h4>
<?php
if (isset($error)) { ?>
<small style="color:#aa0000"><?php echo $error; ?></small>
<?php } ?>
<form action="add.php" method="post" autocomplete="off" enctype="multipart/form-data">
<input id="title" type="text" name="title" placeholder="Título"/><br><br>
<textarea id="content" rows="15" placeholder="Conteúdo" name="content"></textarea>
<input type="file" name="image"/><br><br>
<input id="addBtn" type="submit" value="Adicionar Artigo"/>
</form>
<a id="back" href="../admin">← Voltar</a>
</div>
</body>
</html>
Display image (HTML display):
<div id="news">
<?php foreach ($articles as $article) { ?>
<div><h2><?php echo utf8_encode($article['article_title']); ?></h2><div id="newsImg"><?php echo $article['article_img']; ?></div><br><span id="date">Publicado
<?php
setlocale(LC_ALL, 'pt_BR.utf8', 'Portuguese_Brazil');
//setlocale(LC_ALL, NULL);
date_default_timezone_set('Europe/Lisbon');
$uppercaseMonth = ucfirst(gmstrftime('%B'));
echo utf8_encode(strftime( '%a, '.$uppercaseMonth.' %d de %Y'/* - %H:%M'*/, $article['article_timestamp']));
?></span><p><?php echo utf8_encode($article['article_content']); ?><br><br><span id="print"><a onclick="javascript:window.print();" href="#">Imprimir</a></span><span id="link"><a href="#">Enviar link</a></p></div>
<?php } ?>
</div>