Fix: Documents links was bad if ref contains special chars

This commit is contained in:
Laurent Destailleur 2008-07-10 17:11:04 +00:00
parent 94dce9cbac
commit 12279fddec
8 changed files with 177 additions and 180 deletions

View File

@ -21,9 +21,9 @@
*/ */
/** /**
\file htdocs/product/document.php \file htdocs/comm/action/document.php
\ingroup product \ingroup agenda
\brief Page des documents joints sur les produits \brief Page des documents joints sur les actions
\version $Id$ \version $Id$
*/ */
@ -40,7 +40,7 @@ $langs->load("other");
$langs->load("bills"); $langs->load("bills");
if (isset($_GET["error"])) $error=$_GET["error"]; if (isset($_GET["error"])) $error=$_GET["error"];
$upload_dir = $conf->actions->dir_output.'/'.$_GET['id']; $objectid = isset($_GET["id"])?$_GET["id"]:'';
// Security check // Security check
if ($user->societe_id > 0) if ($user->societe_id > 0)
@ -71,11 +71,12 @@ if ( $_POST["sendit"] && $conf->upload )
/* /*
* Creation répertoire si n'existe pas * Creation répertoire si n'existe pas
*/ */
$upload_dir = $conf->actions->dir_output.'/'.sanitize_string($objectid);
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);
@ -94,6 +95,7 @@ if ( $_POST["sendit"] && $conf->upload )
*/ */
if ($_GET["action"] == 'delete') if ($_GET["action"] == 'delete')
{ {
$upload_dir = $conf->actions->dir_output.'/'.sanitize_string($objectid);
$file = $upload_dir . '/' . urldecode($_GET['urlfile']); $file = $upload_dir . '/' . urldecode($_GET['urlfile']);
dol_delete_file($file); dol_delete_file($file);
} }
@ -106,27 +108,30 @@ if ($_GET["action"] == 'delete')
llxHeader(); llxHeader();
if ($_GET["id"] > 0) if ($objectid > 0)
{ {
$act = new ActionComm($db); $act = new ActionComm($db);
$act->fetch($_GET["id"]); if ($act->fetch($objectid))
{
$upload_dir = $conf->actions->dir_output.'/'.sanitize_string($objectid);
$res=$act->societe->fetch($act->societe->id); $res=$act->societe->fetch($act->societe->id);
$res=$act->author->fetch(); // Le paramètre est le login, hors seul l'id est chargé. $res=$act->author->fetch(); // Le paramètre est le login, hors seul l'id est chargé.
$res=$act->contact->fetch($act->contact->id); $res=$act->contact->fetch($act->contact->id);
$h=0; $h=0;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/fiche.php?id='.$_GET["id"]; $head[$h][0] = DOL_URL_ROOT.'/comm/action/fiche.php?id='.$objectid;
$head[$h][1] = $langs->trans("CardAction"); $head[$h][1] = $langs->trans("CardAction");
$hselected=$h; $hselected=$h;
$h++; $h++;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/document.php?id='.$_GET["id"]; $head[$h][0] = DOL_URL_ROOT.'/comm/action/document.php?id='.$objectid;
$head[$h][1] = $langs->trans('Documents'); $head[$h][1] = $langs->trans('Documents');
$hselected=$h; $hselected=$h;
$h++; $h++;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/info.php?id='.$_GET["id"]; $head[$h][0] = DOL_URL_ROOT.'/comm/action/info.php?id='.$objectid;
$head[$h][1] = $langs->trans('Info'); $head[$h][1] = $langs->trans('Info');
$h++; $h++;
@ -185,7 +190,11 @@ if ($_GET["id"] > 0)
// List of document // List of document
$param='&id='.$act->id; $param='&id='.$act->id;
$formfile->list_of_documents($filearray,$act,'actions',$param); $formfile->list_of_documents($filearray,$act,'actions',$param);
}
else
{
dolibarr_print_error($db);
}
} }
else else
{ {

View File

@ -72,12 +72,12 @@ if ($_POST["sendit"] && $conf->upload)
if ($propal->fetch($propalid)) if ($propal->fetch($propalid))
{ {
$upload_dir = $conf->propal->dir_output . "/" . $propal->ref; $upload_dir = $conf->propal->dir_output . "/" . sanitize_string($propal->ref);
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);
@ -100,7 +100,7 @@ if ($action=='delete')
$propalid=$_GET["id"]; $propalid=$_GET["id"];
if ($propal->fetch($propalid)) if ($propal->fetch($propalid))
{ {
$upload_dir = $conf->propal->dir_output . "/" . $propal->ref; $upload_dir = $conf->propal->dir_output . "/" . sanitize_string($propal->ref);
$file = $upload_dir . '/' . urldecode($_GET['urlfile']); $file = $upload_dir . '/' . urldecode($_GET['urlfile']);
dol_delete_file($file); dol_delete_file($file);
$mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>';
@ -117,12 +117,9 @@ llxHeader();
if ($propalid > 0) if ($propalid > 0)
{ {
$propal = new Propal($db); $propal = new Propal($db);
if ($propal->fetch($propalid)) if ($propal->fetch($propalid))
{ {
$propref = sanitize_string($propal->ref); $upload_dir = $conf->propal->dir_output.'/'.sanitize_string($propal->ref);
$upload_dir = $conf->propal->dir_output.'/'.$propref;
$societe = new Societe($db); $societe = new Societe($db);
$societe->fetch($propal->socid); $societe->fetch($propal->socid);

View File

@ -74,12 +74,12 @@ if (!$commande->fetch($id)) {
// Envoi fichier // Envoi fichier
if ($_POST["sendit"] && $conf->upload) if ($_POST["sendit"] && $conf->upload)
{ {
$upload_dir = $conf->commande->dir_output . "/" . $commande->ref; $upload_dir = $conf->commande->dir_output . "/" . sanitize_string($commande->ref);
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);
@ -96,7 +96,7 @@ if ($_POST["sendit"] && $conf->upload)
// Delete // Delete
if ($action=='delete') if ($action=='delete')
{ {
$upload_dir = $conf->commande->dir_output . "/" . $commande->ref; $upload_dir = $conf->commande->dir_output . "/" . sanitize_string($commande->ref);
$file = $upload_dir . '/' . urldecode($_GET['urlfile']); $file = $upload_dir . '/' . urldecode($_GET['urlfile']);
dol_delete_file($file); dol_delete_file($file);
$mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>';
@ -110,9 +110,7 @@ if ($id > 0)
{ {
llxHeader(); llxHeader();
$commanderef = sanitize_string($commande->ref); $upload_dir = $conf->commande->dir_output.'/'.sanitize_string($commande->ref);
$upload_dir = $conf->commande->dir_output.'/'.$commanderef;
$societe = new Societe($db); $societe = new Societe($db);
$societe->fetch($commande->socid); $societe->fetch($commande->socid);

View File

@ -24,7 +24,7 @@
\ingroup facture \ingroup facture
\brief Page de gestion des documents attachées à une facture \brief Page de gestion des documents attachées à une facture
\version $Id$ \version $Id$
*/ */
require('./pre.inc.php'); require('./pre.inc.php');
require_once(DOL_DOCUMENT_ROOT."/facture.class.php"); require_once(DOL_DOCUMENT_ROOT."/facture.class.php");
@ -37,7 +37,7 @@ $langs->load('compta');
$langs->load('other'); $langs->load('other');
if (!$user->rights->facture->lire) if (!$user->rights->facture->lire)
accessforbidden(); accessforbidden();
$facid=empty($_GET['facid']) ? 0 : intVal($_GET['facid']); $facid=empty($_GET['facid']) ? 0 : intVal($_GET['facid']);
$action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; $action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action'];
@ -71,15 +71,14 @@ $pagenext = $page + 1;
if ($_POST["sendit"] && $conf->upload) if ($_POST["sendit"] && $conf->upload)
{ {
$facture = new Facture($db); $facture = new Facture($db);
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$upload_dir = $conf->facture->dir_output . "/" . $facture->ref; $upload_dir = $conf->facture->dir_output . "/" . sanitize_string($facture->ref);
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);
@ -102,7 +101,7 @@ if ($action=='delete')
$facid=$_GET["id"]; $facid=$_GET["id"];
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$upload_dir = $conf->facture->dir_output . "/" . $facture->ref; $upload_dir = $conf->facture->dir_output . "/" . sanitize_string($facture->ref);
$file = $upload_dir . '/' . urldecode($_GET['urlfile']); $file = $upload_dir . '/' . urldecode($_GET['urlfile']);
dol_delete_file($file); dol_delete_file($file);
$mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileWasRemoved").'</div>';
@ -118,12 +117,9 @@ llxHeader();
if ($facid > 0) if ($facid > 0)
{ {
$facture = new Facture($db); $facture = new Facture($db);
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$facref = sanitize_string($facture->ref); $upload_dir = $conf->facture->dir_output.'/'.sanitize_string($facture->ref);
$upload_dir = $conf->facture->dir_output.'/'.$facref;
$societe = new Societe($db); $societe = new Societe($db);
$societe->fetch($facture->socid); $societe->fetch($facture->socid);

View File

@ -63,8 +63,7 @@ $pagenext = $page + 1;
$contrat = new Contrat($db); $contrat = new Contrat($db);
$contrat->fetch($_GET["id"]); $contrat->fetch($_GET["id"]);
$contratref = sanitize_string($contrat->ref); $upload_dir = $conf->contrat->dir_output.'/'.sanitize_string($contrat->ref);
$upload_dir = $conf->contrat->dir_output.'/'.$contratref;
$modulepart='contract'; $modulepart='contract';
@ -80,7 +79,7 @@ if ($_POST["sendit"] && $conf->upload)
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);

View File

@ -73,16 +73,15 @@ $pagenext = $page + 1;
if ($_POST['sendit'] && $conf->upload) if ($_POST['sendit'] && $conf->upload)
{ {
$facture = new FactureFournisseur($db); $facture = new FactureFournisseur($db);
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$ref = sanitize_string($facture->ref);
$upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id; $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id;
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . '/' . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . '/' . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans('FileTransferComplete').'</div>'; $mesg = '<div class="ok">'.$langs->trans('FileTransferComplete').'</div>';
//print_r($_FILES); //print_r($_FILES);
@ -100,13 +99,13 @@ if ($_POST['sendit'] && $conf->upload)
// Delete // Delete
if ($action=='delete') if ($action=='delete')
{ {
$facture = new FactureFournisseur($db);
$facid=$_GET["id"]; $facid=$_GET["id"];
$facture = new FactureFournisseur($db);
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$ref = sanitize_string($facture->ref);
$upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id; $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id;
$file = $upload_dir . '/' . urldecode($_GET['urlfile']); $file = $upload_dir . '/' . urldecode($_GET['urlfile']);
dol_delete_file($file); dol_delete_file($file);
$mesg = '<div class="ok">'.$langs->trans('FileWasRemoved').'</div>'; $mesg = '<div class="ok">'.$langs->trans('FileWasRemoved').'</div>';
@ -123,13 +122,12 @@ llxHeader();
if ($facid > 0) if ($facid > 0)
{ {
$facture = new FactureFournisseur($db); $facture = new FactureFournisseur($db);
if ($facture->fetch($facid)) if ($facture->fetch($facid))
{ {
$facture->fetch_fournisseur(); $facture->fetch_fournisseur();
$facref = sanitize_string($facture->ref);
$upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id; $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$facture->id;
$head = facturefourn_prepare_head($facture); $head = facturefourn_prepare_head($facture);
dolibarr_fiche_head($head, 'documents', $langs->trans('SupplierInvoice')); dolibarr_fiche_head($head, 'documents', $langs->trans('SupplierInvoice'));

View File

@ -68,8 +68,7 @@ if ($_GET['id'] || $_GET["ref"])
if ($_GET["ref"]) $result = $product->fetch('',$_GET["ref"]); if ($_GET["ref"]) $result = $product->fetch('',$_GET["ref"]);
if ($_GET["id"]) $result = $product->fetch($_GET["id"]); if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
$prodref = sanitize_string($product->ref); $upload_dir = $conf->produit->dir_output.'/'.sanitize_string($product->ref);
$upload_dir = $conf->produit->dir_output.'/'.$prodref;
} }
$modulepart='produit'; $modulepart='produit';
@ -86,7 +85,7 @@ if ($_POST["sendit"] && $conf->upload)
if (is_dir($upload_dir)) if (is_dir($upload_dir))
{ {
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0)) if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0)
{ {
$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>'; $mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
//print_r($_FILES); //print_r($_FILES);

View File

@ -62,12 +62,13 @@ $sortfield=$_GET["sortfield"];
if (! $sortorder) $sortorder="ASC"; if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="name"; if (! $sortfield) $sortfield="name";
$upload_dir = $conf->societe->dir_output . "/" . $socid ;
$courrier_dir = $conf->societe->dir_output . "/courrier/" . get_exdir($socid) ;
/* /*
* Actions * Actions
*/ */
$upload_dir = $conf->societe->dir_output . "/" . $socid ;
$courrier_dir = $conf->societe->dir_output . "/courrier/" . get_exdir($socid) ;
// Envoie fichier // Envoie fichier
if ( $_POST["sendit"] && $conf->upload != 0) if ( $_POST["sendit"] && $conf->upload != 0)