Explorer a scatti php script caricamento file in base al browser

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Ed ecco ancora una volta che aggiustando una cosa se ne rompe un'altra :dipser:

Ho due richieste, spero possiate aiutarmi. Devo dire che in questo forum aiutate sempre :byebye:

1) Ho notato che se apro il mio sito in IE questo si blocca se non completamente, quasi....
Facendo una ricerca ho capito qual'è il problema:

I browser mostrano una fluidità dell’animazione quando riescono a seguire tale successione di step e ad aggiornare il valore CSS al momento giusto. IE ha problemi con le animazioni complesse proprio per questo motivo: è come un batterista che perde il tempo durante l’esecuzione e poi cerca di recuperare. Ecco perchè in plugin complessi le animazioni in IE si vedono a scatti: semplicemente, IE perde il tempo dell’animazione (specie quando duration ha un valore superiore a 1000) e cerca di concludere la sequenza di step alla bene e meglio.

Per ovviare ho creato alcuni file ad hoc più "leggeri". Adesso vorrei che questi vengano caricati al posto degli altri se viene rilevato che l'utente sta utilizzando IE

Per fare ciò ho trovato in rete questo script:

PHP:
function using_ie() 
{ 
$u_agent = $_SERVER['HTTP_USER_AGENT']; 
$ub = False; 
if(preg_match('/MSIE/i',$u_agent)) 
{ 
$ub = True; 
} 

return $ub; 
} 

function ie_js() {
if (using_ie()) {
$jquery = 'ie.js';
}else{
$jquery = 'normal.js';
}
?>
<script src="js/<?php echo $jquery; ?>" type="text/javascript"></script>

che tuttavia non mi funziona. Ovviamente ho caricato <script src="js/<?php echo $jquery; ?>" type="text/javascript"></script> nell'header e modificato i percorsi mentre la parte php l'ho inserita a inizio pagina nel php.

Il problema è che sia con chrome che con ie NON vede il js che vado a sostituire come mai? Che c'è di sbagliato?

2) Volevo implementare questa funzione http://blog.mrwebmaster.it/2010/09/15/duplicare-i-campi-di-un-form-con-jquery.html però per gli allegati.

Ho fatto in questo modo:

nel form.php e funziona
HTML:
			<fieldset> 
			<!-- inserisco l'allegato della mail -->		
			<p><label for="mex" >Allega file</label></p>
			<p class="clone"><input type="file" name="allegato[]" id="allegato" class='input' /></p>
			<p class="a"><a href="#" class="add" rel=".clone">Aggiungi Allegato</a></p>
			</fieldset>

Mentre non so come gestire il php. Ho provato in questo modo:
PHP:
	if($_POST['allegato']){
	  $array = $_POST['allegato'];
	  foreach ($array as $allegato) {
		if (strlen($allegato)>0) {
		  $mail->AddAttachment($_FILES['allegato']['tmp_name'],$_FILES['allegato']['name']); 
		}
	  }
	}

La mail la invia ma senza allegati T.T
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
guarda questo scriptino e soprattutto il var_dump.
e capisci perche non ti allega, $allegato è una array di array organizzato in un certo modo

