PHP Undefined index error $_FILES?

Je suis nouveau sur le PHP et je suis en suivant un tutoriel sur YouTube. J'ai tout qui fonctionne dans ce fichier, sauf pour le téléchargement du fichier, toute aide serait appréciée. Voici l'erreur que j'obtiens:

*NOTE: j'ai cherché de nombreuses fois, mais ne pouvait pas trouver undefined index erreur pertinents de la variable $_FILES...

Notice: Undefined index: avatar dans /Applications/xxx sur la ligne 95

Notice: Undefined index: avatar dans /Applications/xxx sur la ligne 96

Notice: Undefined index: avatar dans /Applications/xxx sur la ligne 97

Notice: Undefined index: avatar dans /Applications/xxx sur la ligne 98

Désolé pour ce si c'est une solution simple...

            <?php $title = "Register";?>
<?php require ("styles/top.php") ; ?>           
<?php //de-bugging remove this after script works as desired>
error_reporting(E_ALL);
ini_set("display_errors", 1); 
//end de-bugging//
$form = "<form action='register.php' method='post'>
<table cellspacing='5px'>
<tr>
<td></td>
<td><font color='red'>*</font> are required fields.</td>
</tr>
<tr>
<td>First Name:</td>
<td><input type='text' name='firstname' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type='text' name='lastname' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Username:</td>
<td><input type='text' name='username' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Email:</td>
<td><input type='text' name='email' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='password' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Confirm Password:</td>
<td><input type='password' name='repassword' class='textbox'><font color='red'> *</font></td>
</tr>
<tr>
<td>Profile Picture:</td>
<td><input name='avatar' type='file' ></td>
</tr>
<tr>
<td>Profile Message:</td>
<td><textarea name='bio' cols='35' rows='5' class='textbox'></textarea></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name='submitbtn' value='Submit' class='button'></td>
</tr>
</table>
</form>";
if ($_POST['submitbtn']) {
$firstname = strip_tags($_POST['firstname']);
$lastname = strip_tags($_POST['lastname']);
$username = strip_tags($_POST['username']);
$email = strip_tags($_POST['email']);
$class = ($_POST['class']);
$password = strip_tags($_POST['password']);
$repassword = strip_tags($_POST['repassword']);
$bio = strip_tags($_POST['bio']);
//AVATAR UPLOAD
$name = $_FILES['avatar'] ['name'];
$type = $_FILES['avatar'] ['type'];
$size = $_FILES['avatar'] ['size'];
$tmpname = $_FILES['avatar'] ['tmpname'];
$ext = substr($name, strrpos($name, '.'));
if ($firstname && $lastname && $username && $email && $password && $repassword) {
if ($password == $repassword) {
if (strstr($email, "@") && strstr($email, ".") && strlen($email) >= 6) {
require("scripts/connect.php");
$query = mysql_query("SELECT * FROM users WHERE username ='$username'");
$numrows = mysql_num_rows($query);
if ($numrows == 0) {
$query = mysql_query("SELECT * FROM users WHERE email ='$email'");
$numrows = mysql_num_rows($query);
if ($numrows == 0) {
$pass = (md5(md5($password)));
$date = date("F j, Y");
if($name){
move_uploaded_file($tmpname, "avatars/$username.$ext");
$avatar = "$username.$ext";
}
else
$avatar = "default_avatar.png";
$code = substr(md5(rand(111111111111, 99999999999999999)), 2, 25);  
mysql_query("INSERT INTO users VALUES ('', '$firstname', '$lastname', '$username', '$email', '$pass', '$avatar', '$bio', '', '', '$code', '', '$date')"); 
$webmaster = "xxxx";
$subject = "xxxx";
$headers = "From:xxx<$webmaster>";
$message = "xxx";
mail($email, $subject, $message, $headers);
echo "xxx";
}
else
echo "That email is already taken. $form";
}
else
echo "That username is already taken. $form";
}
else
echo "You did not enter a valid email. $form";
}
else
echo "Your passwords did not match. $form";
}
else
echo "You did not fill in all of the required fields. $form";
}
else
echo "$form";
?>
</div>
<?php require ("styles/bottom.php") ; ?>
var_dump($_FILES); Et toujours l'utilisation var_dump(); pour voir ce qui est à l'intérieur de la variable
Sur une note de côté, je trouve bizarre la façon dont vous l'emballage de tous vos données de vérification à l'intérieur de l'un récursif if déclaration. Qu'advient-il si le nom d'utilisateur est déjà pris ET l'utilisateur entre dans un e-mail non valide? Ne serait-il pas gentil de leur faire savoir TOUS les erreurs à la fois de sorte qu'ils n'ont pas de fixer un à la fois? Personnellement, j'ajoute tous mes erreurs dans un tableau, comme $err[] = 'username empty' ensuite il suffit de vérifier si $err isset plus bas, et une boucle par elle en montrant toutes les erreurs.
Merci pour la suggestion. Maintenant, je ne suis pas assez avancé, mais je vais essayer de le faire dans l'avenir.

OriginalL'auteur mais-oui | 2012-06-26