Ik ben bezig met een website en daar wil ik een foto in uploaden. Ik ben al aardig ver met de code ik blijf alleen een undefined index fout krijgen. Is er iemand die mij hier mee kan helpen? de volgende foutcodes krijg ik:

Notice: Undefined index: foto in C:\xampp\htdocs\website\auto-voegtoe.php on line 101

Notice: Undefined index: foto in C:\xampp\htdocs\website\auto-voegtoe.php on line 102

Notice: Undefined index: foto in C:\xampp\htdocs\website\auto-voegtoe.php on line 103

Notice: Undefined index: foto in C:\xampp\htdocs\website\auto-voegtoe.php on line 104

Notice: Undefined index: foto in C:\xampp\htdocs\website\auto-voegtoe.php on line 105

Dit is mijn code:

<?php

// Is er op de verzendbutton gedrukt?

if (isset($_POST ['auto-voegtoe-submit']))

{
// Post variabelen
$auto_naam = $_POST ['naam'];
$auto_omschrijving = $_POST ['omschrijving'];
$auto_prijs = $_POST ['prijs'];

// Verwerk upload image
$errors = array(); //Fouten array
$foto_naam = $_FILES ['foto']['name'];
$foto_grootte = $_FILES ['foto']['size'];
$foto_tmp = $_FILES ['foto']['tmp_name']; //Tijdelijke opslag op webserver
$foto_type = $_FILES ['foto']['type'];
$foto_ext = strtolower (end (explode ('.', $_FILES ['foto']['name'])));

//toegestane bestandsextensies

$extensions = array ('jpeg', 'jpg', 'png');

//Check bestandsextensies
if ( in_array($foto_ext, $extensions) === false )
{
$errors[] ='Extensie niet toegestaan alleen JPEG of PNG.' ;
}

// Check bestandsgrootte
if ($foto_grootte >= 2097152)
{
$errors[] ='Bestand mag niet groter zijn dan 2MB.' ;
}
// Check of fouten aanwezig zijn
if ( empty($errors) === true)
{
// Maak images directory getcwd() = get current working directory
$foto_dir = getcwd() . '/autos/';

//Verplaats van tijdelijke opslag op server
// naar definitieve directory met juiste naam
move_uploaded_file ($foto_tmp, $foto_dir . $foto_naam) ;

// CHECK NU OP MYSQL
if (FALSE !== ($db_connect =@mysql_connect('127.0.0.1', 'root','')) || die (mysql_error() ) )
// Functie die() stopt uitvoer script als connectie met server mislukt
{
// CHECK NU OP DATABASE

if (FALSE !== @mysql_select_db ('autobedrijf')
|| die(mysql_error() )
){

//succesvolle connectie met database, maak nu de SQL query
$query = "
INSERT INTO auto (naam, omschrijving, prijs, foto)
VALUES ('$auto_naam','$auto_omschrijving', $auto_prijs,'./images/$foto_naam'); " ;

//Voer de MySQL query uit
if ( FALSE !== @mysql_query($query) || die(mysql_error())
)
{ // echo '<p> Gegevens succesvol in de database ingevoerd! </h3>'; //Klaar

header ("Location: index.php");
}

}
}
}
}










?>
print_r($_FILES);

Wat krijg je dan?
waar moet ik die dan neerzetten?
Bij regel 15 in .bovenstaand.
dan krijg ik een array fout
Array ( )
Dan is of de name fout of je form mist enctype.
Dit is mijn form

   <div id="content">
 <h1>Auto toevoegen</h1> 
