Ciao a tutti!
Ho un problema: Ho una pagina html nella quale c'è un form x mandare un'e-mail con allegato. Ho inserito uno script PHP che effettua un controllo dei campi lasciati vuoti e dà un messaggio se non sono compilati quelli obbligatori (tutti tranne l'allegato). Fin qui funziona. Dal momento in cui ho voluto aggiungere allo script una funzione che mi disabilita il pulsante di invio quando tutto è stato compilato sembra che non mi invia il form alla pagina php xkè diventa la pagina bianca. Ora, io conosco il php e non mastico molto bene javascript. Penso che l'errore sia nella prima pagina e nella seconda funzione javascript inserita anche xkè senza di quella il programma funziona benissimo.
Questa è la pagina contattaci.html (posto solo script e form)
<script SCRIPT type="text/javascript">
function checkrequired(which){
var pass=true
if (document.images){
for (i=0;i<which.length;i++){
var tempobj=which.elements[i]
if (tempobj.name.substring(0,8)=="required"){
if (((tempobj.type=="text"||tempobj.type=="textarea") &&tempobj.value=='')||(tempobj.type.toString().cha rAt(0)=="s"&&tempobj.selectedIndex==-1)){
pass=false
break
}}}}
if (!pass){
alert("Non hai compilato correttamente il form. Alcune informazioni non sono state inserite. Clicca su OK e verifica l'errore")
document.form1.invio.disabled = false
document.form1.reset.disabled = false
return false
}
else
document.form1.invio.disabled = true
document.form1.reset.disabled = true
return true
}
</script>
</head>
<body>
<table align="center" cellpadding="8" cellspacing="0">
<form enctype="multipart/form-data" name="form1" action="contatta.php" method="POST"
onSubmit="return checkrequired(this)">
<tr>
<td width="233" valign="top">
<div align="right" class="Stile1">Nome:</div></td>
<td width="376" valign="top"><input type="text" name="requiredname" size="30"></td>
</tr>
<tr>
<td valign="top"><div align="right" class="Stile1">Cognome:</div></td>
<td valign="top"><input type="text" name="requiredsurname" size="30"></td>
</tr>
<tr>
<td valign="top"><div align="right" class="Stile1">E-mail:</div></td>
<td valign="top"><input type="text" name="requiredemail" size="30"></td>
</tr>
<tr>
<td colspan="2" valign="top"> <div align="center" class="Stile1">Messaggio:</div></td>
</tr>
<tr>
<td colspan="2" valign="top">
<div align="center"><textarea cols="70" rows="15" name="requiredmessaggio"></textarea></div></td>
</tr>
<tr>
<td colspan="2" valign="top">
<div align="center"><span class="Stile1">File da allegare:</span>
<input type="hidden" name="MAX_FILE_SIZE" value="750000000" />
<input name="file1" type="file" size="50" />
</div>
<tr>
<td colspan="2" valign="top">
<div align="center"><input type="submit" value="INVIA" name="invio" />
<input type="reset" value="CANCELLA" name="reset" />
</div>
</form>
</table>
Mentre questa la pagina contatta.php Ma ripeto: penso che il problema sia del secondo javascript di contattaci.html
<?php
error_reporting(2047);
if (isset($_POST["invio"])) {
$percorso = "public/";
$file = $_FILES['file1']['name'];
/*Se non è stato allegato un file...*/
if ($file == "") {
//Recupero i dati inseriti dall'utente.
$nome = $_POST['requiredname'];
$cognome = $_POST['requiredsurname'];
$email = $_POST['requiredemail'];
$messaggio = $_POST['requiredmessaggio'];
$messaggio = stripslashes($messaggio);
echo "<h2>Grazie per averci contattato.
Questi sono i dati che hai inserito:</h2>
";
echo "Nome: $nome
Cognome: $cognome
Email: $email";
echo "
Messaggio:<p class=\"testi1\">
<FORM>
<textarea cols=\"70\" rows=\"15\" READONLY>$messaggio</textarea>
</FORM></p>";
}
/*Se invece è stato allegato un file... */
//copio il file nella cartella 'public' e faccio come sopra x i dati.
else {if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
//Recupero i dati inseriti dall'utente.
$nome = $_POST['requiredname'];
$cognome = $_POST['requiredsurname'];
$email = $_POST['requiredemail'];
$messaggio = $_POST['requiredmessaggio'];
$messaggio = stripslashes($messaggio);
echo "<h2>Grazie per averci contattato.
Questi sono i dati che hai inserito:</h2>
";
echo "Nome: $nome
Cognome: $cognome
Email: $email";
echo "
Messaggio:<p class=\"testi1\">
<FORM>
<textarea cols=\"70\" rows=\"15\" READONLY>$messaggio</textarea>
</FORM></p>";
}
?>
HELP ME!