Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] La página no acaba de cargarse

Estas en el tema de La página no acaba de cargarse en el foro de PHP en Foros del Web. Tengo un código que lo que hace es recibir los datos de un formulario y filtrarlos, y si son correctos los guarda en un archivo ...
  #1 (permalink)  
Antiguo 03/07/2014, 09:12
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 6 meses
Puntos: 2
La página no acaba de cargarse

Tengo un código que lo que hace es recibir los datos de un formulario y filtrarlos, y si son correctos los guarda en un archivo y los manda por correo, el problema es que aparentemente todo está bien, pero a la hora de la verdad no funciona. La página no llega a cargarse, aparece en blanco como si se quedase en un bucle infinito o faltasen los ; , pero lo he revisado y están todos los punto y coma así como no hay bucle infinito aparentemente.

Les dejo aquí el código que da problemas por si alguien encuentra donde está el error y me puede ayudar.

Código:
<?

// Evitar Injection
function no_x($analizar){
	$analizar= stripcslashes($analizar);
	$analizar= addslashes($analizar);
	
	$analizar = ereg_replace(";","",$analizar);
	$analizar = ereg_replace("<","",$analizar);
	$analizar = ereg_replace(">","",$analizar);
	$analizar = ereg_replace(":","",$analizar);
	$analizar = ereg_replace("/","",$analizar);
	$analizar = ereg_replace("'","",$analizar);
	$analizar = ereg_replace('"',"",$analizar);
	$analizar = ereg_replace("\\","",$analizar);
	
	return $analizar;
}

// Comprobar si es un correo
function isMail($Correo){
	$correcte = false;
	
	for($i=1; $i < strlen($Correo); $i++)
	{
			if($Correo[$i]=="@")
				$correcte = true;
	}
	
	return $correcte;
}

//Variables
$mal = 0:

$tlf1 = $_POST['tlf1'];
$tlf2 = $_POST['tlf2'];
$Correo = $_POST['Correo'];
$Nombre = $_POST['Nombre'];
$Apellidos = $_POST['Apellidos'];

if(isset($tlf1)){
	if(!is_numeric($tlf1) || strlen($tlf1) != 9){
		$mal = 1;
	}
	
	if(!isset($tlf2) || !is_numeric($tlf2) || strlen($tlf2) != 9){
		$mal = 1;
	}	
}else{
	if(isset($tlf2)){
		if(!is_numeric($tlf2) || strlen($tlf2) != 9){
			$mal = 1;}
		}else{
		$mal = 1;
	}
}

if(isset($Correo){
	$Correo = no_x($Correo);
	if(!isMail($Correo) || $Correo == ""){
		$mal =1:
	}
}

if(isset($Nombre)){
	if($Nombre != ""){
		$Nombre = no_x($Nombre);
	}else{
		$mal = 1;
	}
}else{
	$mal =1;
}

if(isset($Apellidos)){
	if($Apellidos != ""){
		$Apellidos = no_x($Apellidos);
	}else{
		$mal = 1;
	}
}else{
	$mal =1;
}

if($mal == 0){
// Guardar-ho en un txt
$fecha = date("dmYHis");
$contrat = "$fecha$Nombre";

$cont = "$Nombre $Apellidos con correo $correo y número de contacto $tlf/$movil solicita consulta de internet por satélite";

$arch=fopen("../contrats/$contrat.txt","w+");
fwrite($arch,$cont);
fclose($arch);

$to = '[email protected]';

mail($to,"Peticion Internet","Copia guardada en /contrats/$contrat.txt\r\n$cont");
}else{
	header("LOCATION:internet.html");
}

?>
Gracias por vuestra ayuda de antemano.
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding
  #2 (permalink)  
Antiguo 03/07/2014, 09:16
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: La página no acaba de cargarse

Buenas,

2 cosas:
1) ereg_replace está obsoleta, no se recomienda su uso (probablemente, esté generando algun tipo de error

2) el primer parámetro es un "ereg pattern"... creo que deberias usar str_replace, q te vale :
http://php.net/str_replace

3) En las condiciones, en la de correo, tienes un $mal = 1 : <- : y no ; xD
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 03/07/2014, 09:20
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: La página no acaba de cargarse