<form method="post" action="auto-voegtoe.php"> 
    <p> 
        <label for="naam">Model: </label> 
        <p>
        <input type="text" 
               placeholder="Voer modelnaam in" 
               name="naam" 
               id="naam" 
               required /> 
        </p>    
    </p> 
    <p> 
        <label      for="omschrijving">Omschrijving: </label> 
       <p>
        <textarea   type="text" 
                    rows="4"
                    cols="50"
                    placeholder="Zet hier een omschrijving neer"
                    name="omschrijving" 
                    id="omschrijving" 
                  required ></textarea>
        </p>   
    </p> 
    <p> 
        <label for="prijs">Prijs: </label> 
        <p>
        <input type="number"
               placeholder="Voer hier een prijs in"
               name="prijs" 
               id="prijs" 
               required /> 
        </p>    
    </p> 
    <p> 
        <label for="foto">Foto: </label>
        <p>
        <input type="file" 
               name="foto" 
               id="foto" /> 
        </p>    
    </p> 
    
    <p> 
        <button name="auto-voegtoe-submit">Auto Toevoegen</button> 
    </p> 
</form> 

Je form mist dus enctype.
<form method="post" action="auto-voegtoe.php" enctype="multipart/form-data">

volgens mij is het inderdaad de enctype. deze heb ik zojuist toegevoegd en nu stuurt die hem door. Hartstikke bedankt!
Waarom gebruik je nog de oude mysql-functies i.pv. PDO of MySQLi? Als je hosting je site overzet naar PHP7 zal je site plat liggen.

Verder hoort er een exit(); na je location-header, en wil je juist geen fouten tonen met die(). Waarom moet je script dan zo rigoreus dood gaan?
dit komt omdat dit een odpracht voor school is. De leraren kunnen mij niet verder helpen omdat ik dit in mijn eigen tijd thuis aan het doen ben en ik graag verder wil. De code die ik gebruik is code die ik van school heb gekregen. Deze site hoeft niet online of iets dergelijks. Nu heb ik wel nog weer een volgende vraag:

Ik ben bezig met het laten weergeven wat hij dus in de vraag van gister in de database zette. Daar zie je de code zo van. Nu heb ik het probleem dat die het plaatje niet weergeeft en deze tekst laat zien in de tabel: style='font-size: 30px'> Merk:

Dit doet die bij alles wat die ophaalt. Wat doe ik hier precies verkeerd?

Code:

<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Teradruk BV.</title>
    <link rel="stylesheet" type="text/css" href="home.css">
</head>
<body>

    <div id="header"></div>
    <div id="menu">
        <?php
   if (isset($_SESSION["functie"])){     
        if ($_SESSION["functie"] == 2){
            echo "Welkom ". $_SESSION['naam'] ." | ";
            echo "<a href='index.php'>Home</a> | ";
            echo "<a href='auto-voegtoe.php'>Auto toevoegen</a> | ";
            echo "<a href='uitloggen.php'>Uitloggen</a>";
        }
        else {
            header("location: uitloggen.php");
        }
        
    }
   
?>        
    </div> 
    
    <div id="content">
 <h1>Advertentie</h1> 

        <?php
//  pagina voor de bewerking van de auto gegevens in de database




$connection = mysql_connect('127.0.0.1', 'root', ''); //The Blank string is the password
mysql_select_db('autobedrijf');
$query = "SELECT * FROM auto";
$result = mysql_query($query);


echo "<div class='auto-update-container'>" ;
echo "<table>";

while($row = mysql_fetch_array($result) ) {
    
   // $foto_path = $row ['foto'];
    
    echo 
        "<tr><td>" 
        . "<p> style='font-size: 30px'> Merk: </p> " . " " 
        . $row ['naam'] 
         
        . "<p> style='font-size: 30px'> Beschrijving: </p> "
        . $row['omschrijving']

        . "</td><td>" 
        
        . "<p> style='font-size: 15px'> Prijs: </p> "
        . "<p> € </p>"
        . $row  ['prijs'] 
        . "</td><td>" 
        . '<img src=  "'. $row ['foto'] . '"  height="200" width="300" /> '

        
 
        . "</td> </tr>" 
        
        
        ;
        
}

  
echo "</table>";
echo  "</div>" ;

mysql_close();



?>

    
    </body>
</html>


Reageren