Foros del Web » Programando para Internet » PHP »

Aveces Falla...

Estas en el tema de Aveces Falla... en el foro de PHP en Foros del Web. Hola, gracias desde ya!!! Tengo un script que me ta volviendo loco..., a veces falla y no se porque..., yo creo que es problema del ...
  #1 (permalink)  
Antiguo 29/04/2004, 13:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Aveces Falla...

Hola, gracias desde ya!!!

Tengo un script que me ta volviendo loco..., a veces falla y no se porque..., yo creo que es problema del servidor..., pero ellos dicen que no, por favor alguien podría decirme si ve algún fallo???
utilizo el script para envíar un solicitud y aveces las copias ocultas del parametro Bcc de la función mail no llegan..., alguien me saca de dudas??? a continuación pego el code

Código PHP:
<?
include("conexion.php");
$correoABC=trim($_POST["CORREO_ELECTRONICO_ABC"]);
$contrasena=trim($_POST["CONTRASENA"]);
$repita_contrasena=trim($_POST["REPITA_CONTRASENA"]);
$nombre=trim($_POST["NOMBRE"]);
$apellidos=trim($_POST["APELLIDOS"]);
$numerodesocio=trim($_POST["NUMERO_DE_SOCIO"]);
$correoelectronico=trim($_POST["CORREO_ELECTRONICO"]);
$correoABC2=$correoABC."@dominio.com";
$correoABC3=strtolower($correoABC);
if(!empty(
$correoABC)&&!empty($contrasena)&&!empty($repita_contrasena)&&!empty($nombre)&&!empty($apellidos)&&!empty($numerodesocio)&&!empty($correoelectronico)){
if(
ereg("^[a-zA-Z0-9_\.]+$"$correoABC)){
if(
strlen($contrasena)>=4){
if(
ereg("^[a-zA-Z0-9]+$"$contrasena)){
if(
$repita_contrasena==$contrasena){
if(
is_numeric($numerodesocio)){
if(
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$correoelectronico)){
$resultado mysql_query("SELECT * FROM usuarios WHERE correo='$correoABC2'"$conexion) or die ("Error en la consulta, MySQL dice: ".mysql_error());
if(
$vacio mysql_num_rows($resultado)==0){
mysql_free_result($resultado);
$sql "UPDATE usuarios SET correo='$correoABC2' WHERE numerosocio='$numerodesocio' && nombre='$nombre' && apellidos='$apellidos'";
mysql_query($sql$conexion) or die("error en la consulta $sql ".mysql_error());
$resultado mysql_query("SELECT * FROM usuarios WHERE numerosocio='$numerodesocio' && nombre='$nombre' && apellidos='$apellidos'"$conexion) or die ("Error en la consulta, MySQL dice: ".mysql_error());
if(
$encontrados mysql_fetch_array($resultado)){
mail("$correoelectronico""FORMULARIO DE SOLICITUD DE ALTA EN EL CORREO ELECTRÓNICO DE LA ABC""Estimado {$encontrados['nombre']}:

DATOS ENVIADOS POR USTED EN SU SOLICITUD DE ALTA EN EL CORREO ELECTRÓNICO DE LA ABC
NOMBRE: {$encontrados['nombre']}
APELLIDOS: {$encontrados['apellidos']}
NÚMERO DE SOCIO: {$encontrados['numerosocio']}
CORREO ELECTRÓNICO ABC: $correoABC2
CORREO ELECTRÓNICO DE RESPUESTA: $correoelectronico

A continuación le indicamos los Datos para configurar su Cuenta de Correo Electrónico de la ABC.
Correo Electrónico: $correoABC2
Nombre de Cuenta: $correoABC3-dominio-com
Contraseña: $contrasena
Servidor de Correo Entrante (POP3): mail.dominio.com
Servidor de Correo Saliente (SMTP): mail.dominio.com

Su Cuenta de Correo Electrónico estará activa en 24h. aproximadamente.

Le recordamos que está dirección de correo electrónico ha sido ingresada en
su Registro de Asociado, con lo que puede utilizar el servicio para
recuperar su Nombre de Usuario y su Contraseña en tan solo unos minutos en
caso de perdida.

Reciba un cordial saludo"
,  
"From: ABC<[email protected]>
Reply-To: [email][email protected][/email]
Bcc: [email][email protected][/email],[email protected]"
);
Header("Location:solicitudcorreo.php");
// si no se ha encontrado ningun Asociado que conincida con esos datos 
}else{
Header("Location:correo.php?mensajeasociado=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si el correo solicitado ya lo ha elegido por otro Asociado
}else{
Header("Location:correo.php?mensajecorreoABC=1&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si no se ha especificado una dirección de correo electrónico no valida 
}else{
Header("Location:correo.php?mensajecorreoelectronico=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si el campo número de socio no contiene un número
}else{
Header("Location:correo.php?mensajenumerodesocio=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si repita contraseña no contiene la misma cadena que contraseña
}else{
Header("Location:correo.php?mensajerepitacontrasena=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si la contraseña ingresada tiene caracteres invalidos
}else{
Header("Location:correo.php?mensajecontrasena=1&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si la contraseña ingresada contiene menos de 4 caracteres
}else{
Header("Location:correo.php?mensajecontrasena=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si el correo solicitado tiene caractares invalidos
}else{
Header("Location:correo.php?mensajecorreoABC=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
// si no han sido rellenados todos los campos de formulario
}else{
Header("Location:correo.php?mensajegeneral=0&1=$correoABC&2=$contrasena&3=$repita_contrasena&4=$nombre&5=$apellidos&6=$numerodesocio&7=$correoelectronico#solicitud");
}
mysql_free_result($resultado);
mysql_close($conexion);
?>

Un saludo.
  #2 (permalink)  
Antiguo 29/04/2004, 14:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
*** Revisa la sintax correcta de las cabeceras HTTP para mail() .. sería recomendable que siguieras el standar .. Por ejemplo:

para nombres de correo y su alias:
nombre <[email protected]>

Y para separar instrucciones HTTP de la cabecera ..
\n (confirmalo en www.php.net/mail en sus ejemplos) .. no confiar en el salto de línea "fisico" que haces y .. que dependiendo del S.O. que se use para generalo igual es un \n sólo .. o es un \r\n o un \r

*** Usa un exit; despues de cada header()

** Y el mysql_free_result() y el mysql_close() puedes usarlo despues de tu $resultado que es donde ya terminastes de usar tu BD ..

Por lo demás .. tines el if () elseif () .. else() para ir componiendo tu estructrua de control condicional .. y así asegurarte de que el flujo continua por donde lo requieres.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 29/04/2004, 17:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola Cluster:

Bueno antes que nada gracias, por la respuesta le puesto los exit; detras de los header y parece que ahora siempre funciona, también le puesto \n en los saltos de línea pero el problema es que me crea los 2 el salto de línea que hago con \n y el físico con lo que me produce 2 saltos de línea, me explico..., por ejemplo:

NOMBRE: {$encontrados['nombre']}\n
APELLIDOS: {$encontrados['apellidos']}\n

Me produce 2 saltos de línea no 1, como podría solucionar esto???
para que ignorase el salto de línea físico.

Un saludo.
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 22:59.