Foros del Web » Programando para Internet » PHP »

formulario que no guarda datos ni da error

Estas en el tema de formulario que no guarda datos ni da error en el foro de PHP en Foros del Web. Hola a todos, tengo un problema que aun no logro resolver con un formulario en php. Estoy intentado hacer un registro simple de un nombre ...
  #1 (permalink)  
Antiguo 15/08/2012, 08:10
 
Fecha de Ingreso: agosto-2012
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta formulario que no guarda datos ni da error

Hola a todos, tengo un problema que aun no logro resolver con un formulario en php. Estoy intentado hacer un registro simple de un nombre a una base de datos creada en phpmyadmin, mas ni guarda el registro que ingreso en el formulario ni me arroja algún error de conexión con la base de datos o algo parecido. Si a drede le cambio los datos de conexión para verificar si intenta conectar tampoco arroja error. Realmente me estoy volviendo loca, he leído muchos tutoriales y nada. Pueden ayudarme por favor??

Mi archivo del formulario es el siguiente:

<html>
<head>
<title>Añadir Artículo</title>
</head>
<body>
<form method="post" action="Envío.php">
Nombre : <input type="text" name="nombre"><br>
<br>
<br><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Mi archivo de conexión Envío.php es el siguiente:

<html>
<head>
</head>
<body>
<?php
$nombre = $_POST['nombre'];
$conexión = mysql_connect('localhost', 'root', 'gaby');
if (!$conexión) {
die('No pudo conectarse: ' . mysql_error());
}
echo 'Conectado satisfactoriamente';
$enlace = mysql_select_db('prueba',$conexión);
if (!$enlace) {
die('No pudo conectarse: ' . mysql_error());
}
$guardar = mysql_query ("INSERT INTO dato(nombre) VALUES ('$nombre');";
mysql_query($guardar,$conexión);
mysql_close($conexión);
?>
<B>¡Tus datos han sido registrados satisfactoriamente! </B>
</body>
</html>

en mi base de datos tengo la base de datos prueba, una tabla llamada dato y dos campos, id que es auto incremental y nombre, donde quiero que guarde el dato del formulario... Ayuda por favor....
  #2 (permalink)  
Antiguo 15/08/2012, 08:45
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Envio.php
Código PHP:
Ver original
  1. <?php
  2. $conexión = mysql_connect("localhost", "root", "gaby");
  3. mysql_select_db("prueba");
  4. mysql_query ("INSERT INTO dato(nombre) VALUES ('$_POST[nombre]')");
  5. echo "Conectado satisfactoriamente";
  6. ?>

Esque mira echo 'Conectado satisfactoriamente'; va entre "" y si hay un error en el insert into como el echo esta mas arriba mostraria conectado satisfactoriamente y eso seria incierto entonces tendrias que ponerlo debajo del insert into

el inser into as puesto ;"): eso esta mal seria "); sin el primer ; y
mysql_connect('localhost', 'root', 'gaby');
$enlace = mysql_select_db('prueba',$conexión); tiene que ir entre "" y no entre ''"

