Problème avec envoi de fichiers php

Bonjour, j'ai un petit problème avec un formulaire où l'utilisateur envoi des champs text mais aussi deux champs fichier. Donc j'ai codé normalement, mais apparement ca bug, puisque rien ne s'ajoute à ma BDD. Voici mon code :
if(isset($_POST['ajout_video']))
{
$query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error());

if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0)
{
$infosfichier = pathinfo($_FILES['img_video']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg');

if (in_array($extension_upload, $extensions_autorisees))
{
$nom = "videos/{$_POST[name_video]}.{$extension_upload}";
move_uploaded_file($_FILES['img_video']['tmp_name'],$nom);
mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'");
echo 'L\'ajout de l\'image a bien été effectuée !';

}
else
{
echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>';
}
}
if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0)
{
$infosfichier = pathinfo($_FILES['video']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('avi, wmv');

if (in_array($extension_upload, $extensions_autorisees))
{
$nom = "videos/{$_POST[name_video]}.{$extension_upload}";
move_uploaded_file($_FILES['video']['tmp_name'],$nom);
mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'");
echo 'L\'ajout de la vidéo a bien été effectuée !';

}
else
{
echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>';
}
}			
}

Merci.

14 réponses



  1. $nom = "videos/{$_POST[name_video]}.{$extension_upload}";

    Cette ligne me parait bizarre mets plutot:

    $nom = "videos/".$_POST[name_video].".".$extension_upload;
    


    idem qq lignes plus bas
    0
    1. Non, ca donne exactement le même résultat.
      0
      1. Quelqu'un peut m'aider ?
        0
        1. Quelqu'un peut m'aider ?
          0
          1. Voilà le code de mon formulaire, car je viens de remarquer qu'en fait, la partie qui traite l'envoi des fichiers n'est pas du tout appelée :
            <div style="float: left"><form action="" method="post" enctype="multipart/form-data">
            Nom : <input type="text" name="name_video" id="name_video" />
            Description : <textarea name="descr_video" id="descr_video"></textarea>
            Image (50Ko, 200px*200px) : <input type="file" name="img_video" id="img_video" />
            Vidéo : <input type="file" name="video" id="video" />
            <input type="submit" name="ajout_video_episode" id="ajout_video_episode" /></form></div>
            


            Merci.
            0
            1. <form action="" method="post" enctype="multipart/form-data">


              il faut preciser par action="...." la page appelée, c a d le script qui traite l'upload
              0
              1. Quelqu'un peut m'aider s'il vous plait ? Le problème vient surement du formulaire.
                0
                1. donnes le code complet de ton formulaire, et le nom du script appelé, celui qui traite de l'enregistrement
                  0
                  1. if(isset($_POST['ajout_video_episode']))
                    {
                    echo'Page ajout';
                    $query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error());
                    
                    if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0)
                    {
                    $infosfichier = pathinfo($_FILES['img_video']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg');
                    
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
                    $nom = "videos/{$_POST[name_video]}.{$extension_upload}";
                    move_uploaded_file($_FILES['img_video']['tmp_name'],$nom);
                    mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'");
                    echo 'L\'ajout de l\'image a bien été effectuée !';
                    
                    }
                    else
                    {
                    echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>';
                    }
                    }
                    if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0)
                    {
                    $infosfichier = pathinfo($_FILES['video']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('avi, wmv');
                    
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
                    $nom = "videos/{$_POST[name_video]}.{$extension_upload}";
                    move_uploaded_file($_FILES['video']['tmp_name'],$nom);
                    mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'");
                    echo 'L\'ajout de la vidéo a bien été effectuée !';
                    
                    }
                    else
                    {
                    echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>';
                    }
                    }
                    }
                    else
                    {
                    echo'<div style="float: left"><form action="ajout_episode.php" method="post" enctype="multipart/form-data"><table><tr><td width="150px">
                    Nom : </td><td width="200px"><input type="text" name="name_video" id="name_video" /></td></tr>
                    <tr><td width="150px">Description : </td><td width="200px"><textarea name="descr_video" id="descr_video"></textarea></td></tr>
                    <tr><td width="150px">Image (50Ko, 200px*200px) : </td><td width="200px"><input type="file" name="img_video" id="img_video" /></td></tr>
                    <tr><td width="150px">Vidéo : </td><td width="200px"><input type="file" name="video" id="video" /></td></tr>
                    <tr><td width="150px"><input type="submit" name="ajout_video_episode" id="ajout_video_episode" /></td></tr></table></form></div>';
                    }


                    Merci.
                    0
                    1. <?php
                      //je supose qu'il y a qd même qq chose avant ce if
                      //sinon il manque session_start(); puisque tu utilises $_SESSION['pseudo']
                      if(isset($_POST['ajout_video_episode']))
                      {
                      	echo'Page ajout';
                      	$query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error());
                      
                      	if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0)
                      	{
                      		$infosfichier = pathinfo($_FILES['img_video']['name']);
                      		$extension_upload = $infosfichier['extension'];
                      		$extensions_autorisees = array('jpg');
                      
                      		if (in_array($extension_upload, $extensions_autorisees))
                      		{
                      			$nom = "videos/{$_POST[name_video]}.{$extension_upload}"; //la j'ai des doutes,
                      			// essayes avec: $nom = "videos/".$_POST[name_video].".".$extension_upload";
                      			echo 'Nom: '.$nom; ///TEST
                      			
                      			move_uploaded_file($_FILES['img_video']['tmp_name'],$nom);
                      			mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'");
                      			echo 'L\'ajout de l\'image a bien été effectuée !';
                      
                      		}
                      		else
                      		{
                      			echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>';
                      		}
                      	}
                      	if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0)
                      	{
                      		$infosfichier = pathinfo($_FILES['video']['name']);
                      		$extension_upload = $infosfichier['extension'];
                      		$extensions_autorisees = array('avi, wmv');
                      
                      		if (in_array($extension_upload, $extensions_autorisees))
                      		{
                      			$nom = "videos/{$_POST[name_video]}.{$extension_upload}";
                      			move_uploaded_file($_FILES['video']['tmp_name'],$nom);
                      			mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'");
                      			echo 'L\'ajout de la vidéo a bien été effectuée !';
                      
                      		}
                      		else
                      		{
                      			echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>';
                      		}
                      	}
                      }
                      else
                      {
                      ?>
                      <!-- c'est plus parlant en code html
                        ensuite dans une table il faut avoir pour chaque ligne tr le mêm nombre de td ou mettre un colspan= pour compenser
                        il suffit de fixer la largeur sur la première ligne les autre seront identiques
                        mets une value au bouton submit = ce qui sera affiché dans le bouton
                        -->
                      <div style="float: left">
                      	<form name="form1"  method="post" action="ajout_episode.php" enctype="multipart/form-data">
                      		<table>
                      			<tr>
                      				<td width="150px">Nom : </td>
                      				<td width="200px"><input type="text" name="name_video" id="name_video" /></td>
                      			</tr>
                      			<tr>
                      				<td>Description : </td>
                      				<td><textarea name="descr_video" id="descr_video"></textarea></td>
                      			</tr>
                      			<tr>
                      				<td>Image (50Ko, 200px*200px) : </td>
                      				<td><input type="file" name="img_video" id="img_video" /></td>
                      			</tr>
                      			<tr>
                      				<td>Vidéo : </td>
                      				<td><input type="file" name="video" id="video" /></td>
                      			</tr>
                      			<tr>
                      			<td colspan="2"><input type="submit" name="ajout_video_episode" id="ajout_video_episode" value=" ?"/></td>
                      			</tr>
                      		</table>
                      	</form>
                      </div>
                      <?php
                      }
                      ?>
                      
                      0
                      1. Apparement ca viendrait de mon include, puisque, retirée, le script marche.
                        Etant donné la longueur de l'include, je ne la posterai pas.
                        Merci à tous ceux qui m'ont apporté leur aide.
                        0