Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo2000

Problema a guardar os dados de uma textarea para o mysql

Recommended Posts

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>&nbsp;</span><input class="submit" type="submit" name="contact_submitted" value="Adicionar" /></p>
          </div>
        </form>
      </div>
    </div>
    <div id="footer">
      Copyright &copy; 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o formato/tamanho do campo resumos no banco?

 

Para retirar espaços, utilize str_replace().

 

Sugiro simplificar seu INSERT, ex:

$query = "INSERT INTO articles (artigo, data, id_users, resumo, titulo) VALUES ('$artigo', $data, $iduser, '$resumo', '$titulo')";
$con->query($query);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por gersonab
      Boa noite a todos, gostaria da ajuda de vcs, tenho um loop while dentro de uma janela modal, eu preciso q este seja dividido em duas colunas, pois esta ficando um pouco extenso, este lista opções que tenho no BD, fazendo os checkbox.
      estrutura .
      <div class="row"> <div class="col-md-12 ml-auto"> <label for="recipient-name" class="col-form-label">Opções:</label> <?php $curc4 = $pdo->query("SELECT * FROM opcoes ORDER BY opcao asc"); while ($lic4 = $curc4->fetch(PDO::FETCH_ASSOC)) { ?> <div class="checkbox-dark m-squar"> <input type="checkbox" name="opcao[]" id="opcao" value="<?php echo $lic4['opcao']; ?>"> <label class="mt-0" ><?php echo $lic4['opcao']; ?></label> </div> <?php } ?> </div> </div> no momento com 22 itens cadastrados, gostaria de mostrar duas colunas de 11 itens, desde já agradeço.
    • Por gersonab
      Boa tarde.
      estou com dificuldades para formar uma lógica, tenho um sistema onde faço o cadastro de parcelas conforme pedido pelo cliente, até aí sem problema, só que, só que se na hora o cliente resolver fazer à vista , eu não consigo editar, pois o número de parcelas seriam 0.
      <?php if(($parcpg === 0 ) || ( $parcpg === '')){ // caso não tenha parcela $valorparcelado = 0; } elseif (($jurospg === 0) || ($jurospg === '')){ // caso não tenha juros $valorparcelado = $valent / $parcpg; // caso parcela seja 0 ou nula dá erro aqui } else { $jurospg1 = $jurospg / 100; $nump = ($parcpg * 30); $nump4 = $nump + 30; $nump2 = $nump4 / 2; $nump22 = ($jurospg1 / 30) * $nump2; $valormedio = $nump22 * $valent; $valente = $valent + $valormedio; $valorparcelado = $valente / $parcpg;// caso parcela seja 0 ou nula dá erro aqui } ?> o erro só ocorre na edição.
       
    • Por gersonab
      Boa tarde
      tenho uma tabela com alguns itens e seus respectivos valores, preciso atualizar esses valores caso necessite.
      tipo:
      id - tip - descricao - valor
      1 -  1   - descrição - 2,00
      2 -  1   - descrição -12,00
      3 -  1   - descrição - 22,00
      4 -  2   - descrição - 2,00
      5 -  2   - descrição - 2,00
      6 -  2   - descrição - 2,00
       
      o  que eu quero fazer é atualizar conforme o tip , por exemplo , atualizar os valores do tip = 1 em 15%, assim ele atualizaria todos do tip 1 em 15%
    • Por gersonab
      utilizo um script para fazer upload de vários arquivos, só que agora foi solicitado para zipar o mesmo ao fazer o upload, pra ser sincero ja verifiquei vários tutoriais e não estou conseguindo.
      segue o script do upload funcionando sem o zip
       
      <?php if (!isset($_SESSION)) session_start(); require_once('config.php'); error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED); $idpr=$_POST['idpr']; $fotoprof=$_POST['fotoprof']; $foproc=$_POST['foproc']; $diretorio = "../files/"; $arquivo = $_FILES['foto']; for ($controle = 0; $controle < count($arquivo['name']); $controle++){ $nome = ($idpr."-P-".$arquivo['name'][$controle]); $values .= " ('{$nome}', '{$fotoprof}', '{$idpr}'),"; $destino = $diretorio."/".$idpr."-P-".$arquivo['name'][$controle]; move_uploaded_file($arquivo['tmp_name'][$controle], $destino); } $values=substr($values, 0, -1); $sql_fotos = "INSERT INTO fotos ( foto, fotoprof, fotoidpr ) VALUES $values"; //executa a query $executa = mysqli_query($con,$sql_fotos); ?> desde já agradeço qq ajuda.
    • Por Ross Risso
      Tenho uma tabela pedidos com o campo forma de pagamento -  formpag - ele é uma combox que o usuário escolhe se o pagamento vai ser em dinheiro ou ou depósito em banco, na hora de criar o pedido.
      Nessa tabela também existe o campo total. O que necessito é buscar em uma consulta o total de todos os pedidos e mostrar separadamente na mesma consulta o total em dinheiro e em depósito.
      $qr="SELECT dataped, formpag, total  FROM tblpedidos  GROUP BY MONTH(dataped)"; $sqli=mysqli_query($conn,$qr); while($ln = mysqli_fetch_assoc($sqli)){} Como faço para obter a soma de "total" quando? Exemplo:
      JANEIRO  quando formpag for dinheiro - total em dinheido - quando formpag for depósito - total em depósito.
      JANEIRO total em dinheiro $ 100,00 - total em depósito $ 50,00. E assim por diante: FEVEREIRO, MARÇO e etc.
      espero ter sido claro. Agradeço a atenção de todos.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.