Pero el error esta aqui.
$guardar = mysql_query ("INSERT INTO dato(nombre) VALUES ('$nombre');";
SERIA
mysql_query ("INSERT INTO dato(nombre) VALUES ('$nombre')");

Y PORFAVOR ORDENA UN POCO MAS LOS CODIGOS Y USA Highlight que queda mejor visto y se entiende mejor.

Última edición por PepeF; 15/08/2012 a las 08:53
  #3 (permalink)  
Antiguo 16/08/2012, 13:00
 
Fecha de Ingreso: agosto-2012
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: formulario que no guarda datos ni da error

Muchas gracias amigo, intentare cambiar lo que sugieres a ver...
  #4 (permalink)  
Antiguo 16/08/2012, 13:03
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Denada me alegro averte ayudado.
  #5 (permalink)  
Antiguo 16/08/2012, 13:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: formulario que no guarda datos ni da error

Nota: poner un echo así:

echo 'Hola';

es indistinto de ponerlo así:

echo "Hola";

De hecho, en teoría sería mejor ponerlo de la primer forma ya que de la segunda forma php intentaría interpretar la cadena en busca de alguna variable.

Te recomiendo poner la conexión en una función aparte:

Código PHP:
Ver original
  1. function conectarse(){
  2.     if(!$conect=mysql_connect("localhost","root","miclave"))
  3.         die("Error en conexion a base de datos");
  4.    
  5.     if(!mysql_select_db("mi_base_de_datos",$conect))
  6.         die("Error al seleccionar base de datos");
  7.     @mysql_query("SET NAMES 'utf8'");
  8.     return $conect;
  9. }
de tal forma, en tu código podrías hacer:
Código PHP:
Ver original
  1. <?php
  2. $conexion=conectarse();
  3. $nombre = $_POST['nombre'];
  4. $guardar = mysql_query ("INSERT INTO dato(nombre) VALUES ('$nombre')");
  5. mysql_query($guardar,$conexión);//esto sobra, ya en la linea anterior se hace la inserción
  6. echo mysql_error();//con esta linea podrías ver si hay un error en el sql
  7. mysql_close($conexión);
  8. ?>
  #6 (permalink)  
Antiguo 16/08/2012, 13:55
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por ocp001a Ver Mensaje
Nota: poner un echo así:

echo 'Hola';

es indistinto de ponerlo así:

echo "Hola";

De hecho, en teoría sería mejor ponerlo de la primer forma ya que de la segunda forma php intentaría interpretar la cadena en busca de alguna variable.

Te recomiendo poner la conexión en una función aparte:

Código PHP:
Ver original
  1. function conectarse(){
  2.     if(!$conect=mysql_connect("localhost","root","miclave"))
  3.         die("Error en conexion a base de datos");
  4.    
  5.     if(!mysql_select_db("mi_base_de_datos",$conect))
  6.         die("Error al seleccionar base de datos");
  7.     @mysql_query("SET NAMES 'utf8'");
  8.     return $conect;
  9. }
de tal forma, en tu código podrías hacer:
Código PHP:
Ver original
  1. <?php
  2. $conexion=conectarse();
  3. $nombre = $_POST['nombre'];
  4. $guardar = mysql_query ("INSERT INTO dato(nombre) VALUES ('$nombre')");
  5. mysql_query($guardar,$conexión);//esto sobra, ya en la linea anterior se hace la inserción
  6. echo mysql_error();//con esta linea podrías ver si hay un error en el sql
  7. mysql_close($conexión);
  8. ?>
Usa mysqli es mas seguro

Envio.php
Código PHP:
Ver original
  1. <?php
  2. $conexión = mysqli_connect("localhost", "root", "gaby");
  3. mysqli_select_db($conexion, "prueba");
  4. mysqli_query($conexion, "INSERT INTO dato(nombre) VALUES ('$_POST[nombre]')");
  5. echo "Conectado satisfactoriamente";
  6. ?>
  #7 (permalink)  
Antiguo 16/08/2012, 15:53
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: formulario que no guarda datos ni da error

venga PepeF, andas haciendo promoción y nos andas haciendo sabedores de que mysql será depreciada... venga....
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #8 (permalink)  
Antiguo 16/08/2012, 16:57
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por p414 Ver Mensaje
venga PepeF, andas haciendo promoción y nos andas haciendo sabedores de que mysql será depreciada... venga....
¿Que dices tu? si tu no sabes mysqli pues amigo lo siento, programa en mysql pero que mysqli y ya te lo digo el moderador en tu tema mysqli es mas seguro.
  #9 (permalink)  
Antiguo 16/08/2012, 17:01
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por PepeF Ver Mensaje
¿Que dices tu? si tu no sabes mysqli pues amigo lo siento, programa en mysql pero que mysqli y ya te lo digo el moderador en tu tema mysqli es mas seguro.
ay si ay si ya programo bien caon con mysqli y me siento superman
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #10 (permalink)  
Antiguo 16/08/2012, 17:11
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por mogurbon Ver Mensaje
ay si ay si ya programo bien caon con mysqli y me siento superman
Escribe un poquito mejor que no te entiendo.

¿Que tu sabes mysqli y te sientes superman?
  #11 (permalink)  
Antiguo 16/08/2012, 17:19
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por PepeF Ver Mensaje
Escribe un poquito mejor que no te entiendo.

¿Que tu sabes mysqli y te sientes superman?
yo no me creo , yo soy superman nomas no le digas a nadie
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 16/08/2012, 17:25
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: formulario que no guarda datos ni da error

Am bien bien pues felicidades ¿No?
  #13 (permalink)  
Antiguo 17/08/2012, 09:24
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: formulario que no guarda datos ni da error

tssssssssss PepeF, parece que tu vida no es nada placentera y andas enojado con medio mundo, te recomiendo que te alejes un poco de la computadora, toda aire fresco, ten amigos reales, sal a tomar un te o un café... consigue una pareja real... disfruta la vida... quizas eso te de una mejor calidad de vida....


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #14 (permalink)  
Antiguo 17/08/2012, 09:46
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: formulario que no guarda datos ni da error

Cita:
Iniciado por p414 Ver Mensaje
tssssssssss PepeF, parece que tu vida no es nada placentera y andas enojado con medio mundo, te recomiendo que te alejes un poco de la computadora, toda aire fresco, ten amigos reales, sal a tomar un te o un café... consigue una pareja real... disfruta la vida... quizas eso te de una mejor calidad de vida....


saludos
de acuerdo totalmente , que se lance por unas chelas a un table , no se, a echar desmoder o de perdida echarse un dalay
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #15 (permalink)  
Antiguo 17/08/2012, 10:39
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: formulario que no guarda datos ni da error

o por lo menos al hooters... hahahahahahaha eso me recordó a un primo con el que fui la última vez y se quedó embobado viendo a una de las chicas de ahí y cuando ella le dijo que si el quería algo de tomar, mi primo no supo que decir y solo decía "si... si... si..." y yo no me aguanté la risa y ahorita me sigo riendo de el hahahahahahahahahahahahahah uffff que días :)
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #16 (permalink)  
Antiguo 17/08/2012, 15:23
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: formulario que no guarda datos ni da error

