Newsgroup: it.comp.www.php
Titolo: upload e <SELECT>  in un <FORM>

ciao,
sto mettendo in una pagina un <form> per fare l'upload di file..
vorrei perň scegliere in una <select> la cartella dove fare upload.
<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION=\"$PHP_SELF\">
<SELECT class=inputok name="locazione">
    <OPTION class=inputok value="dir1">dir1</OPTION>
    <OPTION class=inputok value="dir2">dir2</OPTION>
    <OPTION class=inputok value="dir3">dir3</OPTION>
    <OPTION class=inputok value="dir4">dir4</OPTION>
   </SELECT>
    <INPUT class="inputok" TYPE="file" NAME="file$k">
    <INPUT TYPE="submit" class="inputok" value=UPLOAD>
</FORM>
questo č il mio form...
come mai l'upload me lo fa bene, ma non prende la variabile "locazione", č 
come se non esistesse... forse dipende da ENCTYPE???
grazie
trullox :o) 

 "locazione", h come se non esistesse... forse dipende da ENCTYPE???
Posta il codice che utilizzi per l'upload.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 fatto non succede nulla

> Posta il codice che utilizzi per l'upload.
questo tutto il codice della pagina, forse non posso avere in uno stesso 
form un <select> e gestire anche l'invio di file?
oppure devo fare due pagine separate e non inserire tutto il codice in una 
sola che chiama se stessa?
grazie per l'aiuto... :o)
trullox :o)
<?
// Codice Html dell'header della pagina
include("../include/configurazione.php");
include("../include/funzioni.php");
include("./Bheader.inc.php");
if(!IsSet($_SESSION['user'])){ //non siamo loggati, pagina di login
 echo("SE NON SEI LOGGATO QUESTA PAGINA NON LA PUOI VEDERE...<br>
  Devi effettuare login.<br>
  Puoi anche contattare l'amministratore: ".$option['admin_email']."<br>");
 }else{//sei loggato
// FILE DI CONFIGURAZIONE
// Nome della directory in cui verranno salvati i files (con lo slash "/")
$d="../utenti/".$Username."";
// Dimensione massima del file in bytes (15000= 15KB)
$s=100000;
// Messaggio Trasferimento del file...
$c="Creating";
// Messaggio di errore (Dimensione del file al di sopra del limite imposto)
$err="ERROR - File troppo grande";
// Messaggio di errore (Non trovato, o Casella-Sfoglia-file vuota)
$err1="EMPTY";
// Messaggio di OK
$ok="OK";
// Messaggio torna-indietro
$back="Upload di altri file";
// Numero di uploads simulanei min=1, max=14
$up=5;
//Tutti i tipi di immagine di cui si puň fare l'upload
$cert0 = "image/x-png"; //PNG type 0
$cert1 = "image/pjpeg"; //Jpeg type 1
$cert2 = "image/jpeg"; //Jpeg type 2
$cert3 = "image/gif"; //Gif type
$cert4 = "image/ief"; //Ief type
$cert5 = "image/png"; //Png type
$cert6 = "image/tiff"; //Tiff type
$cert7 = "image/bmp"; //Bmp Type
$cert8 = "image/vnd.wap.wbmp"; //Wbmp type
$cert9 = "image/x-cmu-raster"; //Ras type
$cert10 = "image/x-x-portable-anymap"; //Pnm type
$cert11 = "image/x-portable-bitmap"; //Pbm type
$cert12 = "image/x-portable-graymap"; //Pgm type
$cert13 = "image/x-portable-pixmap"; //Ppm type
$cert14 = "image/x-rgb"; //Rgb type
$cert15 = "image/x-xbitmap"; //Xbm type
$cert16 = "image/x-xpixmap"; //Xpm type
$cert17 = "image/x-xwindowdump"; //Xwd type
$cert18 = "text/html"; //Html type
$cert19 = "application/pdf"; //PDF type
$cert20 = "application/x-zip-compressed"; //Zip type
$cert21 = "application/msword"; //Word type
?>
<!--<HTML>
<HEAD>
</HEAD>
<STYLE TYPE="text/css">
A { COLOR: RED }
FONT { font-family: Verdana }
</STYLE>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000"><font size=2><BR><BR>-->
<DIV id=corpo>
OPZIONI UPLOAD.
<br><br><br><br><br><br><br><br>
<?
if ($d<>''){
 if (!(file_exists($d))){ /*if the dir does not exist...create it*/
  umask(011);
  mkdir($d,"0777");
  echo "E' stata crata la directory $d .<br>
   Da questo momento puoi fare upload delle tue pagine<br>";
 }
}
?>
<?php
if ($a<>'1'){
 $locazione='';
 echo "<FORM METHOD=\"Post\" ENCTYPE=\"multipart/form-data\" 
ACTION=\"$PHP_SELF\">\n<input type=hidden name=a value=1>\n";
 $k=1;
 echo("locazione=|$locazione|<br>");
 echo("<br>");
 while ($k<=$up){
  echo "File $k: <INPUT class=\"inputok\" TYPE=\"file\" 
NAME=\"file$k\"><BR><BR>\n";
  $k++;
 }
 echo "<INPUT TYPE=\"submit\" class=\"inputok\" value=UPLOAD>\n</FORM>";
 ?>
 Inserisci questo file nello spazio di:
  <form METHOD="Post" ACTION="<?php $PHP_SELF ?>">
   <SELECT class=inputok name="locazione">
    <OPTION class=inputok value="home">HomePage</OPTION>
    <OPTION class=inputok value="<?php echo("$Username");?>"><?php 
echo("$Username");?></OPTION>
    <OPTION class=inputok value="pag1">Pag1</OPTION>
    <OPTION class=inputok value="pag2">Pag2</OPTION>
    <OPTION class=inputok value="pag3">Pag3</OPTION>
     </SELECT>
  </form>
 <br>
<?php
} else {
 $k=1;
 while ($k<=$up){
  echo "$c File $k";
  //echo("locazione=".$locazione."<br>");
  $t=$HTTP_POST_FILES["file$k"]['tmp_name'];
  $sz=$HTTP_POST_FILES["file$k"]['size'];
  $n=$HTTP_POST_FILES["file$k"]['name'];
  $n=str_replace(" ","_",$n);
  $type=$HTTP_POST_FILES["file$k"]['type'];
  if ($t==''){
   $n='';
   echo ": $err1";
  } else{
   if ($sz>$s){
    echo ": $err";
   } else{
    if (($type == $cert0) or
     ($type == $cert1) or
     ($type == $cert2) or
     ($type == $cert3) or
     ($type == $cert4) or
     ($type == $cert5) or
     ($type == $cert6) or
     ($type == $cert7) or
     ($type == $cert8) or
     ($type == $cert9) or
     ($type == $cert10) or
     ($type == $cert11) or
     ($type == $cert12) or
     ($type == $cert13) or
     ($type == $cert14) or
     ($type == $cert15) or
     ($type == $cert16) or
     ($type == $cert17) or
     ($type == $cert18) or
     ($type == $cert19) or
     ($type == $cert20) or
     ($type == $cert21)) {
    if(strcmp($locazione,$Username)==0){
     echo("");
     echo("<br>sono nel primo caso<br>");
    }else{
     if(strcmp($locazione,'home')==0){
      $d="../Pag1/Documenti";
     }else{
      if(strcmp($locazione,'lc')==0){
       $d="../Pag2/Documenti";
      }else{
       if(strcmp($locazione,'eg')==0){
        $d="../Pag3/Documenti";
       }else{
        if(strcmp($locazione,'rs')==0){
         $d="../Pag4/Documenti";
          }else{
          echo("Locazione non riconosciuta<br>");
         }
        }
       }
      }
     }
    }
   echo("<br>locazione2=|$locazione|<br>");
    echo " ($n):tipo: $type : ";
    $dove="$d/$n";
    $upload[$k]=$n;
    //echo("upload=$upload[$k]<br>");
    //echo("dove=$dove<br>");
    if(!copy($t,$dove)){
     echo("Copia non riuscita<br>");/* Copying the file */
    }else{
     echo $ok;
    }
    echo("<br>La directory č: $d <br>");
    }else{
   echo "ERRORE, il file potrebbe non essere una immagine $type";
   }
  }
  }
  echo "<br>";
  $k++;
 }
 echo "<br><br><a href=\"$PHP_SELF\">$back</a>";
 //echo("upload=$upload<br>");
 echo("<p align=right ><a href=./formCreaPagine.php><b>Avanti con 
l'inserimento</b></a></p>");
 //for($i=1;$i<=$up;$i++){
 // if($upload[$i]!='')
 //  echo("upload$i=".$upload[$i]."&");
 //}
 $_SESSION['upload']=$upload;
 $_SESSION['locazione']=$locazione;
 //echo("locazione=$locazione ><b>Avanti con l'inserimento</b></a></p>");
 //echo("<INPUT type=hidden name=locazione value=$locazione>");
}
?>
</font>
<?php
}//fine loggato
?>
<br><br>
</DIV>
<?php include("./Bfooter.inc.php"); ?>. 

     if(strcmp($locazione,$Username)==0){
non sara' per caso: $_REQUEST['locazione'] ?
Se hai register globals off sara' sicuramente questo il problema

 Se hai register globals off sara' sicuramente questo il problema
no, non cambia nulla, non è questo il problema.... bo! sicuro che posso fare 
tutto nella stessa pagina e che il php supporta nello stesso form l'invio di 
file e di variabili? magari la domanda è stupida, ma neanche su google ho 
trovato molto al riguardo...:o(
cmq grazie
trullox :o)

 trovato molto al riguardo...:o(
Funziona di sicuro.
metti all'inizio dello script, quando riceve i dati:
<pre>
print_r($_REQUEST);
</pre>
Magari riesci a vedere quale sia il problema.

> Funziona di sicuro.
infatti funziona, colpa mia, errore grossolano e da ignorante...
mettevo
$_REQUEST['$locazione'] al posto di
$_REQUEST['locazione']
sorry..
grazie per l'aiuto..
trullox :o)