Grossissimo problema

  • Creatore Discussione Creatore Discussione mikysss
  • Data di inizio Data di inizio

mikysss

Nuovo Utente
18 Gen 2006
3
0
0
Salve a tutti innanzitutto!!!!!!
Spero che qualcuno possa aiutarmi a risolvere il mio problema!!!!
Io ho un sito che ha un'area pubblica e un'area privata( corrispondente alla intranet)!!!!
Nella intranet c'è possibilità di fare upload di doc!!
L'upload può essere di tipo pubblico e i doc confluiscono nella cartella upload_pubblica, e di tipo privata e i doc confluiscono nella cartella upload_privata!!!!
Io ho impostato che nell'area intranet(area privata) solo gli amministratori possono vedere anche i doc pubblici gli altri hanno la visione dei soli doc privati!!!
Il problema è questo: in pratica io amministratore sui doc pubblici che visualizzo nella intranet riesco a cancellarli e modificarli , ma se provo a cliccare su i documenti nn me li apre!!!!!!!
Premettendo che da molto poco mi sono avvicinato al linguaggio php, vi chiedo innanzitutto se sono stato abbastanza chiaro????
Seconda cosa vi passo il codice sorgente e per favore vi chiedo di aiutarmi, sono disperato!!!!
<?
session_start();
if (!isset($username))
{
header ("Location:http:/......../intranet.php");
exit;
}
?>
<?
if (!($esegui))
{
$tip_filtro="nessun ordinamento";
$tip_filtro2="nessuna selezione";
}
if ($username=="")
{
session_unregister("username");
session_unregister("password");
session_destroy();
die ("<br><br><br><br><br><br><br><br>
<CENTER><font face = \"verdana\" color= \"red\" size=3>Attenzione! Il campo <b>username</b> non puo'
essere vuoto. <br>Torna indietro e immetti il tuo username.
</font><br><br><a href=\"../intranet.php\"><font face = \"verdana\" color=\"#004f9d\" size=1><b>indietro..</b></font></a></CENTER>");
}