Completamente fuera de lugar los últimos comentarios, si tienen comentarios fuera del tema usen los MP, así evitan desvirtuar el tema principal...

Cita:
Hola a todos, tengo un problema que aun no logro resolver con un formulario en php. Estoy intentado hacer un registro simple de un nombre a una base de datos creada en phpmyadmin, mas ni guarda el registro que ingreso en el formulario ni me arroja algún error de conexión con la base de datos o algo parecido. Si a drede le cambio los datos de conexión para verificar si intenta conectar tampoco arroja error. Realmente me estoy volviendo loca, he leído muchos tutoriales y nada. Pueden ayudarme por favor??
Aparte de lo que ya han comentado debes saber que los errores de SQL no saltan como los errores de PHP, para poder ver los errores debes hacer uso de "mysql_error()", así, si tu sentencia SQL tiene algún error este saltará y podrás depurar tus consultas, también es aplicable a mysql_connect, mysql_select_db, etc...

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect($host,$user,$pass) or die (mysql_error());
  3. mysql_select_db($db,$conexion) or die (mysql_error());
  4.  
  5. $sql = 'SELECT * FROM mitabla';
  6. $query = mysql_query($sql,$conexion) or die(mysql_error());

Cita:
Usa mysqli es mas seguro
Y por ultimo, en todo caso es preferible usar PDO a usar mysqli, en fin, esto ya es secundario, es muy difícil que cambien todo el sistema de acceso a db de un proyecto ya avanzado o maduro, y mas aun si se usa programación estructurada, lo mejor en estos casos es recomendar que para uso futuro sea mejor usar X o Y tecnologia ya que Z esta desfasada y obsoleta...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #17 (permalink)  
Antiguo 20/08/2012, 12:03
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: formulario que no guarda datos ni da error

tienes razón @Nemutagk, están fuera del tema...


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #18 (permalink)  
Antiguo 20/08/2012, 15:11
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: formulario que no guarda datos ni da error

hola como estas la verdad te sugiero que realices tu funciones con mysqli te envio uno de mis script para registrar usuario el cual podras modificar segun tus necesidades de registro
es total mente funcional y sin errores de sintaxis

la funcion php es mejor colocarlas donde va la funcion de conexion no estenderse en demaciadas hojas de scrip ya que te permite mayor seguridad eso que entra mas hojas mas seguridad es una farza lo uico que haces es un desorden en el desarrollo.

con esta funcion procesas los datos que seran insertados en el formulario que se encuentra en al archivo registro php el cual coloco mas abajo ademas encripta los datos del usuario mas especificamente el possword con md5 que se encuentra activa en wampserver de las versiones superiores de 5.3.0 en adelante.

