Ir para conteúdo

POWERED BY:

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 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.
    • Por celsomacarini
      Olá, estou com uma dúvida, como que eu faço para mandar a data e a hora atualizada para o meu banco? O código esta assim
      FUNÇÃO DE ADICIONAR
      public function adicionarSolicitacao($usuario = '', $assunto ='', $data ='', $hora ='') { if($this->existeEmail($email) == false) { $sql = "INSERT INTO solicitacao (usuario, assunto, data, hora) VALUES (:usuario, :assunto, :NOW(), :NOW())"; $sql = $this->pdo->prepare($sql); $sql->bindValue(':usuario', $usuario); $sql->bindValue(':assunto', $assunto); $sql->bindValue(':data', $data); $sql->bindValue(':hora', $hora); $sql->execute(); return true; } else { return false; } }
      ARQUIVO SUBMIT
       
      <?php include '../classes/ramal.class.php'; $contato = new Contato(); if(!empty($_POST['usuario'])){ $usuario = $_POST['usuario']; $assunto = $_POST['assunto']; $data = $_POST['data']; $hora = $_POST['hora']; $contato->adicionarSolicitacao($usuario, $assunto, $data, $hora); header("Location: index_servico.php"); }else{ header("Location: index_servico.php"); } ?> ARQUIVO DO FORMULÁRIO <div class="container"> <form name="formCadastro" method="POST" action="nova_solicitacao_submit.php"> <div class="form-row"> <div class="form-group col-md-6"> <fieldset disabled> <label for="inputEmail4">Nome do Usuário</label> <input type="text" class="form-control" name="usuario" value="<?php echo $_SESSION['usuarioNome']; ?>"> </div> </fieldset> <div class="form-group col-md-6"> <label for="inputState">Assunto</label> <select id="inputState" class="form-control" name="assunto"> <option selected>Impressoras</option> <option>EP-Específico Pormade</option> <option>Fluig</option> <option>Internet</option> <option>Logix</option> <option>Maker</option> <option>Office</option> <option>Inline</option> <option>Senhas</option> <option>SIMP</option> <option>Telefonia</option> <option>Terceiros</option> <option>Windows</option> <option>Backup</option> <option>CEDEPH</option> <option>Computadores</option> <option>CRM</option> <option>E-Mail</option> <option>Empréstimo de Equipamentos</option> <option>Formatação</option> <option>Outros</option> </select> </div> </div> <div class="input-group"> <div class="input-group-prepend"> <span class="input-group-text">Qual é o problema?</span> </div> <textarea class="form-control"></textarea> </div><br> <input class="btn btn-primary" type="submit" value="Enviar"> <a href="nova_solicitacao_submit.php" class="btn btn-info" role="button">Voltar</a> </div> </div> </form> </header> </body>  
    • Por adrianno
      Fala pessoal beleza?
      Tenho um problema para resolver,  tenho um sistema em PHP com MySQL, mas preciso melhorar a paginação,  tenho uma 2 lógicas de paginação em mente, uma delas é a que mais se encontra e videos, blogs, postagens  mostrando na web,
       
      onde damos um primeiro select CAMPO from TABELA, contamos  o resultado e temos o total de registros para tratar a quantidade de páginas, limite, quantidade que vai aparecer por página etc,  apos isso damos novamente o select CAMPOS from TABELA limite x, y  de acordo com o que obtivemos na lógica da paginação com a primeira SQL. esta lógica até que funciona, mas, não consegui aplicar ela usando JOIN  agrupando 2 ou mais tabelas, pois ai, eu teria  que fazer esta contagem  lá a primeira SQL, ou seja no fim, teria 2 SQL sendo executadas , uma mais rápida devido ao limit passado, mesmo assim ainda seriam 2 consultas.
      Outras lógica seria dar um SELECT count(CAMPO) from TABELA  seria uma SQL mais rápida,  mas...  se eu tiver um JOIN agrupando dados de uma tabela de categoria + produtos, eu teria que contar o resultado já agrupado das 2.
      Já pensei em executar a consulta normal, retornar o array dos dados, e depois paginar este array  com array_slice, e dividir ele de acordo com a quantidade de páginas e registros de cada.
      Já fiz paginação com JS/AJAX  mas mesmo assim, ainda preciso passar os dados totalizados, consigo uma boa visualização final na interface, mas por tras, sei que o processamento no MYSQL pesa
       
      Lembrando que em cada caso citado, cada vez que alteramos entre as páginas, é novamente executado os calculos.
       
      Alguem tem uma lógica bacana para paginação? de forma que nao fique pesado, lento em uma tabela muito grande?
       
       
       
       
       
       
       
    • Por zinleo1
      Galera, estou sofrendo com um problema ao editar a senha do aluno, alguém saberia ajudar com o motivo do erro? Tô precisando disso pra entregar a avaliação no curso urgentemente.
       
      Pag 1: Codigos -> areadoaluno.php
      <html>      <?php        session_start();    ?>     <head>         <title>Editar registro de aluno</title>         <meta charset='utf-8'/>        </head>     <body>             <form name="areadoaluno.php" method="POST" action="alterar_senha.php">                 <fieldset>                     <legend>bem vindo,<?php echo $_SESSION['logado']."!";?></legend>                     <?php  session_destroy(); ?>                 </fieldset>                 <input type="submit" name="editarsenha" value="Editar Senha">             </form>              </body> </html> Pag 2: Codigos -> Alterar_senha.php
      <html>     <head>         <title>Editando a senha do aluno</title>         <meta charset='utf-8'/>        </head>     <body> <?php     include('conexao.php');               $cod = $_GET['id'];          echo $cod;    echo "<b>Editando sua senha! ".$cod."</b></br></br>";     $query ="SELECT * FROM aluno WHERE cod_aluno = $cod";          $result = mysqli_query($con,$query);     if ($result->num_rows > 0) {         echo "<form method='post' action='alterar_senha_conf.php'>";         while($linha = mysqli_fetch_array($result)) {             echo "<label>Login:</label><input required type='text' name='login_aluno' readonly='readonly' value='".$linha["login_aluno"]."'></input><br>";             echo "<label>Senha:</label><input type='text' name='senha_aluno' value='".$linha["senha_aluno"]."'></input><br>";                          echo "<label>Código do aluno:</label><input  type='text' name='cod_aluno' readonly='readonly' value='".$linha["cod_aluno"]."'></input><br>";             echo "<input type='submit' value='salvar'></input>";         }             echo "</form>";     } else {         echo "<b class='erro'>Sem resultados para mostrar</b><br><br>";     } ?> </body> </html> Pag 3: Codigos -> Alterar_senha_conf.php 
      <html>     <head>         <title></title>         <meta charset='utf-8'/>     </head>     <body> <?php     include('conexao.php');     $login = $_POST['login_aluno'];     $senha = $_POST['senha_aluno'];     $cod = $_POST['cod_aluno'];     echo "Login: ".$login."</br>Senha: ".$senha."</br></br>";     $adc = "UPDATE aluno SET login_aluno='$login', senha_aluno='$senha' WHERE cod_aluno='$cod'";      $ins = mysqli_query($con,$adc);     if($ins)     {     echo "<b style='color:green'>Usuário editado com sucesso!</b> </br><a href='areadoaluno.php'>Voltar</a>";     }     else     {     echo "Erro </br><a href='areadoaluno.php'>Voltar</a>";     }           ?>     </body> </html>  
    • Por robertopr
      Prezados, bom dia,
       
      Por favor, uma dúvida:
      Para evitar usar o phpmyadmin, Heidi ou qualquer outro front-end, estou tentando fazer a importação de dados
      para a tabela direto pelo php.
      Já empaquei no básico, tentando usar o SQL:
      LOAD DATA LOCAL INFILE "C:/pasta/importa.txt" INTO TABLE `people` FIELDS TERMINATED BY ';' ENCLOSED BY '"' 
          LINES TERMINATED BY '\n' 
       
      Não localiza a pasta na minha máquina de jeito nenhum.
       
      Já tentei alterar as barras e aspas, mas não vai. Preciso matar esta questão para
      depois jogar no php.
       
      Obrigado.
×

Informação importante

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