PHP:
<?php
if(isset($_POST['Submit'])){
	$allegato=$_FILES['allegato'];
	var_dump($allegato);//guarda cosa risulta da questo var dump
	echo "<br>";
	for($k=0; $k < count($_FILES['allegato']['name']); $k++){
		echo $_FILES['allegato']['tmp_name'][$k]." - ".$_FILES['allegato']['name'][$k];echo "<br>";
		//$mail->AddAttachment($_FILES['allegato']['tmp_name'][$k],$_FILES['allegato']['name'][$k]);
	}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" enctype="multipart/form-data">
<input name="allegato[]" type="file" id="allegato"><br>
<input name="allegato[]" type="file" id="allegato"><br>
<input type="submit" name="Submit" value="Invia">
</form>

p.s.
unp problema - > un post
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
[/PHP]

p.s.
unp problema - > un post

Scusa come da regolamento hai ragione, se puoi edita e cancella il 1 problema... :hammer:

ciao
guarda questo scriptino e soprattutto il var_dump.
e capisci perche non ti allega, $allegato è una array di array organizzato in un certo modo

PHP:
<?php
if(isset($_POST['Submit'])){
	$allegato=$_FILES['allegato'];
	var_dump($allegato);//guarda cosa risulta da questo var dump
	echo "<br>";
	for($k=0; $k < count($_FILES['allegato']['name']); $k++){
		echo $_FILES['allegato']['tmp_name'][$k]." - ".$_FILES['allegato']['name'][$k];echo "<br>";
		//$mail->AddAttachment($_FILES['allegato']['tmp_name'][$k],$_FILES['allegato']['name'][$k]);
	}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" enctype="multipart/form-data">
<input name="allegato[]" type="file" id="allegato"><br>
<input name="allegato[]" type="file" id="allegato"><br>
<input type="submit" name="Submit" value="Invia">
</form>

Se non ho capito male:

if(isset($_POST['Submit'])) sta ad indicare "se la variabile invia è stata impostata e non è nulla (cioè invia è stato premuto)"
Associ ad $allegato il $_FILES['allegato']; quindi il nome con cui fai l'upload dell'allegato per poter fare il var_dump
Spazio
Cominci con for il ciclo per l'elemento $k che sarà l'indice assegnato ad ogni allegato: con k=0, k è minore del numero (count) degli elementi dell'allegato( con $_FILES['allegato']['name'] si richiama il campo dell'allegato e si mantiene il nome dell'allegato); poi qui non mi è chiaro per $k++ indichi che il conteggio è ricorsivo? Cioè per ogni allegato ricorre questo ciclo?
Allora
Echo dei percorsi

Invii l'allegato con indice $k nella cartella temporanea - carichi l'allegato con indice $k con il proprio nome


il var_dump dice:

Codice:
array(5) { ["name"]=> array(2) { [0]=> string(6) "bg.png" [1]=> string(7) "chi.png" } ["type"]=> array(2) { [0]=> string(9) "image/png" [1]=> string(9) "image/png" } ["tmp_name"]=> array(2) { [0]=> string(14) "/tmp/phpkdKq8h" [1]=> string(14) "/tmp/phpZwvV9J" } ["error"]=> array(2) { [0]=> int(0) [1]=> int(0) } ["size"]=> array(2) { [0]=> int(2603) [1]=> int(116138) } } 
/tmp/phpkdKq8h - bg.png
/tmp/phpZwvV9J - chi.png

Questa parte non mi è chiara ["error"]=> array(2) non capisco il riscontro con il codice.. :) che comunque funziona :eek:
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
if(isset($_POST['Submit'])) sta ad indicare "se la variabile invia è stata impostata e non è nulla (cioè invia è stato premuto)"
si, in quanto ho fatto tutto in una pagina, se fai due pagine non servirebbe
Associ ad $allegato il $_FILES['allegato']; quindi il nome con cui fai l'upload dell'allegato per poter fare il var_dump
si, l'ho fatto per comodità, ma avrei potuto fare direttamente
var_dump($_FILES['allegato']);

poi spieghiamo l'array (te lo indico per un allegato solo poi puoi esternderlo a più d'uno)
$_FILES['allegato'] è un array (superglobale) a due dimensioni composto da
$_FILES['allegato']['name']
$_FILES['allegato']['tmp_name']
$_FILES['allegato']['type']
$_FILES['allegato']['error'] questo è 0 se non ci sono errori
ricordati che mentre il nome 'allegato? dipende da quallo che metti nel campo di input gli altri nomi 'name', 'tmp_name'... non puoi cambiarli

se tu metti (sia come ahi fatto tu o come ho semplficato io) nel form che il nome del campo file sia un array allegato[]
diventa un array a tre dimensioni (es se metti due allegati)
$_FILES['allegato']['name'][0] si riferisce al primo allegato
ecc.. per gli altri
$_FILES['allegato']['name'][1] si riferisce al secondo allegato
ecc.. per gli altri
ecc.. se gli allegati sono più di due

con $k++ indico al ciclo for di incrementare il valore di $k di uno ad ogni ciclo (ricordati che se non indicato, come deve essere in questo caso, l'indice numerico parte da zero 0, 1, 2, ....)
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
ciao

si, in quanto ho fatto tutto in una pagina, se fai due pagine non servirebbe

si, l'ho fatto per comodità, ma avrei potuto fare direttamente
var_dump($_FILES['allegato']);

poi spieghiamo l'array (te lo indico per un allegato solo poi puoi esternderlo a più d'uno)
$_FILES['allegato'] è un array (superglobale) a due dimensioni composto da
$_FILES['allegato']['name']
$_FILES['allegato']['tmp_name']
$_FILES['allegato']['type']
$_FILES['allegato']['error'] questo è 0 se non ci sono errori
ricordati che mentre il nome 'allegato? dipende da quallo che metti nel campo di input gli altri nomi 'name', 'tmp_name'... non puoi cambiarli

se tu metti (sia come ahi fatto tu o come ho semplficato io) nel form che il nome del campo file sia un array allegato[]
diventa un array a tre dimensioni (es se metti due allegati)
$_FILES['allegato']['name'][0] si riferisce al primo allegato
ecc.. per gli altri
$_FILES['allegato']['name'][1] si riferisce al secondo allegato
ecc.. per gli altri
ecc.. se gli allegati sono più di due

