formulario php + sql

sticklanch

Hola buenos dias a tod@s, necesito preguntar una cosa y saber si alguien me puede ayudar porfavor.

tengo este codigo, y necesito saber si esto funcionaria de la manera que cuando me dejen los datos del formulario se me guarden esos datos en una base de datos sql

muchas gracias de antemano.

//codigo php

if ($_REQUEST[enviar]!=""){
$host = "";
$user = "";
$password = "";
$database = "";

// Crear una conexión de base de datos
$conn = mysql_connect($host,$user,$password) or die("Error: No se pudo conectar a la base de datos: ".mysql_error());
// Una vez conectados, podemos seleccionar que base de datos queremos usar.
mysql_select_db($database,$conn) or die("Error al seleccionar la base de datos: ".mysql_error());
 
// Obtener las entradas del usuario y desinfectar
$nombre = mysql_real_escape_string(filter_var(trim($_POST['nombre']), FILTER_SANITIZE_STRING));
$apellidos = mysql_real_escape_string(filter_var(trim($_POST['apellidos']), FILTER_SANITIZE_STRING));
$direccion = mysql_real_escape_string(filter_var(trim($_POST['direccion']), FILTER_SANITIZE_STRING));
$email = mysql_real_escape_string(filter_var(trim($_POST['email']), FILTER_SANITIZE_STRING));
 
// Validar que sea un correo electrónico
if(! $email = filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)))
{    
echo "porfavor inserte un correo electrónico valido."; die(); } $sql = "INSERT INTO `$database`.`newsletter` ( `nombre` , `apellidos` , `direccion` , `email` ) VALUES ( NULL , '".$nombre."', '"$direccion."', '";.$email."'); if(mysql_query($sql)) { echo "Información del usuario guardada exítosamente."; }else { echo "Error: Hubo problemas al guardar los datos, nada se guardó."; } // Por ultimo, cerrar la conexión mysql_close($conn); }

codigo de formulario

<div class="neswletter">
<form method="POST" enctype="multipart/form-data">
<center><?echo $msj?></center>
<div class="formulario-name"><b>Permitenos tus datos de contacto</b></div><br>
<div class="formulario-name">Nombre :</div>
<input type=text class='field-contacto' name=nombre  maxlength='50' size='40'/><br />
<div class="formulario-name">Apellidos :</div>
<input type=text class='field-contacto' name=apellidos  maxlength='50' size='40'/><br />
<div class="formulario-name">Dirección :</div>
<input type=text class='field-contacto' name=direccion maxlength='50' size='40' /><br />
<div class="formulario-name">E-mail :</div>
<input type=text class='field-contacto' name=email maxlength='50' size='40' /><br />
<!--<div class="formulario-name">Curriculum (PDF o Word) Menor a 2 MB</div>
<input type=file class='field-contacto' name=curriculum  maxlength='100' size='40'/><br />-->
<div class="formulario-name">Comentario :</div>
<textarea name=mensaje rows="5" class='textarea-contacto' ></textarea>
<br><br>
<b>Subscripcion al servicio de newsletter:</b><br><br>

Si no desea subscribirse al servicio marque la casilla
 &nbsp; &nbsp;

<input type=checkbox name=no ><br>

<br><br>
<input type='submit' name='enviar' class='button-contacto' value='Subscribirse a newsletter'/> 
</form>


</div>

que fallo podria haber?

muchas gracias

deak0n

Y no puedes probarlo tu y decir si te da algún fallo?

No sé... sería mas fácil que probases el código y luego venir aquí para resolver tus dudas o errores que te puedan dar.

1
LiuM

Veo que lo has puesto también en otro foro.

Supongo que el código lo has copiado de algún sitio porque dices que intentas probarlo en localhost y no hace nada. Evidentemente, y sin entrar en errores de sintaxis, tendrás que rellenar los datos de conexión para probarlo.

Te recomendaría documentarte con lo básico y preguntar dudas concretas.

1 1 respuesta
Merkury

Aqui:

$host = "";
$user = "";
$password = "";
$database = "";

Pon:

$host = "localhost";
$user = "";
$password = "";
$database = "<nombredetubasededatos>";

Y luego en la BBDD crea la tabla tal como pone en el código, pero vamos que si no tienes ni idea de lo básico, mal vas...

1 1 respuesta
Tunnecino

Y por cierto, uno no se cansa de recordar que la extensión mysql está obsoleta y que la borrarán en versiones futuras, así que pásate a mysqli http://es1.php.net/manual/es/intro.mysqli.php

1
Gantorys

PDO > mysqli

sticklanch

por responderos a todos el nombre de la base de datos y el host los quite para no poner informacion,

no es un copia pega si te refieres a eso #3 es un codigo que estoy intentado hacer funcionar en mi servidor y no funciona ya que no me hace nada solo queria saber si tenia algun fallo grande por el cual no me funcionaba.

#4 idea si tengo lo siento si lo has entendido asi pero como comprenderas no voy a poner aqui datos que externos no necesitan saber creo que te has equivocado pensando que no se lo basico pero bueno... gracias

ya lo solucione gracias

1 respuesta
Merkury

#7 Pues mis disculpas.

Por curiosidad, ¿que era el fallo?.

sticklanch

pues si kieres reirte de mi te lo digo jejejeje

la version abreviada de php
osea yo abria y cerraba asi. y parece que xammp tiene que tener activo que te reconozca el modo abreviado
<?

?>

1 respuesta
Merkury

#9 Es un error bastante comun eh...

De todas formas, he visto que aqui:

<form method="POST" enctype="multipart/form-data">

No tienes action, ¿lo envías con .submit() de javascript/jquery?

1 respuesta
deak0n

Si lo haces con MariaDB hasta mejor :D

cathal

#1, #10 tiene razón con el form method POST debería haber el action para el submit, ah y yo que tu separía los códigos en 2 scripts: algo así

<form action="1scriptquehaspuesto.php" method="post">

( código php si són valores dinámicos, o html si los introduces tu...
div class="neswletter">
<form method="POST" enctype="multipart/form-data">
<center><?echo $msj?></center>
<div class="formulario-name"><b>Permitenos tus datos de contacto</b></div><br>
<div class(...) )

i luego tendrías el submit la para llamar al codigo php

<input type=submit value="guardar">

y con esto al hacer el submit te tendrian que salir los valores en los campos de la bd de Mysql

1 respuesta
Merkury

#12 Ehhh si dices de no separar el codigo php que recoge la respuesta del POST del código HTML, siento decirte que no tienes ni idea.

La lógica de negocio debe estar lo más separada de la vista posible.

1 1 respuesta
Tunnecino

Y bueno, el uso de short_tags no está recomendado.

cathal

#13 perdona... lee bien: ah y yo que tu separía los códigos en 2 scripts: algo así(...)

lo que si me he olvidado de poner que uno es html(que sería el form y habría los valores name="pepitolospalotes" ))

y el php dónde se recogen los valores con el post($pepitolospalotes =$_POST["pepitolospalotes"]... descuido mío!

Usuarios habituales

  • cathal
  • Tunnecino
  • Merkury
  • deak0n
  • sticklanch
  • Gantorys
  • LiuM