Problema a guardar os dados de uma textarea para o mysql
Bom dia,
Tenho estado a criar uma base dados onde vou inserir um conjunto de elementos de uma textarea.
Quando o texto é curto, facilmente passa para a base de dados, no caso de ser longo não passa nada.
O problema é claramente as variáveis, na base de dados já alterei o tamanho dos campos, mas resolveu o
problema.
Alguem tem uma ideia de como posso resolver o problema.
Envio o código fonte da página de entrada de dados.
Tenho igualmente um problema que ainda nem percebi o que se passa.
O texto quando carregado na textarea e input aparece com espaços, como é que os posso
eliminar.
Sem mais
Rodrigo Lourenço
<!DOCTYPE HTML>
<html>
<head>
<title>Adiciona Artigo</title>
<meta name="description" content="website description" />
<meta name="keywords" content="website keywords, website keywords" />
<meta http-equiv="content-type" content="text/html; charset=windows-1252" />
<link rel="stylesheet" type="text/css" href="style/style.css" title="style" />
</head>
<body>
<?php
//começa por verificar a sessão, caso não esteja activa envia para a página inicial.
require("livraria.php");
session_start();
$validacao = array();
$login = 0;
if (isset($_SESSION['login']) && isset($_SESSION["sessionmaxtime"])){
$login = $_SESSION['login'];
}
if ($login == 0)
echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
else{
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$validacao = validarAdd();
}
}
?>
<div id="main">
<div id="header">
<div id="logo">
<div id="logo_text">
<!-- class="logo_colour", allows you to change the colour of the text -->
<h1><a href="index.php">Livro<span class="logo_colour">Aberto</span></a></h1>
<h2>Um lugar onde se lê e fala de livros.</h2>
</div>
</div>
<div id="menubar">
<ul id="menu">
<!-- put class="selected" in the li tag for the selected page - to highlight which page you're on -->
<li><a href="index.php">Home</a></li>
<li class="selected"><a href="add.php">Criar</a></li>
<li><a href="apagar.php">Apagar</a></li>
<li><a href="alterar.php">Alterar</a></li>
<li><a href="gerir.php">Utilizadores</a></li>
<li><a href="sair.php">Sair</a></li>
<?php
echo "<li><a href=\"#\"> ".$_SESSION["utilizador"]."</a></li>";
?>
</ul>
</div>
</div>
<div id="site_content">
<div class="sidebar">
<!-- insert your sidebar items here -->
<h3>Livros em Revista</h3>
<p>Use o formulário para inserir um novo artigo.</p>
<p>
Os campos abaixo mencionados são preenchidos automáticamente.
<ul>
<li> Autor </li>
<li> Data </li>
</ul>
</p>
<p></p>
<h3>Sites Uteis</h3>
<ul>
<li><a href="#">link 1</a></li>
<li><a href="#">link 2</a></li>
<li><a href="#">link 3</a></li>
<li><a href="#">link 4</a></li>
</ul>
</div>
<div id="content">
<!-- insert the page content here -->
<h1>Novo Registo</h1>
<form action="#" method="post">
<div class="form_settings">
<p><span>Titulo
<?php
if ($_POST && in_array("titulo",$validacao))
echo "(Obrigatório)";
?></span><input class="contact" type="text" name="titulo" value="
<?php
if($_POST && (count($validacao) > 0))
if(!empty($_POST["titulo"]))
echo $_POST["titulo"];
?>
" /></p>
<p><span>Autor</span><input class="contact" type="text" name="autor" readonly="true" value="
<?php
echo $_SESSION["utilizador"];
?>" /></p>
<p><span>Artigo
<?php
if ($_POST && in_array("artigo",$validacao))
echo "(Obrigatório)";
?>
</span><textarea class="contact textarea" rows="20" cols="50" name="artigo">
<?php
//echo $_POST["artigo"];
if($_POST && (count($validacao) > 0))
if(!in_array("artigo",$validacao))
echo $_POST["artigo"];
?>
</textarea></textarea></p>
<p><span>Resumo
<?php
if ($_POST && in_array("resumo",$validacao))
echo "(Obrigatório)";
?>
</span><textarea class="contact textarea" rows="4" cols="50" name="resumo">
<?php
if($_POST && (count($validacao) > 0))
if(!in_array("resumo",$validacao) )
echo $_POST["resumo"];
?>
</textarea></textarea></p>
<p><span>Data</span><input class="contact" type="date" name="data" readonly="true" value="<?php
date_default_timezone_set('Europe/Lisbon');
echo date('Y-m-d');
?>" /></p>
<p style="padding-top: 15px"><span> </span><input class="submit" type="submit" name="contact_submitted" value="Adicionar" /></p>
</div>
</form>
</div>
</div>
<div id="footer">
Copyright © textured_blue | <a href="http://validator.w3.org/check?uri=referer">HTML5</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> | <a href="http://www.html5webtemplates.co.uk">Free CSS Templates</a>
</div>
</div>
<?php
//Uso da base de dados.
$servername = "localhost";
$username = "root";
$password = ""; //campo a ser mudado consoante a password da base de dados.
$dbname = "bdbooks";
// Create connection
$con = new mysqli($servername, $username, $password, $dbname);
//Verifica se houve erro ao aceder à base de dados
if ($con->connect_errno!=0){
echo "Ocorreu um erro de ligação à base de dados.".$con->connect_errno;
exit;
}
//Só quando não houverem elementos na $validação é que se pode avançar.
if(($_POST) && (count($validacao) == 0)){
//Inserção dos dados na base de dados.
//Usando antes o metodo query que usa a sintaxe mysql directamente.
//Tratamento das variáveis para evitar problemas de injecção de SQL.
$titulo = htmlentities(htmlspecialchars($_POST["titulo"]),ENT_QUOTES);
$artigo = htmlentities(htmlspecialchars($_POST["artigo"]),ENT_QUOTES);
$resumo = htmlentities(htmlspecialchars($_POST["resumo"]),ENT_QUOTES);
//Os campos pré preenchidos
$iduser = $_SESSION["userid"];
$data = $_POST["data"];
//Segundo construção da string para introdução dos dados SQL.
$query = "INSERT INTO articles (artigo, data, id_users, resumo, titulo) VALUES(";
//Introdução dos dados na string.
$query = $query. "\"".$artigo."\",";
$query = $query. "\"".$data."\",";
$query = $query. "\"".$iduser."\",";
$query = $query. "\"".$resumo."\",";
$query = $query. "\"".$titulo."\");";
//realização da query
$con->query($query);
//Depois de utilizar os dados temos que os apagar.
unset($_POST);
} //Fim do if
?>
</body>
</html>Discussão (1)
Carregando comentários...