Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2007, 13:00
Artefio
 
Fecha de Ingreso: junio-2007
Mensajes: 76
Antigüedad: 16 años, 10 meses
Puntos: 1
Conflicto con javascript y php?

Conflicto con javascript y php?

Hola, antes que nada quiero agradecer de antemano por la ayuda que me puedan brindar. Tengo una pagina con un libro de visitas que publica un mensaje y sube una imagen al mismo tiempo, funciona todo ok la parte de php. Lamentablemente por la desgraciada intromision de un vivo necesito restringir los caracteres que se pueden publicar, ya que me ha estado metiendo codigo, mas precisamente un script que hace creer al visitante que tiene un virus o algo asi redirigiendo a una pagina X. El tema es que a la fuerza, ya que se solo lo basico de javascript, logre acomodar el codigo para validar el formulario, pero ahora la pagina no me hace el submit y por tanto el php no puede ni insertar los datos en la base ni subir la foto. El script funciona como yo quiero pero luego de procesarse no hace el submit. La verdad no se donde esta el error. Les dejo el script y el form para ver que les parece.

El form

Código PHP:
    ...echo "<tr>
                  <form method=\"post\" name=\"insert_intro\" action=\"libro_devisitas.php\" enctype=\"multipart/form-data\">
                    <td class=\"contenidos_corto_der\">                      
                        <table align=\"center\">                          
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap><strong>Tu nombre:</strong></td>
                            <td><input type=\"text\" name=\"nombre\" id=\"input\" value=\"\" size=\"34\"></td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap><strong>Tu Mansaje:</strong></td>
                            <td><textarea name=\"texto\" cols=\"33\" id=\"input\" rows=\"10\"></textarea></td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap><strong>Tu E-Mail:</strong></td>
                            <td><input type=\"text\" name=\"email\" id=\"input\" value=\"\" size=\"34\" />                              
                              El E-Mail que ingreses no ser&aacute; público. Unicamente será utilizado para que yo pueda responderte.</td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap><strong>Imagen:</strong></td>
                            <td><input name=\"foto\" type=\"file\" size=\"16\" /></td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap>&nbsp;</td>
                            <td>Si lo deseas puedes agragar una foto o imagen a tu mensaje</td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap>&nbsp;</td>
                            <td><table width=\"100%\">
                              <tr>
                                <td>
                                <input name=\"submit\" type=\"button\" value=\"Publicar\" onClick=\"javascript:validarcaracteres();\"  />
                                  <input type=\"reset\" name=\"Submit\" value=\"Borrar\" />
                                <div style=\"visibility:hidden\">
                                <label>
                                  <input name=\"fecha\" type=\"radio\" value=\"si\" checked=\"checked\" />
                                  Mostrar fecha
                                  <input type=\"radio\" name=\"fecha\" value=\"no\" />
No mostrar fecha</label>
</div></td>
                                <td><div align=\"right\">
                                <div style=\"display:none\">
                              <div align=\"right\">
                                <input name=\"tipofoto\" type=\"radio\" id=\"tipofoto\" value=\"SUBIR\" checked />
                                <input name=\"sobreescribir\" type=\"checkbox\" id=\"sobreescribir\" value=\"checkbox\" />
                                Sobreescribir si ya existe en el servidor                              </div>
                          </div>
                                  
                                </div></td>
                              </tr>
                            </table>                            </td>
                          </tr>
                          <tr valign=\"baseline\">
                            <td align=\"right\" valign=\"top\" nowrap>&nbsp;</td>
                            <td>&nbsp;</td>
                          </tr>
                        </table>
                        
                        <input type=\"hidden\" name=\"MM_insert\" value=\"insert_intro\"> 
                        <input type=\"hidden\" name=\"mostrar_form\" value=\"no\">                      </td>
                      </form>
                  </tr>

</table>

  </td>"

El script

Código HTML:
<SCRIPT language=JavaScript>
<!--
function validarcaracteres(){

var field1 = document.insert_intro.nombre;
var field2 = document.insert_intro.texto;
var field3 = document.insert_intro.email;
var field4 = document.insert_intro.foto;
var valid = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789,;.:-_¡!¿?·$/()=-+@áéíóú~"
var ok = "yes";
var temp;

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Corroboramos el input del nombre. Si esta vacio pedimos se de un nombre. Si esta lleno se comprueban los caracteres ingresados.
	if ((document.insert_intro.nombre.value == "")||(document.insert_intro.nombre.value == null)){
		alert("Por favor dime tú nombre          "); 
		document.insert_intro.nombre.focus();
		return false;
	}else{
		for (var i=0; i<field1.value.length; i++) {
			temp = "" + field1.value.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") ok = "no";
		}
		
		if ((ok == "no")||(document.insert_intro.nombre.value == "")){
			alert("Puedes publicar cualquier texto que no contenga los siguientes caracteres: \n\n· <\n· >\n· %\n· &\n\nSi estás intentando pegar un texto para enviarlo a la sala,\nrevisa que el mismo no contenga dichos caracteres.\n\nTampoco están permitidos los mensajes en blanco, ni las comillas.");
			document.insert_intro.nombre.focus();
			return false;
		}
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Corroboramos el input del mensaje. Si esta vacio pedimos se llene. Si esta lleno se comprueban los caracteres ingresados.
	if ((document.insert_intro.texto.value == "")||(document.insert_intro.texto.value == null)){
		alert("Aún no has escrito ningún mensaje...          "); 
		document.insert_intro.texto.focus();
		return false;
	}else{
		for (var i=0; i<field2.value.length; i++) {
			temp = "" + field2.value.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") ok = "no";
		}
		
		if ((ok == "no")||(document.insert_intro.texto.value == "")){
			alert("Puedes publicar cualquier texto que no contenga los siguientes caracteres: \n\n· <\n· >\n· %\n· &\n\nSi estás intentando pegar un texto para enviarlo a la sala,\nrevisa que el mismo no contenga dichos caracteres.\n\nTampoco están permitidos los mensajes en blanco, ni las comillas.");
			document.insert_intro.texto.focus();
			return false;
		}
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Corroboramos el input del email. Si esta vacio no pasa nada. Si esta lleno se comprueban los caracteres ingresados.
	if ((document.insert_intro.email.value == "")||(document.insert_intro.email.value == null)){}
	else{
		for (var i=0; i<field3.value.length; i++) {
			temp = "" + field3.value.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") ok = "no";
		}
		
		if ((ok == "no")||(document.insert_intro.email.value == "")){
			alert("El E-Mail que has proporcionado contiene caractéres no permitidos.");
			document.insert_intro.email.focus();
			return false;
		}
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Corroboramos el input de la foto. Si esta vacio no pasa nada. Si esta lleno se comprueban los caracteres ingresados.
	if ((document.insert_intro.foto.value == "")||(document.insert_intro.foto.value == null)){}
	else{
		for (var i=0; i<field4.value.length; i++) {
			temp = "" + field4.value.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") ok = "no";
		}
		
		if ((ok == "no")||(document.insert_intro.foto.value == "")){
			alert("Has intentado subir una foto o imágen que contiene en su nombre caractéres no permitidos. Por favor corrovora el nombre de la misma y de ser necesario re nombrala antes de subirla. Gracias.");
			document.insert_intro.foto.focus();
			return false;
		}
	}	
	

document.insert_intro.submit();	

}
-->
</SCRIPT> 
desde ya muchas gracias