con $k++ indico al ciclo for di incrementare il valore di $k di uno ad ogni ciclo (ricordati che se non indicato, come deve essere in questo caso, l'indice numerico parte da zero 0, 1, 2, ....)

Ti scrivo quello che ho capito:

'name', 'tmp_name' non posso ovviamente cambiarli perchè il 1 serve a mantenere il nome originario dell'allegato, il secondo è il percorso della cartella temporanea in cui vengono caricati i file.

A name="allegato[]" in particolare a [] corrisponde il ciclo for (e qui ci sono arrivato).

Con $k++ fai in modo che $k sia

-l'indice del numero di allegati che si incrementa in base al numero di stringhe all'interno del form (Es: allegato[] allegato[] allegato[] = [0], [1], [2] )

E fin qui ci siamo.

Se $k=0 l'errore non c'è, ma che errore dovrebbe esserci? Un errore nel caricamento?

Perchè hai messo
PHP:
 $k < count($_FILES['allegato']['name']);
Se non erro vuol dire che k è minore del numero (count) degli elementi dell'allegato. A che serve? Serve a contare quanti allegati ci sono? Se è così perchè quel < ?

Questa stringa invece mi è chiara
$mail->AddAttachment($_FILES['allegato']['tmp_name'][$k],$_FILES['allegato']['name'][$k]);
Serve caricare tutti gli allegati grazie a [$k] (allegato 1,2 etc...)
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [HTML] Glyphicon non visualizzate in internet explorer CMS (Content Management System) 1
felino [Windows XP] Errore continuo su 'explorer.exe' Windows e Software 2
Mauro Guardiani video come sfondo problemi con explorer 11 PHP 0
asevenx galleria fotografica che da problemi con Internet Explorer Javascript 1
F [risolto] Problema javascript Internet Explorer Javascript 1
felino Forzare la compatibilità di Internet Explorer HTML e CSS 0
M aiuto per inserimento video anche internet explorer HTML e CSS 3
A html e css problemi con explorer 8 HTML e CSS 0
A Html e visulizzazone explorer 8 - problemi HTML e CSS 1
B Internet explorer non apre i menù ? HTML e CSS 0
A Problema con un plugin con explorer jQuery 0
Y problema allineamento form con internet explorer HTML e CSS 2
S slide immagini errore su explorer Javascript 0
M Come fare il debug di una applicazione web su Internet Explorer 8 jQuery 1
C Script Javascript/Html che con internet Explorer non viene visualizzato. Javascript 7
M css html problema con explorer help HTML e CSS 0
G jquery e internet explorer 8 jQuery 1
D Come cancellare Internet Explorer 8? Windows e Software 2
K Perché "session_start" mi cambia l'impaginazione su explorer? PHP 14
M Problema in Internet Explorer 7 (ma anche 6 o 8 ) con i file pdf Windows e Software 2
F problema menu a tendina con explorer HTML e CSS 2
V Mappa di Google su explorer funziona, su CHROME e FIREFOX NO! Javascript 1
F addClass problemi con explorer jQuery 3
Frank10 Problemino con il menu fisso in fondo pagina ed il solito, explorer HTML e CSS 10
M Incompatibilità browser Firefox – Explorer PHP 12
carter Strani bordi ai link con Internet Explorer WordPress 2
D problema internet explorer avviso popup Windows e Software 1
F Drop Down Menu compatibile con internet explorer HTML e CSS 0
A Favicon funziona solo su Firefox e non su Explorer - Perchè ? - HTML e CSS 6
C Problemi di fix con Explorer ASP.NET 2
P Explorer disattiva la scrittura su tag <input> Javascript 0
E errore con internet explorer Windows e Software 2
L [php] redirect non funziona sotto internet explorer PHP 6
cervelliamo realizzato menù a tendina con css, internet explorer non lo legge bene HTML e CSS 15
T problema con i css ... explorer visualizza male... HTML e CSS 2
P Problema compatibilità Internet Explorer HTML e CSS 1
M Lentenza di accesso campi su Internet Explorer PHP 5
S [Vb.net] Eseguire un programma richiamando l'explorer di windows o il comando esegui .NET Framework 1
V Problema sfondo solo con Internet Explorer HTML e CSS 0
M Problemi tra versioni di Explorer 7/8 & Crome PHP 6
M problema explorer 8 con javascript innerhtml/ajax Javascript 0
1 Rollover e link inesistenti con Firefox ma funzionanti con Internet Explorer HTML e CSS 7
neo996sps Errore visualizzazione sito con explorer HTML e CSS 1
M Mistero: Mozilla, tutto perfetto, anomalia in Internet explorer HTML e CSS 2
I Script non funzionante in explorer Javascript 1
M Problema con frame in Internet Explorer HTML e CSS 6
T Problema blocco popup con Internet Explorer Windows e Software 3
S script con javascript non viene visto da Firefox e Explorer ma solo da Chrome Javascript 2
F problemi con la visualizzazione in internet explorer Javascript 1
F problemi con la visualizzazione in internet explorer HTML e CSS 6

Discussioni simili