Move_Upload_files qui ne fonctionne pas
Fermé
fareohh
Messages postés
63
Date d'inscription
samedi 9 septembre 2017
Statut
Membre
Dernière intervention
30 mars 2021
-
Modifié le 25 mai 2018 à 04:46
fareohh Messages postés 63 Date d'inscription samedi 9 septembre 2017 Statut Membre Dernière intervention 30 mars 2021 - 26 mai 2018 à 16:11
fareohh Messages postés 63 Date d'inscription samedi 9 septembre 2017 Statut Membre Dernière intervention 30 mars 2021 - 26 mai 2018 à 16:11
2 réponses
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
25 mai 2018 à 07:17
25 mai 2018 à 07:17
Bonjour,
Je n'ai pas regardé ton code en détail....
mais
Ne serait-ce pas plutôt sur
Surtout que tu en refais un second en dessous
pour l'image justement...
Je n'ai pas regardé ton code en détail....
mais
if((move_uploaded_file($_FILES['image']['tmp_name'], $fichier_dest))){ //On upload le fichier
Ne serait-ce pas plutôt sur
$_FILES['fichier']que tu veux le faire ??
Surtout que tu en refais un second en dessous
move_uploaded_file($image_tmp_name,
pour l'image justement...
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
Modifié le 26 mai 2018 à 14:25
Modifié le 26 mai 2018 à 14:25
Bon...
Commence par placer ton PHP AVANT ton html.
Et remplace le par ça :
Je t'invite à lire et à appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Commence par placer ton PHP AVANT ton html.
Et remplace le par ça :
<?php date_default_timezone_set('UTC+01'); //--------------------------------------------------// //Affichage des erreurs PHP //--------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //--------------------------------------------------// // Fonctions //--------------------------------------------------// function getPostVar($varName,$default = NULL){ return !empty($_POST[$varName]) ? $_POST[$varName] : $default; } function getFilesVar($varName){ return !empty($_FILES[$varName]) ? $_FILES[$varName] : NULL; } //on créer une clé aléatore pour le nom de l'image et l'id du fichier function random($car) { $string = ""; $chaine = "1234567890ABCDEFGHIJKLMNOPRSTUVWXYZ"; srand((double)microtime()*1000000); for($i=0; $i<$car; $i++) { $string .= $chaine[rand()%strlen($chaine)]; } return $string; } /** * Insertion dans la bdd */ function InsertDb($chaine, $fichier_name, $type, $image_name_change, $pseudo, $ip, $date, $result, $diff, $email){ $bdd = mysqli_connect('web2.pulseheberg.net', 'wkmfc8_osudl', 'genre je vais vous donner la clé ^^ ;) '); //on se connecte à la BDD if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); } $req_pre = mysqli_prepare($bdd, 'INSERT INTO fichiers (id, name, type, img, pseudo, ip, date, poid, diff, email) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); //on pré défini les entrées mysqli_stmt_bind_param($req_pre, 'ssssssssss', $chaine, $fichier_name, $type, $image_name_change, $pseudo, $ip, $date, $result, $diff, $email); //on pré défini les valeurs à insérer if (!mysqli_stmt_execute($req_pre)){ echo printf("Erreur : %s.\n", mysqli_stmt_error($req_pre)); exit(); }else{ return true; } } //--------------------------------------------------// // Récupération PROPRE des variables AVANT de les utiliser //--------------------------------------------------// //files $fichier = getFilesVar('fichier'); $image = getFilesVar('image'); //post $pseudo = getPostVar('pseudo'); //on récupère le pseudo $email = getPostVar('email'); //on récupère l'email $diff = getPostVar('diff'); //on récupère la diff //autres variables / constantes $ip = $_SERVER['REMOTE_ADDR']; //on récupère l'ip $date = date("j.n.20y à H:i"); //on récupère la date //--------------------------------------------------// // Début du traitement //--------------------------------------------------// //si jamais un formulaire à été envoyé if (isset($_POST['confirm'])) { //si le fichier/pseudo et email sont présent if ($fichier && $pseudo && $email ) { $image_name_change = random(5); $image_name = $image['name']; //on défini le nom de l'image $image_size = $image['size']; //on récupère la taille de l'image $image_tmp_name = $image['tmp_name']; //on récupère le nom temporaire de l'image $image_extension = pathinfo($image_name, PATHINFO_EXTENSION); if (empty($image_name)){ //si l n'y a pas d'image sélectionné alors on défini celle par défaut $image = 'defaut-font-4v34ed8v.png'; $image_tmp_name = 'defaut-font-4v34ed8v.png'; $image_dest = 'images/defaut-font-4v34ed8v.png'; } else { //sinon on défin $image sur le réel nom de l'image.. $image = $image_name; } require_once('functions/GetSizeName.php'); //permets d'avoir le poid du fichier sous cette forme "[poid]Mo" $errors = array(); if(! $fichier){ $errors[] = "Aucun fichier passé à la fonction de vérification !"; }else{ $fichier_name = $fichier['name']; $fichier_extension = pathinfo($filename, PATHINFO_EXTENSION); $fichier_size = $fichier['size']; $fichier_tmp_name = $fichier['tmp_name']; if($fichier_size > $maxSize){ $errors[] = "Fichier trop volumineux"; }else{ switch($fichier_extension){ case "osz": $rep_dest = 'Beatmaps/'; $type = "Beatmap"; break; case "osk": $rep_dest = 'Skins/'; $type = "Skin"; break; case "osr": $rep_dest = 'Replay/'; $type = "Replay"; break; default: $rep_dest = 'Inconnue/'; $type = ['Unknown']; //sinon on mets unknown break; } //on verifie le répertoire de destination existe $repCheck = true; if( !is_dir($rep_dest)){ $errors[] = " Répertoire ".$rep_dest." inconnu !"; } if(!is_writable($rep_dest)){ $errors[] = "Ecriture dans le répertoire ".$rep_dest." non autorisé !"; } $fichier_dest = $rep_dest . $fichier_name; if(move_uploaded_file($fichier_tmp_name, $fichier_dest)){ setcookie('pseudo', $pseudo, time() + 365*24*3600, null, null, false, true); // on défini les cookies pour faciliter l'envoie d'autres fichiers dans le future setcookie('email', $email, time() + 365*24*3600, null, null, false, true); move_uploaded_file($image_tmp_name, $image_dest . $image_name_change); //On upload l'image //insertion en bdd InsertDb($chaine, $fichier_name, $type, $image_name_change, $pseudo, $ip, $date, $result, $diff, $email); }else{ $errors[] = 'Upload error : ' . $fichier_tmp_name .' vers '. $fichier_dest; } } } }else{ $errors[] = "Erreur : Email, Pseudo ou Fichier vide "; } //Affichage du résultat : if(!empty($errors)){ foreach($errors as $R){ echo "<br>".$R; } }else{ echo " OK "; } } ?>
Je t'invite à lire et à appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
fareohh
Messages postés
63
Date d'inscription
samedi 9 septembre 2017
Statut
Membre
Dernière intervention
30 mars 2021
26 mai 2018 à 11:57
26 mai 2018 à 11:57
Notice: Undefined variable: size in /var/www/wzh1cj/www/functions/GetSizeName.php on line 33
Notice: Undefined variable: filename in /var/www/wzh1cj/www/up/index.php on line 102
Notice: Undefined variable: maxSize in /var/www/wzh1cj/www/up/index.php on line 106
WTF
Notice: Undefined variable: filename in /var/www/wzh1cj/www/up/index.php on line 102
Notice: Undefined variable: maxSize in /var/www/wzh1cj/www/up/index.php on line 106
WTF
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
26 mai 2018 à 13:32
26 mai 2018 à 13:32
Notice: Undefined variable: size in /var/www/wzh1cj/www/functions/GetSizeName.php on line 33
Je ne sais pas ce que contient ce fichier...
Notice: Undefined variable: filename in /var/www/wzh1cj/www/up/index.php on line 102
filename à remplacer par fichier_name
Notice: Undefined variable: maxSize in /var/www/wzh1cj/www/up/index.php on line 106
J'ai oublié de déclarer la variable $maxSize
Il faut que tu la déclare et que tu y spécifie la taille max autorisée pour tes fichiers
fareohh
Messages postés
63
Date d'inscription
samedi 9 septembre 2017
Statut
Membre
Dernière intervention
30 mars 2021
Modifié le 26 mai 2018 à 14:18
Modifié le 26 mai 2018 à 14:18
Warning: move_uploaded_file(Beatmaps/test.osz): failed to open stream: No such file or directory in /var/www/wzh1cj/www/up/index.php on line 139
Warning: move_uploaded_file(): Unable to move 'tmp/phpPNiaG1' to 'Beatmaps/test.osz' in /var/www/wzh1cj/www/up/index.php on line 139
Répertoire Beatmaps/ inconnu !
Ecriture dans le répertoire Beatmaps/ non autorisé !
Upload error : tmp/phpPNiaG1 vers Beatmaps/test.osz
[https://img-19.ccm2.net/Lq6Ew1POlPNA9pyFduDPuDPaqEw=/5c6105fdf19446ae817abd6d38b72ee8/ccm-ugc/51564658.PNG![](https://img-19.ccm2.net/8D9ipw2X4gGXF4AXnfCIm_myZ4w=/440x/5c6105fdf19446ae817abd6d38b72ee8/ccm-ugc/51564658.PNG)
Là je ne comprend pas... Tout est ok pour les répertoires pourtant...
Warning: move_uploaded_file(): Unable to move 'tmp/phpPNiaG1' to 'Beatmaps/test.osz' in /var/www/wzh1cj/www/up/index.php on line 139
Répertoire Beatmaps/ inconnu !
Ecriture dans le répertoire Beatmaps/ non autorisé !
Upload error : tmp/phpPNiaG1 vers Beatmaps/test.osz
[https://img-19.ccm2.net/Lq6Ew1POlPNA9pyFduDPuDPaqEw=/5c6105fdf19446ae817abd6d38b72ee8/ccm-ugc/51564658.PNG
Là je ne comprend pas... Tout est ok pour les répertoires pourtant...
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
26 mai 2018 à 14:25
26 mai 2018 à 14:25
Le répertoire se situe où dans ton site ?
Tu peux nous montrer l'arborescence de ton site histoire qu'on sache où se trouve tes différents fichiers / répertoires ?
Tu peux nous montrer l'arborescence de ton site histoire qu'on sache où se trouve tes différents fichiers / répertoires ?
fareohh
Messages postés
63
Date d'inscription
samedi 9 septembre 2017
Statut
Membre
Dernière intervention
30 mars 2021
26 mai 2018 à 14:29
26 mai 2018 à 14:29
Après réflexion je crois que j'ai juste confonfu deux choses.
De base la page d'upoad se trouvais dans www/event/
Mais maintenant elle se trouve dans www/up/
Et les dossiers se trouvent dans www/ ainsi que le dossier temp
Donc je suppose que je doit redésendre d'un étage comme ceci:
'../Beatmap'
'../Skins'
'../Replay'
'../tmp'
C'est okay comme ça ?
De base la page d'upoad se trouvais dans www/event/
Mais maintenant elle se trouve dans www/up/
Et les dossiers se trouvent dans www/ ainsi que le dossier temp
Donc je suppose que je doit redésendre d'un étage comme ceci:
'../Beatmap'
'../Skins'
'../Replay'
'../tmp'
C'est okay comme ça ?
25 mai 2018 à 07:29
25 mai 2018 à 07:38
26 mai 2018 à 03:33
26 mai 2018 à 09:30
Vérifie les droits sur les dossiers de destination.
Montre nous le code modifié
26 mai 2018 à 10:15