/* definisco la visibilità del documento */
if ($visibilita=="privato")
{
$file_dir ="upload_privata";
$file_url = "./upload_privata";
}
if ($visibilita=="pubblico")
{
$file_dir = "upload_pubblica";
$file_url = "./upload_pubblica";
}
else // (*)
{
/* connessione al db */
include ("connessione_db.inc");

$wordina = "";
$wstringa = "";
$wcriterio = "";
$query= "select password,tipo, contatore from utenti where username='$username'";
$risultato = mysql_query($query);
if (mysql_num_rows($risultato)==0)
{
session_unregister("username");
session_unregister("password");
session_destroy();
die ("<br><br><br><br><br><br><br><br>
<CENTER><font face = \"verdana\" color= \"red\" size=3>Attenzione! Lo <b>username</b> immesso non e'
registrato come utente valido. <br>Torna indietro e prova con un altro username.
</font><br><br><a href=\"../intranet.php\"><font face = \"verdana\" color=\"#004f9d\" size=1><b>indietro..</b></font></a></CENTER>");
}
$riga = mysql_fetch_array($risultato);
$db_password = $riga["password"];
if (!($password == $db_password))
{
session_unregister("username");
session_unregister("password");
session_destroy();
die ("<br><br><br><br><br><br><br><br>
<CENTER><font face = \"verdana\" color= \"red\" size=3><b>Password errata!
</b></font><br><br><a href=\"../intranet.php\"><font face = \"verdana\" color=\"#004f9d\" size=1><b>indietro..</b></font></a></CENTER>");
}
else { //(+)
if (!isset($bandierina)) {
$contatore = $riga["contatore"]+ 1;
//$q="update utenti set contatore='$contatore' where username='$username'";

//23-03-2004:
$q="update utenti set contatore='$contatore', online='si' where username='$username'";


mysql_query($q);
$q="select contatore from utenti";
$r=mysql_query($q);
$tot=0;
while($rec=mysql_fetch_array($r)) {
$tot = $tot + $rec["contatore"];
}
$bandierina=1;
session_register("bandierina");
session_register("tot");

//inseriamo l'utente loggato con successo nella tabella useronline
$zeit = time(); // $zeit �il timestamp corrente
$ip = getenv(REMOTE_ADDR);
$file = $PHP_SELF;
$result=mysql_query("INSERT INTO useronline VALUES ('$zeit','$ip','$file','$username')");}?>
<tr><!--riga contenente form per selezione e ordinamento documenti -->
<table cellspacing= "3" cellpadding= "1" border= "0" align= "CENTER" width="100%" ><!--tabella contenente tabella del form per selezione e ordinamento documenti e tabella dei link alle altre pag. di documenti-->
<tr>
<!-- tabella del form per selezione e ordinamento documenti -->
<form enctype= "multipart/form-data" action= "<?php print $PHP_SELF?>" method= "POST" >
<tr>
<td align="left" width="100">
<font size=-3><b>ordina per:</b></font>
</td>
<td align= "left">
<select name= "tip_filtro" >
<option value= "nessun ordinamento" <? if ($tip_filtro == "nessun ordinamento") echo "selected"; ?>> - nessun ordinamento</OPTION>
<option value= "autore" <? if ($tip_filtro == "autore") echo "selected"; ?>> - autore</OPTION>
<option value= "data" <? if ($tip_filtro == "data") echo "selected"; ?>> - data</OPTION>
<option value= "dim" <? if ($tip_filtro == "dim") echo "selected"; ?>> - dimensione</OPTION>
</SELECT>
</form> </table><!--fine tabella del form per selezione e ordinamento documenti -->
</td><td align="right" >
<table bgcolor="white" width="100%" height="100%"><tr>
<td bgcolor="#ffffcd" align="center" height="100%" cellpadding="5" cellspacing="5">
<table><tr><td></td></tr></table></td></tr></table>
</td></tr></table><!--fine tabella contenente tabella del form per selezione e ordinamento documenti e tabella dei link alle altre pag. di documenti--><br><?/* fine parte controllo sull'autenticazione utente:fino a qui $password==$db_password*/
$db_tipo=$riga["tipo"];
if (($db_tipo == "amministratore")){
// 1=1 serve perchè non mi dia errore l'istruzione successiva all'if
$wstringa = "SELECT idDocumento,nfile, titolo, tipoDoc, date_format(data_doc,'%d/%m/%Y') as data_doc, dim, owner FROM documenti where 1 = 1 ";

} else {
$wstringa = "SELECT idDocumento,nfile, titolo, tipoDoc, date_format(data_doc,'%d/%m/%Y') as data_doc, dim, owner FROM documenti where visibilita = 'privato' ";

}
if ($tip_filtro2 != "nessuna selezione")
$wstringa = $wstringa." and tipoDoc='$tip_filtro2'";
if (($tip_filtro != "nessun ordinamento")&($tip_filtro != "autore"))
{if ($tip_filtro !="data")
$wstringa = $wstringa." order by '$tip_filtro'";
//else $wstringa = $wstringa." order by documenti.data";
else $wstringa = $wstringa." order by documenti.data_doc";
if ($tip_filtro =="data") $wstringa = $wstringa." ASC";
$wcriterio="&nbsp;Elenco documenti";
$wcriterio = "$wcriterio (ordinati per \"$tip_filtro \" )";
$wordina = mysql_query($wstringa);
echo '<b>'.$wcriterio.'</b><br>';
$num_rows = mysql_num_rows ($wordina);}elseif ($tip_filtro == "nessun ordinamento"){$wcriterio="&nbsp;Elenco documenti";$wordina = mysql_query($wstringa);
$wcriterio = "$wcriterio (ordinati per \"$tip_filtro \" )";
echo '<b>'.$wcriterio.'</b><br>';
$num_rows = mysql_num_rows ($wordina);}
elseif ($tip_filtro == "autore"){
// query per determinare gli idAutori ordinati per cognome:
$queryOrdAut="select idAutore from autori order by cognomeAutore";
$risulOrdAut=mysql_query($queryOrdAut);
$wcriterio="&nbsp;Elenco documenti";
$wcriterio = "$wcriterio (ordinati per \"$tip_filtro \" e ripetuti per ogni autore)";
echo '<b>'.$wcriterio.'</b><br>';$wordina=mysql_query($wstringa);
$num_rows = mysql_num_rows ($wordina);}
echo '<table border=0 cellpadding=2 cellspacing=1 align= "center" bgcolor= "#FFFFFF" width= "100%">'; // tabella del numero documenti e del numero di accessi alla pagina
echo '<tr bgcolor= "#FFFFcd"><th align=left><font color= orange size=2>Attualmente ci sono '.$num_rows.' documenti in archivio</font></th>
<th align=right><font color="#bebebe" size=1><b>'; echo date("F j, Y, g:i a");echo ' |</b></font>
<font color="#bebebe" size=1><b>numero accessi alla area intranet dal 01/04/2004:</b></font>
<font color="#004f9d" size=1><b>';

echo ' - '.$tot.' - ';
echo '</b></font></th></tr>';
echo '</table><hr size= "0">'; //fine tabella del numero documenti e del numero di accessi alla pagina
if ($db_tipo == "amministratore")
{
$campi=array(' titolo ',' autori ',' tipo ',' data ',' dim ','');
$start=0; $end=4;
}
else
{
$campi=array(' titolo ',' autori ',' tipo ',' data ',' dim ');
$start=0; $end=3;
}
echo'<table border=0 cellpadding=2 cellspacing=4 width = "100%" align="center">
<tr bgcolor="#ebebeb">';// tabella dei documenti
for ($i=$start;$i<=$end;$i++)
{
echo'<td align="center" bgcolor="#ebebeb"><b><font color ="004f9d">'.$campi[$i].'</font></b></td>';
}
echo '<td align="center" bgcolor="#ebebeb"><b><font color ="004f9d">'.$campi[$i].'</font></b></td></tr>';
if ($tip_filtro != "autore") {
// determino il contenuto della tabella documenti e scansiono riga per riga:
while ( $a_row = mysql_fetch_array( $wordina ) )
{
$visibilita = $a_row["visibilita"];
if ($visibilita=="privato")
{
$file_url = "./upload_privata";
}
if ($visibilita=="pubblico")
{
$file_url = "./upload_pubblica";
}

// determino l'insieme degli idAutore per il fissato idDocumento dalla tabella documentoAutori:
$queryIdAutori = "select idAutore from documentoAutori where idDocumento='$a_row[idDocumento]'";
$risIdAutori = mysql_query($queryIdAutori);
if ($a_row[dim] >= 1000) $dimkb = intval ( $a_row[dim] / 1024 ) ; /* converto la dimensione da byte in kb e prendo l'intero */
else $dimkb = $a_row[dim];
echo'<tr>';
echo'<td align=left><b>'."<a href='$file_url/$a_row[nfile]' target= \"principale\">".'<font color = "red">'.$a_row[titolo].'</font></a></b></td>';
//echo'<td align=left>'.$a_row[nfile].'</td>';
echo '<td align=left>';
$virgola=0;

while ($a_row2 = mysql_fetch_array($risIdAutori)) {
$queryAutore="select nomeAutore, cognomeAutore from autori where idAutore='$a_row2[idAutore]'";
$risAutore=mysql_query($queryAutore);
$nome=(mysql_fetch_array($risAutore));
if ($virgola!=0) echo',';
echo ' ';
echo $nome[nomeAutore].' '. $nome[cognomeAutore] ;
$virgola++;
}
echo '</td>';
echo'<td align=left><i>'.$a_row[tipoDoc].'</i></td>';

//echo'<td align=left>'.$a_row[data].'</td>';
echo'<td align=left>'.$a_row[4].'</td>';

echo'<td align=center width=100>('.$dimkb; if ($a_row[dim] >= 1000) echo' kb'; else echo ' b'; echo')</td>';
if (($db_tipo == "amministratore") || ($a_row[owner]==$username)) echo '<td align="center">'."<a href= \"conferma.php?idDocumento=$a_row[idDocumento]\">".'<img src="../images/trash.gif" border="0" ></a></td>';
if (($db_tipo == "amministratore") || ($db_tipo == "redattore")) echo '<td align="center">'."<a href= \"edita.php?idDocumento=$a_row[idDocumento]\">".'<img src="../images/text.gif" border="0" align="center" alt="edita informazioni sul documento!"></a></td>';
echo '</tr>';
}
echo'</table><br><br>'; //fine tabella dei documenti
} else { // (') tutti gli altri ordinamenti tranne che autore
while ($rigaOrdAut=mysql_fetch_array($risulOrdAut)) {// (?)

$queryOrdAut2="select idDocumento from documentoAutori where idAutore='$rigaOrdAut[idAutore]'";
$risulOrdAut2=mysql_query($queryOrdAut2);
while ($rigaOrdAut2=mysql_fetch_array($risulOrdAut2)) {

//$wstringa = "SELECT nfile, titolo, tipoDoc, date_format(data,'%d/%m/%Y') as data, dim, owner FROM documenti ";
$wstringa = "SELECT nfile, titolo, tipoDoc, date_format(data_doc,'%d/%m/%Y') as data_doc, dim, owner FROM documenti ";

if ($tip_filtro2 == "nessuna selezione")
$wstringa=$wstringa." where idDocumento='$rigaOrdAut2[idDocumento]'";
else $wstringa=$wstringa." where idDocumento='$rigaOrdAut2[idDocumento]' and tipoDoc='$tip_filtro2'";
$wordina = mysql_query($wstringa);
while ($a_row = mysql_fetch_array( $wordina )) {
$queryIdAutori = "select idAutore from documentoAutori where idDocumento='$rigaOrdAut2[idDocumento]'";
$risIdAutori = mysql_query($queryIdAutori);
$numeroAutori=mysql_num_rows($risIdAutori);
if ($a_row[dim]>=1000) $dimkb = intval ( $a_row[dim] / 1024 ) ; /* converto la dimensione da byte in kb e prendo l'intero */
else $dimkb = $a_row[dim]; // lascio la dimensione in byte
echo'<tr>';
echo'<td align=left><b>'."<a href='$file_url/$a_row[nfile]' target= \"principale\">".'<font color = "red">'.$a_row[titolo].'</font></a></b></td>';
//echo'<td align=left>'.$a_row[nfile].'</td>';
echo '<td align=left>';
if ($numeroAutori==1) {
$virgola=0;
while ($a_row2 = mysql_fetch_array($risIdAutori)) {
$queryAutore="select nomeAutore, cognomeAutore from autori where idAutore='$a_row2[idAutore]'";
$risAutore=mysql_query($queryAutore);
$nome=(mysql_fetch_array($risAutore));
if ($virgola!=0) echo',';
echo ' ';
echo $nome[nomeAutore].' '. $nome[cognomeAutore] ;
$virgola++;
}
} else {
$queryAutore="select nomeAutore, cognomeAutore from autori where idAutore='$rigaOrdAut[idAutore]'";
$risAutore=mysql_query($queryAutore);
$nome=(mysql_fetch_array($risAutore));
echo ' ';
echo $nome[nomeAutore].' '. $nome[cognomeAutore] ;
}
echo '</td>';
echo'<td align=left><i>'.$a_row[tipoDoc].'</i></td>';

//echo'<td align=left>'.$a_row[data].'</td>';
echo'<td align=left>'.$a_row[data_doc].'</td>';

echo'<td align=center width=100>('.$dimkb;
if ($a_row[dim]>=1000) echo ' kb';
else echo ' b';
echo ')</td>';
if (($db_tipo == "amministratore") || ($a_row[owner]==$username))
echo '<td align="center">'."<a href= \"conferma.php?idDocumento=$a_row[idDocumento]\">".'<img src="../images/trash.gif" border="0"></a></td>';
if (($db_tipo == "amministratore") || ($db_tipo == "redattore"))
echo '<td align="center">'."<a href= \"edita.php?idDocumento=$a_row[idDocumento]\">".'<img src="../images/text.gif" border="0" align="center" alt="edita informazioni sul documento!"></a></td>';
echo '</tr>';
}// fine while (?)
} // fine else (')
}
echo'</table><br><br>'; //fine tabella dei documenti
}
}// fine else (+)
?>

</body>
</html>
<?
}// fine else (*)
?>
il codice è un tantino modificato xkè troppo lungo!!!
Vi ringrazio anticipatamente!!!!
Grazie!!!!!!!!
 

Discussioni simili