Foros del Web » Programando para Internet » PHP »

ayuda con un script

Estas en el tema de ayuda con un script en el foro de PHP en Foros del Web. hola como estan?? ando luchando con un script con el cual el usuario me envia el nombre y su email. el envio funciona perfectamente pero ...
  #1 (permalink)  
Antiguo 09/12/2004, 07:35
 
Fecha de Ingreso: junio-2004
Mensajes: 158
Antigüedad: 20 años, 4 meses
Puntos: 1
ayuda con un script

hola como estan??

ando luchando con un script con el cual el usuario me envia el nombre y su email.
el envio funciona perfectamente pero el problema es cuando falla el envio y doy la opcion de volver atras, esta no funciona.
Alguien me puede decir que estoy haciendo mal

bueno gracias y saludos
Javier

el script
<?
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Expira en fecha pasada
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre página modificada
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<html>
<head>
<title> enviaando mis datos</title>

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
{
var height =self.screen.height;
var width =self.screen.width;
var default1 = "Muchas gracias"; // only shown once at page load
var text1 = "por enviarnos";
var text2 = "tus datos...";
var text3 = "gracias por unirte al club";
var changeRate = 3000; // 1000 = 1 second
var messageNumber = 0;

self.resizeTo(500,500);
}

function restorewnd()
{
self.resizeTo(height,width);
}

function changeStatus() {
if (messageNumber == 0) {
window.status=default1;
document.title=default1;
}
else if (messageNumber == 1) {
window.status=text1;
document.title=text1;
}
else if (messageNumber == 2) {
window.status=text2;
document.title=text2;
}
else if (messageNumber == 3) {
window.status=text3;
document.title=text3;
messageNumber = 0;
}

messageNumber++;
setTimeout("changeStatus();",changeRate);

}

changeStatus(); // leave here to run right away

//-->

// End -->
</script

</head>

<body oncontextmenu="return false" onunload="restorewnd()" bgproperties="fixed">

<?php

require "cgi-bin/class.phpmailer.php";

global $mail;

// Si se ha cubierto y enviado el formulario lo procesamos
if ($submit == 'Enviar')
{
$mail = new phpmailer();
$mail->PluginDir = "cgi-bin/";
$mail->Mailer = "smtp";
$mail->Host = "servidor smtp";
$mail->SMTPAuth = true;
$mail->Username = "usuario";
$mail->Password = "clave";
$mail->Timeout = 120;
$mail->AddAddress('midireccion');
$mail->From = $_POST['email'];
$mail->FromName = $_POST['nombre'];

$mail->Subject ="enviando datos de fanatico";
$mail->Body = "<b>envio automatico</b>";
$mail->isHTML(true);

// comienzo el proceso de envio

$exito = $mail->send();
// si el mensaje no se puedo enviar realizo 4 intentos
$intentos = 1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
$exito = $mail->send();
$intentos+=1;
}
if ($exito) {

// Ha funcionado
print "<font size=\"2\" color=\"#ff0000\" face=\"Arial Black\">\n"
."<left><b>se ha procesado su solicitud!!!</b></font>";
print ("<P></P>");
print ("<p><a href=javascript:history.back()>Volver</a></p>");
}
else
{
// el mensaje No ha funcionado
print "<font size=\"2\" color=\"#ff0000\" face=\"Arial Black\">\n"
."<left><b>Momentaneamente no hemos podido procesar su solicitud</b></font>";
print ("<P></P>");
print ("<input type=\"submit\" value=\"Volver a Intentarlo\" name=\"submit\" action=\"<?php devuelta(); ?>\" >");
exit;
}
}
// Si no se ha procesado el formulario es que aún no lo hemos
// presentado, así que hagámoslo
else
{
?>
<DIV style="position:absolute; overflow:hidden; left:22px; top:18px; width:435px; height:100px; z-index:0"><img width=435 height=100 border=0 src="logodelclub.gif"></DIV>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="212" id="AutoNumber1">
<tr>
<td width="900" height="107" bgcolor="#9A0910" colspan="4">
<p align="center">&nbsp</p>
</td>
</tr>
<FORM name=myform onsubmit=exit=false action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
</center>
<tr>
<td width="351" height="34">
&nbsp;</td>
<td width="74" height="34">
<p align="left"><b><font face="Times New Roman" size="3" color="#0000FF">Nombre</font>
</b>
</td>
<td width="24" height="34">
</td>
<td width="451" height="34">
<p align="left">
<input name="nombre" type="text" size="20">
</p>
</td>
</tr>
<tr>
<td width="351" height="37" align="center">
&nbsp;</td>
<td width="74" height="37" align="center">
<p align="left">
<b><font color="#0000FF">E</font><font size="3" color="#0000FF">mail</font>
</b>
</td>
<td width="24" height="37" align="center">
</td>
<td width="451" height="37" align="center">
<p align="left">
<input name="email" type="text" size="20">
</td>
</tr>
<center>
<tr>
<td width="900" height="37" align="center" colspan="4">
<input type="submit" value="Enviar" name=submit>
</td>
</tr>
</form>
<tr>
<td width="900" height="37" align="center" bgcolor="#9A0910" colspan="4">
<marquee style="font-family: Times New Roman; font-size: 14pt; color: #FDF5C3; font-weight: bold">Inviando nombre y direccion de mi(s) Jefes o Gerentes</marquee></td>
</td>
</tr>
</table>
</center>
</div>
<?
}

function devuelta() {
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
// las variables de session en el array asociado $HTTP_...
$pag=$_SERVER['PHP_SELF'];
Header ("Location: $pag?");
// trato de limpiar submit para que me despliegue el form de vuelta
// no se como resetear los valore de las varriables que seria lo ideal
$_POST['submit'] = ''";

?>

</body>
</html>
  #2 (permalink)  
Antiguo 09/12/2004, 08:05
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
No puedes llamar desde un enlace html a una función de php. Usa directamente javascript:

print ("<input type='button' value='Volver a Intentarlo' onclick=\"self.location.href='".$_SERVER['PHP_SELF']."'\" >");

y podrías eliminar tu función devuelta() de php.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 09/12/2004, 17:38
 
Fecha de Ingreso: junio-2004
Mensajes: 158
Antigüedad: 20 años, 4 meses
Puntos: 1
gracias living
ya lo pruebo
  #4 (permalink)  
Antiguo 09/12/2004, 17:49
 
Fecha de Ingreso: junio-2004
Mensajes: 158
Antigüedad: 20 años, 4 meses
Puntos: 1
funciono perfectamente muchas gracias
ahora lo que me mareo un poco fueron las " y \" y me di cuenta que estas concatenando no es asi???

saludos
gracias
Javier
  #5 (permalink)  
Antiguo 09/12/2004, 17:53
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
sí, cuando metes los . es que estás concatenando cadenas
__________________
¿Te apasiona el mundo del guión? El portal del guión
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 14:42.