reemplazar $_POST por una variable [Solucionado]
Publicado: 6 Enero, 2011 - 21:35 reemplazar $_POST por una variable [Solucionado]
Buenas tardes a todos, tengo un problema con un código php, este formulario de contacto envia un correo simple segun los campos:
<?php
///////Configuración/////
$mail_destinatario = 'ejemplo@ejemplo.com';
///////Fin configuración//
if (isset ($_POST['enviar'])) {
$headers .= "From: ".$_POST['email']. "\r\n";
if ( mail ($mail_destinatario, $_POST['asunto'],
"Nombre y apellidos : ".$_POST['nombre']."
Asunto: ".stripcslashes ($_POST['asunto'])."\n
Mensaje :\n ".stripcslashes ($_POST['mensaje']), $headers ))
echo '<p>Su mensaje a sido enviado correctamente.
Gracias por contactar con nosostros</p>';
else echo '<p>Error al enviar el formulario.
Por favor, inténtelo de nuevo mas tarde.</p>';
}
echo '<form action="?" method="post">
<label for="nombre">Nombre y apellidos : </label>
<input type="text" name="nombre" size="50" maxlength="80"><br/>
<label for="email">Email : </label>
<input type="text" name="email" size="50" maxlength="60"><br/>
<label for="asunto">Asunto : </label>
<input type="text" name="asunto" size="50" maxlength="60"><br/>
<label for="mensaje">Mensaje : </label>
<textarea name="mensaje" cols="31" rows="5"></textarea> <br/>
<label for="enviar">
<input type="submit" name="enviar" value="Enviar consulta"></label>
</form><p> <p><br>';
?>el problema que tengo con este codigo es que en algunas lineas casi en todas necesito cambiar el
$_POST['asunto']por una variable, en ese ejemplo puede ser$asunto, en lugar de extraer los datos del formulario.
va con comillas simples o dobles, en paréntesis la verdad no se como, se que es algo super sencillo para los que saben del tema pero estoy aprendiendo así que disculparan la novatada
Saludos ojala me puedan ayudar.
- 1083 lecturas


algún moderador que me pueda borrar el hilo ya creo que lo logre
Gracias de todos modos, quizá me apresure
En lugar de borrar el post mejor comenta la solución que encontraste, así sí alguien tiene tu mismo problema va a saber como solucionarlo
algún moderador que me pueda borrar el hilo ya creo que lo logre
Gracias de todos modos, quizá me apresure
Lo correcto seria que publiques la solución y marques el tema como solucionado
pues ya no me genera error de sintaxis pero no me funciona, en el codigo reemplace el POST asi por la variable $mail
if (isset ($_POST['enviar'])) {$headers .= "From: ".$mail. "\r\n";
original
if (isset ($_POST['enviar'])) {$headers .= "From: ".$_POST['email']. "\r\n";
pero tengo dudas de los puntos en que está encerrada la variable .$mail., porque en otros lugares no tiene esos puntos quizá por eso no me funcione, ademas no me genera ningún error, ejemplo error en la linea 30 o algo por el estilo, simplemente me envía a un error del servidor
pensando en que era el servidor, probe con el codigo original que puse al inicio y me corre perfecto entonces no se que puede ser
Saludos
No esta "encerrado" entre puntos, el punto es para concatenar. En la mayoria de los lenguajes se utiliza el + pero en php es con el .
pues estoy probando cosa por cosa y hasta ahora no he dado con nada lo estoy volviendo ha hacer código por código haber si encuentro el error, estoy dudando en el form, pero ya verifique nombres y actions.
Bueno cuando termine les avisare
edito:
lo acabo de probar las únicas modificaciones que hice fue cambiar el boton del form por el que había en el código original,
la solución a este hilo es simplemente reemplazar el POST por la variable deseada, $ejemplo, pero recomendado tener cuidado con las comillas dobles, simples y los puntos de concatenación, se debe entender bien ese cuento, apartando eso el problema de mi codigo creo y estoy casi seguro que era el form.
Solucion
if (isset ($_POST['enviar'])) {$headers .= "From: ".$ejemplo. "\r\n";
if ( mail ($mail_destinatario, $ejemplo,
"Nombre y apellidos : ".$ejemplo."
Asunto: ".stripcslashes ($ejemplo)."\n
Mensaje :\n ".stripcslashes ($ejemplo), $headers ))
codigo original
if (isset ($_POST['enviar'])) {$headers .= "From: ".$_POST['email']. "\r\n";
if ( mail ($mail_destinatario, $_POST['asunto'],
"Nombre y apellidos : ".$_POST['nombre']."
Asunto: ".stripcslashes ($_POST['asunto'])."\n
Mensaje :\n ".stripcslashes ($_POST['mensaje']), $headers ))
Saludos
Si ya resolviste tu duda, aún así aclaraé algunas cosas:
$_POST, $_GET, $_COOKIE, etc son Variables Superglobales.
No se puede "reemplazar" una variable por otra (por lógica), pero sí asignar una Variable por otra (o una Superglobal). Una buena práctica es, al principio del Script, declarar nuevas variables a partir de Superglobales y usarlas más abajo.
De paso echate una buena leida al Manual; cualquier duda recurre a él.
Tengo una duda y espero contimuar con el hilo de este post.
Tengo un archivo en el que parte del formato tiene que ser cargado paor un script y parte por otro. Como puedo hacer para que ambos se ejecuten en un submit. El punto esque el
Su mensaje Ha sido enviado correctamente en todo caso...
...duplicado, borrar