• User Attivo

    problema con header ("Location: ".$URL)

    ciao a tutti,

    quando faccio l'upload del file vorrei rimanere in quella pagina e non tornare indietro alla pagina precedente.

    Così funziona:
    [PHP]
    <?
    if ($pagina==6){
    $dir = "dir";

    if ($file) {
    copy($_FILES['file']['tmp_name'], "$absolute_path/$file_name") or die("Il file che stai pubblicando non può essere copiato sul server");
    $stringa13="INSERT INTO storico_file_d_protocollo (file, id_protocolli, id_admin_ins_file, data_ins_file, ora_ins_file)
    VALUES ('$file_name', '$id_protocolli', '$id_admin_ins_file', curdate(), curtime())";
    mysql_query($stringa13, $conn) or die ("errore ".mysql_error());
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=2#fondo";
    header ("Location: ".$URL);
    }
    else {
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=20#fondo";
    header ("Location: ".$URL);
    }

    }
    ?>
    [/PHP]

    ma se aggiungo dei controlli non funziona più, perchè?:
    [PHP]
    <?
    if ($pagina==6){
    $dir = "dir";

    if ($file) {
    $ext = strrchr($file_name,'.');
    if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=21#fondo";
    header ("Location: ".$URL);
    }
    else if (file_exists("$absolute_path/$file_name")) {
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=22#fondo";
    header ("Location: ".$URL);
    }
    else if (($sizelimit == "yes") && ($file_size > $sizebytes)) {
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=23#fondo";
    header ("Location: ".$URL);
    }
    else {
    copy($_FILES['file']['tmp_name'], "$absolute_path/$file_name") or die("Il file che stai pubblicando non può essere copiato sul server");
    $stringa13="INSERT INTO storico_file_d_protocollo (file, id_protocolli, id_admin_ins_file, data_ins_file, ora_ins_file)
    VALUES ('$file_name', '$id_protocolli', '$id_admin_ins_file', curdate(), curtime())";
    mysql_query($stringa13, $conn) or die ("errore ".mysql_error());
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=2#fondo";
    header ("Location: ".$URL);
    }
    }
    else {
    $URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=20#fondo";
    header ("Location: ".$URL);
    }

    }
    ?>
    [/PHP]


  • User

    ciao,
    un consiglio metti la funzione header alla fine dell'if principale visto che la utilizzi in ognuno...così la esegui una volta sola e riesci a leggerlo meglio
    cmq per quanto riguarda il tuo problema fai un var_dump della variabile $URL ogni volta che utilizzi l'header così vedi se effettivamente entra nell'if e quale valore assume (ovviamente commenta l'header, sennò è tutto inutile)


  • User Attivo

    ho spostato l'header nell'if principale e ora il comando funziona nelle due condizioni finali, però nelle prime 3 ancora no 😞

    ma cos'è var_dump?


  • User

    prova così:
    [php]
    <?
    if ($pagina==6){
    $dir = "dir";

    if ($file) {
    	$ext = strrchr($file_name,'.');
    	if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
    		$URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=21#fondo";
    	}
    	else if (file_exists("$absolute_path/$file_name")) {
    		$URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=22#fondo";
    	}
    	else if (($sizelimit == "yes") && ($file_size > $sizebytes)) {
    		$URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=23#fondo";
    	}
    	else {
    		copy($_FILES['file']['tmp_name'], "$absolute_path/$file_name") or die("Il file che stai pubblicando non può essere copiato sul server");
    		$stringa13="INSERT INTO storico_file_d_protocollo (file, id_protocolli, id_admin_ins_file, data_ins_file, ora_ins_file)
    		            VALUES ('$file_name', '$id_protocolli', '$id_admin_ins_file', curdate(), curtime())";
    		mysql_query($stringa13, $conn) or die ("errore ".mysql_error());
    		$URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=2#fondo";
    	}
    }
    else {
    	$URL="inserimento_protocollo.php?protocollo=".$id_protocolli."&pagina=20#fondo";
    }
    var_dump($URL);
    // se fai il var_dump lascia commentato l'header, altrimenti rimuovi il commento
    //header ("Location: ".$URL);
    

    }
    ?>
    [/php]

    il comando var_dump serve per stampare a video il valore della variabile (e anche il suo tipo)


  • User Attivo

    ok, grazie ora ci provo 🙂