Help in my PHP Form

Asked

Viewed 71 times

-2

I’m trying to make a form, where I can send files and texts, but I want there to be only one send button to send both the files and the text. What happens is that I can send, but only send either the text or the files, each at once. I’m a beginner, like, doing Ctrlc+Ctrlv. Follow my codes I’ve made so far:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <?php
    date_default_timezone_set('America/Sao_Paulo');
    $ip = $_SERVER['REMOTE_ADDR'];
    $data = date("d/m/Y H:i:s");

    if($file = fopen("ips.txt","a+")){
        fputs($file,"O dia e hora da visita foi: ".$data." e o ip do 
    visitante é: ".$ip. "\n");
        }else{
        $file = fopen("ips.txt","a+");
    }        

    fclose($file);

    ?>

    <center>

    <form method="post" action="recebe_upload.php" enctype="multipart/form-data">
    <h3 style="color:#FFFFFF;">        
    <label>Arquivo</label>
    <input type="file" name="arquivo" multiple />

    <input type="submit" value="Enviar" />

    </form>

  <form method="POST" action="recebe_upload.php">
  <p>
  <center>
  Caso queira escrever algo; Note que ENVIAR é para enviar 
  arquivos(foto,video...), e enviar texto envia 
  só o texto. Caso queira enviar um texto e arquivo, envie 
  cada um de uma vez. 
  Obrigado!

  </center><textarea name="" rows="100" cols="100">
  </textarea>
  <p><input type="submit" value="Enviar texto" name="B1">

  </form>
  </h3>
  </body>
  </html>

Now the file has received.php

  <?php

  $_UP['pasta'] = 'uploads/';

  $_UP['tamanho'] = 1024 * 1024 * 100; // 

  $_UP['extensoes'=['jpg','jpeg','png','gif','mp4','mp3','txt','apk','docx','doc'];


  $_UP['erros'][0] = 'Não houve erro';
  $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
  $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
  $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
  $_UP['erros'][4] = 'Não foi feito o upload do arquivo';

  if ($_FILES['arquivo']['error'] != 0) {
      die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['error']]);
  exit; }


  $nome_final = $_FILES['arquivo']['name'];


  if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
  echo "Upload efetuado com sucesso!"; 
  }     else {

  echo "Não foi possível enviar o arquivo, tente novamente";

  }

Now send it.php

          <?php 

          //Armazena os dados em strings

          $nome = $_POST['nome']; 

          //Cria um Arquivo

          $arquivo = 'texto.txt'; 

          $criar = fopen($arquivo, "a+"); 

          //Define o conteudo do arquivo 

          $conteudo = "O texto digitado foi: $nome \n "; 

          //Escreve no arquivo que foi criado 

          $escrever = fwrite($criar, $conteudo); 

          if($escrever == true){ echo "Texto enviado com sucesso"; } else { echo "Erro ao salvar dados em $arquivo"; 
          } ?>

Edit1: I know they are in different php’s, but I don’t know how to join them.

  • You are using two separate forms and these send out distant information. .

  • I don’t know how to do that

1 answer

0

A name has been given for the attribute name textarea:

<textarea name="MeuTextarea" rows="100" cols="100"></textarea>

File that sends - just one form

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
    date_default_timezone_set('America/Sao_Paulo');
    $ip = $_SERVER['REMOTE_ADDR'];
    $data = date("d/m/Y H:i:s");

    if($file = fopen("ips.txt","a+")){
        fputs($file,"O dia e hora da visita foi: ".$data." e o ip do 
    visitante é: ".$ip. "\n");
        }else{
        $file = fopen("ips.txt","a+");
    }        

    fclose($file);

    ?>

<center>

<form method="post" action="recebe_upload.php" enctype="multipart/form-data">
<h3 style="color:#FFFFFF;">        
<label>Arquivo</label>
<input type="file" name="arquivo" multiple />

<input type="submit" value="Enviar" />

<p>
<textarea name="MeuTextarea" rows="100" cols="100"></textarea>

<input type="submit" value="Enviar" />

</form>
</h3>
</body>
</html>

File it receives

  • That line has been corrected $_UP['extensoes'=['jpg',... which would generate a Parse error: syntax error, unexpected '=', expecting ']' Lack of ] before the sign of =
  • Recovers text typed in the form text area $MeuTextarea = $_POST['MeuTextarea'];

Fixed and unified file

$_UP['pasta'] = 'uploads/';

$_UP['tamanho'] = 1024 * 1024 * 100; // 

$_UP['extensoes']=['jpg','jpeg','png','gif','mp4','mp3','txt','apk','docx','doc'];

$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';

if ($_FILES['arquivo']['error'] != 0) {
  die("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['arquivo']['error']]);
exit; }

$nome_final = $_FILES['arquivo']['name'];

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
   echo "Upload efetuado com sucesso!"; 
}  else {
  echo "Não foi possível enviar o arquivo, tente novamente";
}

//Armazena os dados em strings

      $MeuTextarea = $_POST['MeuTextarea']; 

      //Cria um Arquivo

      $arquivo = 'texto.txt'; 

      $criar = fopen($arquivo, "a+"); 

      //Define o conteudo do arquivo 

      $conteudo = "O texto digitado foi: $MeuTextarea \n "; 

      //Escreve no arquivo que foi criado 

      $escrever = fwrite($criar, $conteudo); 

      if($escrever == true){ echo "Texto enviado com sucesso"; } else { echo "Erro ao salvar dados em $arquivo"; 
      } 
  • Thank you very much!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.