par
Sayko » 06 févr. 2013, 17:52
Bonjour !
Je reviens vers vous car je suis passé à l'étape suivante de mon projet; à savoir mettre mon projet sur une VM debian.
Donc, j'accède au localhost et au phpmyadmin sans aucun soucis, mais l'upload ne passe pas...
En faisant un print_r($_FILES); j'ai pu voir que j'avais un tmp_name très bizarre... je sais pas si c'est normal.
Voici le résultat de mon print_r($_FILES);
Array (
[addmusic_path] => Array (
[name] => 01 - Stabbing The Drama.mp3
[type] => audio/mpeg
[tmp_name] => /tmp/phpsRsLoW
[error] => 0
[size] => 10989696 )
)
Voici l'endroit ou mon fichier php me fait une déconade, pour le formulaire, c'est le même que dans le premier post:
$dossier = 'upload/';
$fichier = basename($_FILES['addmusic_path']['name']);
$taille = filesize($_FILES['addmusic_path']['tmp_name']);
$extensions = array('.mp3', '.ogg', '.wav', '.aac', '.m4a', '.flac', '.wma', '.MP3', '.OGG', '.WAV', '.AAC', '.M4A', '.FLAC', '.WMA');
$extension = strrchr($_FILES['addmusic_path']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = '<div class="error">Vous devez envoyer une musique de type mp3, ogg, wav, aac, m4a, flac ou wma.</div>';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
if(move_uploaded_file($_FILES['addmusic_path']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
$addmusic=$database->prepare('INSERT INTO fichier(GENRE_ID, TYPE_ID, FICHIER_NOM, FICHIER_CHEMIN, FICHIER_ANNEE, FICHIER_ARTISTE, FICHIER_ALBUM, FICHIER_PRIVE, FICHIER_PROPRIO, FICHIER_NUMERO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$addmusic->execute(array($_SESSION['idgenre'], 1, $_POST['addmusic_titre'], $_FILES['addmusic_path']['name'], $_POST['addmusic_annee'], $_POST['addmusic_artiste'], $_POST['addmusic_album'], $_POST['confidentialite'], $_SESSION['user_id'], $_POST['addmusic_number']));
exec(escapeshellcmd('scripts/aj_musique.sh', $_FILES['addmusic_path']['name'], $_POST['addmusic_titre'], $_POST['addmusic_artiste'], $_POST['addmusic_album'], $_POST['genre'], $_POST['addmusic_annee'], $_POST['addmusic_number']));
echo '<div class="success">Musique ajoutée.</div>';
unset($_SESSION['idgenre']);
unset($_FILES['addmusic_path']['name']);
unset($_POST['addmusic_titre']);
unset($_POST['addmusic_artiste']);
unset($_POST['addmusic_number']);
unset($_POST['addmusic_album']);
unset($_POST['addmusic_annee']);
unset($_POST['genre']);
unset($_POST['confidentialite']);
header ("Refresh: 2;URL=musique.php");
}
else //Sinon (la fonction renvoie FALSE).
{
print_r($_FILES);
echo '<div class="error">Échec de l\'upload !</div>';
}
}
else
{
echo $erreur;
}
Merci par avance pour votre aide!
Cordialement,
Bonjour !
Je reviens vers vous car je suis passé à l'étape suivante de mon projet; à savoir mettre mon projet sur une VM debian.
Donc, j'accède au localhost et au phpmyadmin sans aucun soucis, mais l'upload ne passe pas...
En faisant un print_r($_FILES); j'ai pu voir que j'avais un tmp_name très bizarre... je sais pas si c'est normal.
Voici le résultat de mon print_r($_FILES);
[php]Array (
[addmusic_path] => Array (
[name] => 01 - Stabbing The Drama.mp3
[type] => audio/mpeg
[tmp_name] => /tmp/phpsRsLoW
[error] => 0
[size] => 10989696 )
) [/php]
Voici l'endroit ou mon fichier php me fait une déconade, pour le formulaire, c'est le même que dans le premier post:
[php] $dossier = 'upload/';
$fichier = basename($_FILES['addmusic_path']['name']);
$taille = filesize($_FILES['addmusic_path']['tmp_name']);
$extensions = array('.mp3', '.ogg', '.wav', '.aac', '.m4a', '.flac', '.wma', '.MP3', '.OGG', '.WAV', '.AAC', '.M4A', '.FLAC', '.WMA');
$extension = strrchr($_FILES['addmusic_path']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = '<div class="error">Vous devez envoyer une musique de type mp3, ogg, wav, aac, m4a, flac ou wma.</div>';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
if(move_uploaded_file($_FILES['addmusic_path']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
$addmusic=$database->prepare('INSERT INTO fichier(GENRE_ID, TYPE_ID, FICHIER_NOM, FICHIER_CHEMIN, FICHIER_ANNEE, FICHIER_ARTISTE, FICHIER_ALBUM, FICHIER_PRIVE, FICHIER_PROPRIO, FICHIER_NUMERO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$addmusic->execute(array($_SESSION['idgenre'], 1, $_POST['addmusic_titre'], $_FILES['addmusic_path']['name'], $_POST['addmusic_annee'], $_POST['addmusic_artiste'], $_POST['addmusic_album'], $_POST['confidentialite'], $_SESSION['user_id'], $_POST['addmusic_number']));
exec(escapeshellcmd('scripts/aj_musique.sh', $_FILES['addmusic_path']['name'], $_POST['addmusic_titre'], $_POST['addmusic_artiste'], $_POST['addmusic_album'], $_POST['genre'], $_POST['addmusic_annee'], $_POST['addmusic_number']));
echo '<div class="success">Musique ajoutée.</div>';
unset($_SESSION['idgenre']);
unset($_FILES['addmusic_path']['name']);
unset($_POST['addmusic_titre']);
unset($_POST['addmusic_artiste']);
unset($_POST['addmusic_number']);
unset($_POST['addmusic_album']);
unset($_POST['addmusic_annee']);
unset($_POST['genre']);
unset($_POST['confidentialite']);
header ("Refresh: 2;URL=musique.php");
}
else //Sinon (la fonction renvoie FALSE).
{
print_r($_FILES);
echo '<div class="error">Échec de l\'upload !</div>';
}
}
else
{
echo $erreur;
}[/php]
Merci par avance pour votre aide!
Cordialement,