function insert () {
/*registro de usuario */
if (isset($_POST['nuip'])) {// UTILIZADA EN REGISTRO.PHP
$nuip = strip_tags($_POST['nuip']);
$firstsurname = strip_tags($_POST['firstsurname']);
$secondsurname = strip_tags($_POST['secondsurname']);
$firstname = strip_tags($_POST['firstname']);
$middlename = strip_tags($_POST['middlename']);
$alias = strip_tags($_POST['alias']);
$gender = strip_tags($_POST['gender']);
$email = strip_tags($_POST['email']);
$password = strip_tags(md5($_POST['password']));
$tel = strip_tags($_POST['tel']);
$country = strip_tags($_POST['country']);
$department = strip_tags($_POST['department']);
$town = strip_tags($_POST['town']);
$village = strip_tags($_POST['village']);
$commune = strip_tags($_POST['commune']);
$neighborhood = strip_tags($_POST['neighborhood']);
$ip = $_SERVER['REMOTE_ADDR'];
$mysqli = new mysqli('localhost', 'usuario', '123456', 'basededatos');
if (!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
}
$query="INSERT INTO users (
nuip,
firstsurname,
secondsurname,
firstname,
middlename,
alias,
gender,
email,
password,
tel,
country,
department,
town,
village,
commune,
neighborhood,
ip)
VALUES (
'".$mysqli->real_escape_string($nuip)."',
'".$mysqli->real_escape_string($firstsurname)."',
'".$mysqli->real_escape_string($secondsurname)."',
'".$mysqli->real_escape_string($firstname)."',
'".$mysqli->real_escape_string($middlename)."',
'".$mysqli->real_escape_string($alias)."',
'".$mysqli->real_escape_string($gender)."',
'".$mysqli->real_escape_string($email)."',
'".$mysqli->real_escape_string($password)."',
'".$mysqli->real_escape_string($tel)."',
'".$mysqli->real_escape_string($country)."',
'".$mysqli->real_escape_string($department)."',
'".$mysqli->real_escape_string($town)."',
'".$mysqli->real_escape_string($village)."',
'".$mysqli->real_escape_string($commune)."',
'".$mysqli->real_escape_string($neighborhood)."',
'".$ip."')";
$mysqli->query($query);
if ($mysqli->errno==0){echo "Hola ".$_POST['firstname']." ".$_POST['middlename']." te damos la bienvenida a mi web y disfruta de los beneficios de nuestra comunidad, en exactamente seras redirigido al nuestro blog";
header("Refresh: 15; URL=../blog/index.php");
}else{
if ($mysqli->errno==1062){echo "Hola ".$_POST['firstname']." ".$_POST['middlename']." No se logro realizar el registro en la web ya que existe un usuario al cual le pertenece este número de identificación.";//el numero de identificacion es el nuip ya que habla de colombia
}else{
$errno=$mysqli->errno;
$error=$mysqli->error;
echo "Se ha producido un error nº ".$numerror." que corresponde a: $descrerror <br>";
}
}
}
}

el formulario para insertar los datos se localizara en registro.php

<form action="registrar.php" method="post" name="registro" enctype="multipart/form-data">
<label for="nuip">Identificación:</label>
<input type="number" name="nuip" id="nuip" placeholder="Número de identificación" value="">
<label for="firstsurname">Primer apellido:</label>
<input type="text" name="firstsurname" id="firstsurname" placeholder="Primer apellido" value="">
<label for="secondsurname">Segundo apellido:</label>
<input type="text" name="secondsurname" id="secondsurname" placeholder="Segundo apellido" value="">
<label for="firstname">Primer nombre:</label>
<input type="text" name="firstname" id="firstname" placeholder="Primer nombre" value="">
<label for="middlename">Segundo nombre:</label>
<input type="text" name="middlename" id="middlename" placeholder="Segundo nombre" value="">
<label for="alias">Nick:</label>
<input type="text" name="alias" id="alias" placeholder="Nick" value="">
<label for="gender">sexo:</label>
<select name="gender" id="gender">
<option value="">Por favor seleccione</option>
<?php
while ($row = $result->fetch_assoc())
{
echo "<option value='".$row['id']."'>".$row['namegender']."</option>";
}
?>
</select>
<label for="email">E-mail:</label>
<input type="email" name="email" id="email" placeholder="Correo electronico" value="">
<label for="password">Contraseña:</label>
<input type="password" name="password" id="password" placeholder="password" value="">
<label for="password1">Confirmar contraseña:</label>
<input type="password" id="password1" placeholder="password">
<label for="tel">Telefono:</label>
<input type="tel" name="tel" id="tel" placeholder="Telefono o Celular" value="">
<label for="country">Pais:</label>
<select name="country" id="country">
<option value="0">Por favor seleccione</option>
</select>
<label for="department">Departamento:</label>
<select name="department" id="department">
<option value="0">Por favor seleccione</option>
</select>
<label for="town">Municipio:</label>
<select name="town" id="town">
<option value="0">Por favor seleccione</option>
</select>
<label for="village">Poblado:</label>
<select name="village" id="village">
<option value="0">Por favor seleccione</option>
</select>
<label for="commune">Comuna:</label>
<select name="commune" id="commune">
<option value="0">Por favor seleccione</option>
</select>
<label for="neighborhood">Barrio:</label>
<select name="neighborhood" id="neighborhood">
<option value="0">Por favor seleccione</option>
</select>
<br>
<br>
<input type="submit" name="submit" id="submit" value="Registrarme">
<input type="reset" value="Borrar">
</form>

y este seria el script que recoge los datos y los envia a la base de datos

la pagina la llame registrar.php
<?php
$insert = insert();
if (isset($_POST['firstname'],$_POST['middlename']))?>

te dejo como tarea los select dependientes del pais y demas que seria dependientes manejalos con php y ajax no utilizes javascirpt

y me envias tus resultados haber como si hay necesidad de mejorarlos mejorarlos.

cualñquier duda contactame a mi correo

[email protected] suerte con tu proyecto

Última edición por liberenatu; 20/08/2012 a las 15:26

Etiquetas: formulario, html, mysql, registro, tabla, guardar
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 17:11.