Hola, tengo un formulario muy simple de envio de correo que tome de internet, lo que no logro hacer es que la confirmación del envio lo produzca en la misma hoja, siempre me lleva a otra pagina, me gustaria que el mensaje de "Enviado Correctamente" lo haga al pie del formulario, les dejo mi codigo, cualquier pista es bienvenida, desde ya muchísimas gracias !
Código:
<?php
function VerifyForm(&$values, &$errors)
{
// Do all necessary form verification
if (strlen($values['name']) < 3)
$errors['name'] = 'Name too short';
elseif (strlen($values['name']) > 50)
$errors['name'] = 'Name too long';
// Needs better checking ;)
if (!ereg('.*@.*\..{2,4}', $values['email']))
$errors['email'] = 'Email address invalid';
if (strlen($values['text']) == 0)
$errors['text'] = 'Text required';
return (count($errors) == 0);
}
function DisplayForm($values, $errors)
{
?>
<html>
<head>
<title>Yadda yadda</title>
<style>
TD.error
{
color: red;
font-weight: bold;
}
</style>
</head>
<body>
<?php
if (count($errors) > 0)
echo "<p>There were some errors in your submitted form, please correct them and try again.</p>";
?>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
<table>
<tr>
<td>Name:</td>
<td><input type="text" size="30" name="name" value="<?= htmlentities($values['name']) ?>"/>
<td class="error"><?= $errors['name'] ?></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" size="30" name="email" value="<?= htmlentities($values['email']) ?>"/>
<td class="error"><?= $errors['email'] ?></td>
</tr>
<tr>
<td valign="top">Text:</td>
<td>
<textarea name="text" cols="30" rows="6"><?= htmlentities($values['text']) ?></textarea>
</td>
<td class="error"><?= $errors['text'] ?></td>
</tr>
<tr><td colspan="2" align="center"><input type="submit" value="Submit"></tr>
</table>
</form>
</body>
</html>
<?php
}
function ProcessForm($values)
{
mail('[email protected]', 'Form test', $values['text'], "From: \"{$values['name']}\" <{$values['email']}>");
// Replace with actual page or redirect
echo "<html><head><title>Muchas Gracias</title></head><body>Muchas Gracias!</body></html>";
}
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$formValues = $_POST;
$formErrors = array();
if (!VerifyForm($formValues, $formErrors))
DisplayForm($formValues, $formErrors);
else
ProcessForm($formValues);
}
else
DisplayForm(null, null);
?>