8768 sujets

Développement web côté serveur, CMS

Bonjour à tous et merci pour votre temps.

J'ai un serveur dédié depuis peu chez OVH et j'ai installé CENTOS 7 que j'utilise en interne sur un mes serveurs. (c'est pompeux, je sais .... Smiley biggrin ).

La fonction upload (PHP4 & 5) "move_uploaded_file" fonctionne très bien en interne sous linux (PHP5) et sous easyphp 1.8 (PHP4).

J'ai contrôlé avant de vous demander avis les droits sur le sous sous dossier de mon arborescence (archive) : var/www/html/sitetoto/archive

Et pour test 0777 (utilisateur / groupe / autre) sur ce dossier archive
Utilisateur apache Groupe apache

Redémarrage serveur apache après modification des droits (test 0700; 0750 ...).

Et à chaque fois :

Impossible d'enregistrer le fichier !

TYPE DE SERVEUR VIRTUELLE OVH
OVH SSD (premier prix por test ....)
CENTOS 7 64 BITS
Apache 2.4.6 (CentOS)
PHP 5.4.16
MariaDB Server 5.5.52

Le code :

<?php
session_start();

include ("controle1.php");
$nom = $_SESSION['nomuser'];
$pren = $_SESSION['prenuser'];

$numuser = $_SESSION['numusers'];
$auto = $_SESSION['auto'];
$sesid = session_id();

require ("datesyst.php");
require ("connect.php");



$connexion = mysql_connect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);

$nu = $numuser;


IF (isset($_POST['idpro'])) // modif20160328
{
$idpro = $_POST['idpro'];
}
ELSE IF (isset($_GET['idpro']))
{
$idpro = $_GET['idpro'];
}
ELSE
{
$idpro = "";
}

IF (isset($_POST['descri'])) // modif20160328
{
// echo 'le champ est bien rempli';
$descri = $_POST['descri'];
}
ELSE IF (isset($_GET['descri']))
{
$descri = $_GET['descri'];
}
ELSE
{
$descri = "";
}

$nomfile = "D".$nu.$timestamp.".pdf";


$descri = strtoupper($descri);
$descri = addslashes($descri); // stripslashes()

$descri = trim($descri);



if( isset($_POST['upload']) ) // si formulaire soumis
{

$content_dir = 'uploadZdoc/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];

if( !strstr($type_file, 'pdf'))
{
exit("Le fichier n'est pas un fichier pdf");
}

$namefile = $_FILES['fichier']['name']; // nom de fichier original
$name_file = $nomfile; // nom du fichier sur le serveur

$insged = "INSERT INTO `ged` ( `ne-ged` , `nu-ged` , `idprofil-ged` , `descri-ged` , `nfic1-ged` , `nfic2-ged` , `date-ged` , `time-ged` ) VALUES (NULL , '$nu', '$idpro', '$descri', '$namefile', '$name_file', '$date6xbdd', '$time10')";
if ( ! ($temresged=mysql_query ($insged, $connexion) ) )
{
echo ( sprintf ("Erreur à l'execution de la requete :<br><b> %s </b>", $insged ) );
echo ( sprintf ("</b> Erreur %d :<br> %s" , mysql_errno(),
mysql_error() ) );
exit;
}

# AVEC SECURITE SUR LE NOM DE FICHIER ANTI HACKING.

if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
exit("Nom de fichier non valide");
}
else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}


echo "Le fichier a bien été uploadé";
require "retauto1.php";
}
?>

Merci à vous.
Tu as quoi comme message d'erreur ? Tu as vérifié sur le serveur si le fichier était pas dessus ? Vérifie l'emplacement ...
Bonsoir,

Le problème n'est peut-être pas les permissions dans le dossier de destination, mais celles du dossier d'origine.
Vérifie ce qui a été configuré comme répertoire temporaire d'upload. C'est peut-être là que ça coince.