Hola,
he encontrado un : en vez de ; no sé si será eso pero compruébalo ;)
Código PHP:
Ver original
  1. if(isset($Correo){
  2.     $Correo = no_x($Correo);
  3.     if(!isMail($Correo) || $Correo == ""){
  4.         $mal =1[B]:[/B]
  5.     }
  6. }
Y te aconsejo que no uses ereg_replace sino substr_replace
Cristian Molina
  #4 (permalink)  
Antiguo 03/07/2014, 09:41
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: La página no acaba de cargarse

Vale, ese : se me escapó, quitado la función no_x() y todas sus llamadas, pero sigue pasando lo mismo.

Y gracias, me habéis dado muchas horas para dormir esta noche. Cuando llevas horas delante de la pantalla al final se escapan cosas.

¿Alguna otra idea de porqué esta fallando?

Hay variables que tienen el nombre cambiado pero ya está arreglado ($tlf -> $tlf1 , $movil -> $tlf2 , $correo -> $Correo)
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding

Última edición por Oracles; 03/07/2014 a las 09:47
  #5 (permalink)  
Antiguo 03/07/2014, 09:47
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: La página no acaba de cargarse

Los datos que recibes via _POST son correctos? ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #6 (permalink)  
Antiguo 03/07/2014, 10:04
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 78
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: La página no acaba de cargarse

:
$mal = 0:

falta ) cerrar el if y otros :
if(isset($Correo){
$Correo = no_x($Correo);
if(!isMail($Correo) || $Correo == ""){
$mal =1:
}
}

Código PHP:
<?

// Evitar Injection
function no_x($analizar){
    
$analizarstripcslashes($analizar);
    
$analizaraddslashes($analizar);
    
    
$analizar ereg_replace(";","",$analizar);
    
$analizar ereg_replace("<","",$analizar);
    
$analizar ereg_replace(">","",$analizar);
    
$analizar ereg_replace(":","",$analizar);
    
$analizar ereg_replace("/","",$analizar);
    
$analizar ereg_replace("'","",$analizar);
    
$analizar ereg_replace('"',"",$analizar);
    
$analizar ereg_replace("\\","",$analizar);
    
    return 
$analizar;
}

// Comprobar si es un correo
function isMail($Correo){
    
$correcte false;
    
    for(
$i=1$i strlen($Correo); $i++)
    {
            if(
$Correo[$i]=="@")
                
$correcte true;
    }
    
    return 
$correcte;
}

//Variables
$mal 0;

$tlf1 $_POST['tlf1'];
$tlf2 $_POST['tlf2'];
$Correo $_POST['Correo'];
$Nombre $_POST['Nombre'];
$Apellidos $_POST['Apellidos'];

if(isset(
$tlf1)){
    if(!
is_numeric($tlf1) || strlen($tlf1) != 9){
        
$mal 1;
    }
    
    if(!isset(
$tlf2) || !is_numeric($tlf2) || strlen($tlf2) != 9){
        
$mal 1;
    }    
}else{
    if(isset(
$tlf2)){
        if(!
is_numeric($tlf2) || strlen($tlf2) != 9){
            
$mal 1;}
        }else{
        
$mal 1;
    }
}

if(isset(
$Correo)){
    
$Correo no_x($Correo);
    if(!
isMail($Correo) || $Correo == ""){
        
$mal =1;
    }
}

if(isset(
$Nombre)){
    if(
$Nombre != ""){
        
$Nombre no_x($Nombre);
    }else{
        
$mal 1;
    }
}else{
    
$mal =1;
}

if(isset(
$Apellidos)){
    if(
$Apellidos != ""){
        
$Apellidos no_x($Apellidos);
    }else{
        
$mal 1;
    }
}else{
    
$mal =1;
}

if(
$mal == 0){
// Guardar-ho en un txt
$fecha date("dmYHis");
$contrat "$fecha$Nombre";

$cont "$Nombre $Apellidos con correo $correo y número de contacto $tlf/$movil solicita consulta de internet por satélite";

$arch=fopen("../contrats/$contrat.txt","w+");
fwrite($arch,$cont);
fclose($arch);

$to '[email protected]';

mail($to,"Peticion Internet","Copia guardada en /contrats/$contrat.txt\r\n$cont");
}else{
    
header("LOCATION:internet.html");
}

?>

Última edición por sekafry; 03/07/2014 a las 10:09
  #7 (permalink)  
Antiguo 03/07/2014, 15:38
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: La página no acaba de cargarse

Si, faltaba otro ), si es que cuantos más ojos mejor... pero aún sigue fallando, y si, lo paso por POST.

Gracias por vuestra ayuda, sigue pasando lo mismo así que algo más debe haber, no les molesto más que esto es más cosa mía que de ustedes. Gracias por las molestias.

P.D: Ya está solucionado, quitando de los ; y ) que debía cambiar el error esta en el FTP, que sube al servidor parte de los archivos, no se que le pasaba, pero una vez a funcionado todo va correcto, como siempre estaba trabajando desde el que tenía y no lo descargaba no me daba cuenta. Siento mucho haberles hecho gastar su tiempo en una cosa como esta.
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding

Última edición por Oracles; 03/07/2014 a las 16:19

Etiquetas: fecha, formulario, html, página, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.