The post registration code is this:
<?php
if(isset($_POST['cadastrar'])){
$titulo = trim(strip_tags($_POST['titulo']));
$data = trim(strip_tags($_POST['data']));
$descricao = $_POST['descricao'];
$exibir = trim(strip_tags($_POST['exibir']));
//INFO IMAGEM
$file = $_FILES['img'];
$numFile = count(array_filter($file['name']));
//PASTA
$folder = '../upload/postagens/';
//REQUISITOS
$permite = array('image/jpeg', 'image/png');
$maxSize = 1024 * 1024 * 5;
//MENSAGENS
$msg = array();
$errorMsg = array(
1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
3 => 'o upload do arquivo foi feito parcialmente',
4 => 'Não foi feito o upload do arquivo'
);
if($numFile <= 0){
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Selecione uma imagem e tente novamente!
</div>';
}
else if($numFile >=2){
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Você ultrapassou o limite de upload. Selecione apenas uma foto e tente novamente!
</div>';
}else{
for($i = 0; $i < $numFile; $i++){
$name = $file['name'][$i];
$type = $file['type'][$i];
$size = $file['size'][$i];
$error = $file['error'][$i];
$tmp = $file['tmp_name'][$i];
$extensao = @end(explode('.', $name));
$novoNome = rand().".$extensao";
if($error != 0)
echo $msg[] = "<b>$name :</b> ".$errorMsg[$error];
else if(!in_array($type, $permite))
echo $msg[] = "<b>$name :</b> Erro imagem não suportada!";
else if($size > $maxSize)
echo $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";
else{
if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){
$insert = "INSERT into tb_postagens (titulo, data, imagem, descricao, exibir) VALUES (:titulo, :data, :imagem, :descricao, :exibir)";
try{
$result = $conexao->prepare($insert);
$result->bindParam(':titulo', $titulo, PDO::PARAM_STR);
$result->bindParam(':data', $data, PDO::PARAM_STR);
$result->bindParam(':imagem', $novoNome, PDO::PARAM_STR);
$result->bindParam(':descricao', $descricao, PDO::PARAM_STR);
$result->bindParam(':exibir', $exibir, PDO::PARAM_STR);
$result->execute();
$contar = $result->rowCount();
if($contar>0){
echo '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Sucesso!</strong> O post foi cadastrado.
</div>';
}else{
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erro ao cadastrar!</strong> Não foi possível cadastrar o post.
</div>';
}
}catch(PDOException $e){
echo $e;
}
}else
$msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
}
foreach($msg as $pop)
echo '';
//echo $pop.'<br>';
}
}
}
?>
The form to register the post is this:
<div class="w3-card-4 w3-margin w3-white">
<div class="w3-container" style="padding-top: 20px; padding-left: 20px;">
<h2><b> Adicionar Post </b></h2><br>
<div class="tab-pane" id="formcontrols">
<form id="edit-profile" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
</div>
<div class="w3-container" style="padding-left: 20px;">
<p>
<label>Título</label> <br>
<input style="width: 300px; height: 40px; border-top: 1px; border-left: 1px; border-right: 1px; border-color: lightgray;"
type="text" name="titulo" placeholder="Digite o título" id="titulo" required>
</p>
</div>
<div class="w3-container" style="padding-left: 20px;">
<p>
<label>Data</label> <br>
<input style="width: 120px; height: 40px; height: 40px; border-top: 1px; border-left: 1px; border-right: 1px; border-color: lightgray;" type="text" name="data" id="data" placeholder="dd/mm/aaaa"
maxlength="10" onkeypress="mascaraData( this, event )" required>
</p>
</div>
<div class="w3-container" style="padding-left: 20px;">
<p>
<label>Imagem</label> <br>
<input style="padding-top: 10px;" type="file" id="imagem" name="img[]" required>
</p>
</div>
<?php if($nivelLogado == 1) { ?>
<div class="w3-container" style="padding-left: 20px;">
<p>
<label>Exibir</label> <br>
<select style="width: 80px; height: 35px;" id="exibir" name="exibir">
<option>Sim</option>
<option>Não</option>
</select>
</p>
</div>
<?php } ?>
<div class="w3-container" style="padding-left: 20px;">
<p>
<textarea style="width: 1000px;" name="descricao" id="descricao" rows="15"></textarea>
</p>
</div>
<div class="w3-container" style="padding-left: 20px;">
<table>
<tr>
<td style="padding-bottom: 30px;">
<p><input style="width:100px; height:40px; background:#333; color:white; border:none;"
type="reset" name="cancelar" value="Cancelar" class="w3-button w3-black w3-section"/></p>
</td>
<td style="padding-bottom: 30px; padding-left: 10px;">
<p><input style="width:100px; height:40px; background:#333; color:white; border:none;"
type="submit" name="cadastrar" value="Salvar" class="w3-button w3-black w3-section"/></p>
</td>
</tr>
</table>
</div>
<div class="w3-container" style="padding-left: 20px;">
</form>
</div> <!-- /widget-content -->
</div> <!-- /widget -->
</div><!-- span 12 -->
</div><!-- row -->
</div>
<!-- /span6 -->
</div>
<!-- /row -->
</div>
<!-- /container -->
</div>
<!-- /main-inner -->
</div>
<!-- /main -->
</div>
</div>
</div>
</div>
<script type="text/javascript" src="editor/nicEdit.js"></script>
<script type="text/javascript"> bkLib.onDomLoaded(function() { nicEditors.allTextAreas() }); </script>
<script type="text/javascript">
function mascaraData( campo, e )
{
var kC = (document.all) ? event.keyCode : e.keyCode;
var data = campo.value;
if( kC!=8 && kC!=46 )
{
if( data.length==2 )
{
campo.value = data += '/';
}
else if( data.length==5 )
{
campo.value = data += '/';
}
else
campo.value = data;
}
}
</script>
But descricao
is not being saved to the database.
Note: I have other registration systems: login, comments, etc. and are working correctly.