ERROR when retrieving data from a form via $ _POST [] in PHP

1

I've created a simple form:

<form  action="php/cadastro.php" method="post" enctype="multipart/form-data">
    <fieldset>
        <legend>Autor:</legend>
        <input type="text" name="autor" placeholder="Informe seu nome" required="required">
    </fieldset>
    <fieldset>
        <legend>Título:</legend>
        <input type="text" name="titulo" placeholder="Informe um título para o post" required="required">
    </fieldset>
    <fieldset>
        <legend>Descrição:</legend>
        <p>
            <textarea name="materia" placeholder="Digite o poste aqui..." required="required"></textarea>
        </p>
    </fieldset>     
    <fieldset>     
        <legend>Imagem:</legend>
        <input type="file" name="foto" required="required">
    </fieldset>
    <fieldset>
        <input type="submit" value="Postar" class="botao">
        <input type="submit" value="Cancelar" class="botao">
    </fieldset>
</form>

However, at the time of retrieving the data for my script it presents the error:

  

Undefined index: photo in C: \ wamp \ www \ comicnews \ php \ cadastro.php on line 6

Output from var_dump :

array (size=3)
  'autor' => string 'Ademir Santos' (length=13)
  'titulo' => string 'Deadpool o maior heroi da terra' (length=31)
  'materia' => string 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tortor justo, elementum vel tincidunt vitae, ullamcorper sed dolor. Etiam leo sapien, faucibus sit amet porttitor non, fermentum vitae mi. Curabitur ac velit ut ante bibendum consequat a et sem. Quisque pellentesque libero lacus, sed finibus purus iaculis vel.' (length=325)

I notice that you are not finding the "photo" index in the $_POST['foto'] array, the question is why? How to solve?

Here's the PHP script:

<?php

include_once  'conexao.php';

$autor=$_POST['autor'];
$imagem= $_POST['foto'];
$titulo=$_POST['titulo'];
$materia= $_POST['materia'];


var_dump($_POST);   

//insere no BD os dados da matéria e do autor, assim também como o caminho da imagem que ele deseja publicas
$query= "insert into noticia(titulo, descricao, img, autor) values ('{$titulo}','{$materia}','wamp/www/comicsnews/imagens/.{$imagem}','{$autor}')";

//Executa a query e mostra o resultado
$resultado = mysqli_query($conexao, $query);

if($resultado){

    echo "sucesso";

}else{

    echo "<br>Não salvou". mysqli_error($conexao);
}

Thank you in advance for your help.

    
asked by anonymous 03.04.2017 / 16:05

1 answer

0

To send image files you need to change the FORM:

<!-- O tipo de encoding de dados, enctype, DEVE ser especificado abaixo --> 
<form  enctype="multipart/form-data"  action="__URL__" method="POST">

        Enviar esse arquivo: <input name="userfile" type="file" />
        <input type="submit" value="Enviar arquivo" /> </form>

Note that the form must have enctype enctype="multipart/form-data"

On the PHP side you access as follows: $_FILES[]

Further clarification access the following: link

    
03.04.2017 / 16:32