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 .... ).
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.
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 .... ).
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.