Foros del Web » Programando para Internet » PHP »

insert en form

Estas en el tema de insert en form en el foro de PHP en Foros del Web. saludos, estoy modificando un form pero no se como hacerle el insert a la base de datos... aqui les muestro mi formulario Código PHP:   ...
  #1 (permalink)  
Antiguo 18/06/2008, 07:37
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Pregunta insert en form

saludos,
estoy modificando un form pero no se como hacerle el insert a la base de datos... aqui les muestro

mi formulario
Código PHP:
 <form method="post" id="registerForm" action="register.php">
                                          <
table align="center" cellpadding="2" cellspacing="0">
                                            <
tr>
                                              <
td width="120" style="width:120px"><div align="right" class="textoResto">Nombre: </div></td>
                <
td width="172"><div align="left" class="string">
                  <
input name="nombre" type="text" class="input" id="nombre" value="" size="32" />
                  </
div>              </td>
              </
tr>
                                            <
tr>
                                              <
td class="textoResto" style="width:120px"><div align="right">Apellido: </div></td>
                <
td><div align="left">
                  <
input name="apellido" class="input" type="text" id="apellido" value="" size="32" />
                  </
div></td>
              </
tr>
                                            <
tr>
                                              <
td class="textoResto" style="width:120px"><div align="right">Usuario: </div></td>
                <
td><div align="left">
                  <
input name="usuario" type="text" class="input" id="usuario" value="" size="32" />
                  </
div>              </td>
              </
tr>
                                            <
tr>
                                              <
td class="textoResto" style="width:120px"><div align="right">Contraseña: </div></td>
                <
td><div align="left">
                  <
input name="pass" type="password" class="input" id="pass" value="" size="32" />
                  </
div></td>
              </
tr>
                                            <
tr>
                                              
                                              <
td class="textoResto" style="width:120px"><div align="right">Repetir Contraseña: </div></td>
                <
td><div align="left">
                  <
input name="re_pass" type="password" class="input" id="re_pass" value="" size="32" />
                  </
div></td>
              </
tr>
                                            <
tr>
                                              
                                              <
td class="textoResto" style="width:120px"><div align="right">E-Mail: </div></td>
                <
td><div align="left">
                  <
input name="mail" type="text" class="input" id="mail" value="" size="32" />
                  </
div></td>
              </
tr>
                                            <
tr>
                                              <
td style="width:120px"><div align="right" class="textoResto">C.I. / RIF.:</div></td>
                <
td><input name="cedula" type="text" class="input" id="cedula" value="" size="32" /></td>
              </
tr>
                                            <
tr>
                                              <
td style="width:120px"><div align="right" class="textoResto">Teléfono: </div></td>
                <
td><input name="telefono" type="text" class="input" id="telefono" value="" size="32" /></td>
              </
tr>
                                            <
tr>
                                              <
td style="width:120px"><div align="right" class="textoResto">Fecha: </div></td>
                <
td><div align="left">
                  <
input name="fecha" type="text" class="input" id="fecha" value="" size="25" />
                </
div></td>
              </
tr>
                                            <
tr>
                                              <
td colspan="2"><div align="right">
                                                <
input type="image" name="register" class="submit-btn" src="btn.gif" alt="submit" title="submit" />
                                                </
div></td>
              </
tr>
                                            </
table>
          </
form
luego procesa los datos y lee esto..
register.php
Código PHP:
<?php
    
include('functions.php');

    if (
$_POST['nombre']=='' || strlen($_POST['nombre'])<3)
    {
        
$errors[] = 'Nomnbre debe poseer al menos 3 letras.';
    }

    if (
$_POST['apellido']=='' || strlen($_POST['apellido'])<3)
    {
        
$errors[] = 'Apellido debe poseer al menos 3 letras.';
    }

    if (
$_POST['usuario']=='' || alpha_numeric($_POST['usuario'])==FALSE)
    {
        
$errors[] = 'Usuario debe contener valores alfa-numéricos';
    }

    if (
$_POST['pass']=='' || alpha_numeric($_POST['pass'])==FALSE)
    {
        
$errors[] = 'A password is required and must be alpha-numeric';
    }

    if (
$_POST['pass']!=$_POST['re_pass'])
    {
        
$errors[] = 'The two passwords must match';
    }

    if (
valid_email($_POST['mail'])==FALSE)
    {
        
$errors[] = 'Please supply a valid email address';
    }
    if (
$_POST['cedula']=='' || strlen($_POST['cedula'])<3)
    {
        
$errors[] = 'Cedula name is required and must contain 3 characters or more';
    }
    if (
$_POST['telefono']=='' || strlen($_POST['telefono'])<3)
    {
        
$errors[] = 'Telefono name is required and must contain 3 characters or more';
    }
    if (
$_POST['fecha']=='' || strlen($_POST['fecha'])<3)
    {
        
$errors[] = 'Fecha name is required and must contain 3 characters or more';
    }

    if(
is_array($errors))
    {
        echo 
'<p class="error"><b>The following errors occured</b></p>';
        while (list(
$key,$value) = each($errors))
        {

            echo 
'<span class="error">'.$value.'</span><br />';
        }
    }
    else {
        
//do something here----store to db, send email
        
echo '<p><b>Success!</b></p>';
        echo 
'<span>Your registration was successfully processed. You may login and start using your account. Thank you for registering !</span>';
    }

?>
y funtions.php
Código PHP:
<?php

    
function alpha_numeric($str)
    {
        return ( ! 
preg_match("/^([-a-z0-9])+$/i"$str)) ? FALSE TRUE;
    }

    function 
valid_email($str)
    {
        return ( ! 
preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"$str)) ? FALSE TRUE;
    }

?>
como veran son solo validadores para mi form ahora bien por lo q veo el insert va en register.php pero d q manera debo hacerlo??? o en q parte!?

podrian ayudarme??
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 18/06/2008, 07:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: insert en form

aqui dentro
de este else.

Cita:

else {
//do something here----store to db, send email
echo '<p><b>Success!</b></p>';
echo '<span>Your registration was successfully processed. You may login and start using your account. Thank you for registering !</span>';
}

  #3 (permalink)  
Antiguo 18/06/2008, 07:54
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

asi?

Código PHP:
<?php
    
include('functions.php');

    if (
$_POST['nombre']=='' || strlen($_POST['nombre'])<3)
    {
        
$errors[] = 'Nomnbre debe poseer al menos 3 letras.';
    }

    if (
$_POST['apellido']=='' || strlen($_POST['apellido'])<3)
    {
        
$errors[] = 'Apellido debe poseer al menos 3 letras.';
    }

    if (
$_POST['usuario']=='' || alpha_numeric($_POST['usuario'])==FALSE)
    {
        
$errors[] = 'Usuario debe contener valores alfa-numéricos';
    }

    if (
$_POST['pass']=='' || alpha_numeric($_POST['pass'])==FALSE)
    {
        
$errors[] = 'Debe suministrar una contraseña';
    }

    if (
$_POST['pass']!=$_POST['re_pass'])
    {
        
$errors[] = 'Contraseñas no coinciden';
    }

    if (
valid_email($_POST['mail'])==FALSE)
    {
        
$errors[] = 'Inserte una direcciónde correo valida';
    }
    if (
$_POST['cedula']=='' || strlen($_POST['cedula'])<6)
    {
        
$errors[] = 'Cedula debe poseer al menos 6 digitos';
    }
    if (
$_POST['telefono']=='' || strlen($_POST['telefono'])<7)
    {
        
$errors[] = 'El teléfono deb poseer al menos 7 digitos';
    }
    if (
$_POST['fecha']=='' || strlen($_POST['fecha'])<3)
    {
        
$errors[] = 'Debe poseer una fecha';
    }

    if(
is_array($errors))
    {
        echo 
'<p class="error"><b>The following errors occured</b></p>';
        while (list(
$key,$value) = each($errors))
        {

            echo 
'<span class="error">'.$value.'</span><br />';
        }
    }
    else {
         include (
'conect.php');



    if (isset(
$_POST['subir'])) {

            
extract($_POST);



            if (empty(
$activo)){

            
$activo=2;

            }





        
$query="INSERT INTO clientes SET

        nombre = '$nombre',

        apellido = '$apellido',

        usuario = '$usuario',
        
        pass = '$pass',
        
        mail = '$mail',
        
        cedula = '$cedula',
        
        telefono = '$telefono',
        
        fecha = '$fecha'"
;    

        
mysql_query($query);

                                    

        
    }            


        echo 
'<p><b>Felicitaciones!</b></p>';
        echo 
'<span>Tu registro ha sido procesado con éxito. Ahora puedes ingresar usando tu usuario y contraseña. gracias por registrarte !</span>';
    }

?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Última edición por T4ke0veR; 18/06/2008 a las 08:39
  #4 (permalink)  
Antiguo 18/06/2008, 07:58
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: insert en form

Si, intentalo, a ver que pasa

Un saludo
  #5 (permalink)  
Antiguo 18/06/2008, 08:03
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

no ingresa... o sea no me da error alguno... pero tampoco ingresa =/
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 18/06/2008, 09:09
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

estaba revisando y creo q me falta esto en el form
<?=$PHP_SELF?>

pero si ya tngo esto
Código PHP:
 <form method="post" id="registerForm" action="register.php"
como action, q debo hacer?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #7 (permalink)  
Antiguo 18/06/2008, 09:59
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

nada q funciona... he hecho muchas cosas y nada... alguien podria ayudarme?????
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 18/06/2008, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

Cambia tu query, agrégale esto:
Código PHP:
 mysql_query($query) or die( "[ERROR] Query: $query, error: " mysql_error() ); 
Saludos.
  #9 (permalink)  
Antiguo 18/06/2008, 10:35
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

listo... no me da error alguno!!! pero tampoco me inserta en la bd, me parece bastante extraño no si sera algo en el form... pues el action me llama a register.php q es donde esta el query
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #10 (permalink)  
Antiguo 18/06/2008, 11:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

Mmm viendo tu formulario haces referencia a:
Código PHP:
if (isset($_POST['subir'])) { 
Sin embargo no tienes ningún elemento llamado $_POST['subir'] en tu formulario, el único submit que tienes se llama register, que es una imagen, y para leer sus propiedades debes de checar si vienen en el $_POST register_x y register_y.

Saludos.
  #11 (permalink)  
Antiguo 18/06/2008, 11:36
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

ok cambio el POST a register... lo q no entiendo es... me lee las validaciondes del form... pero no me lee el else q es la parte del insert...
deberia leermelo =/
no me arroja errores no me arroba nada d nada!!!!.... le he dado mil vueltas y aun =/
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #12 (permalink)  
Antiguo 18/06/2008, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

Yo que tu quitaría ese IF ya que si ya paso las validaciones es porque el formulario es correcto, no necesitas volver a validar si se envió.

Saludos.
  #13 (permalink)  
Antiguo 18/06/2008, 11:57
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

hahaha, me rio para no llorar

ahora llegan datos vacios

Código PHP:
<?php
    
include('functions.php');

    if (
$_POST['nombre']=='' || strlen($_POST['nombre'])<3)
    {
        
$errors[] = 'Nomnbre debe poseer al menos 3 letras.';
    }

    if (
$_POST['apellido']=='' || strlen($_POST['apellido'])<3)
    {
        
$errors[] = 'Apellido debe poseer al menos 3 letras.';
    }

    if (
$_POST['usuario']=='' || alpha_numeric($_POST['usuario'])==FALSE)
    {
        
$errors[] = 'Usuario debe contener valores alfa-numéricos';
    }

    if (
$_POST['pass']=='' || alpha_numeric($_POST['pass'])==FALSE)
    {
        
$errors[] = 'A password is required and must be alpha-numeric';
    }

    if (
$_POST['pass']!=$_POST['re_pass'])
    {
        
$errors[] = 'The two passwords must match';
    }

    if (
valid_email($_POST['mail'])==FALSE)
    {
        
$errors[] = 'Please supply a valid email address';
    }
    if (
$_POST['cedula']=='' || strlen($_POST['cedula'])<3)
    {
        
$errors[] = 'Cedula name is required and must contain 3 characters or more';
    }
    if (
$_POST['telefono']=='' || strlen($_POST['telefono'])<3)
    {
        
$errors[] = 'Telefono name is required and must contain 3 characters or more';
    }
    if (
$_POST['fecha']=='' || strlen($_POST['fecha'])<3)
    {
        
$errors[] = 'Fecha name is required and must contain 3 characters or more';
    }

    if(
is_array($errors))
    {
        echo 
'<p class="error"><b>The following errors occured</b></p>';
        while (list(
$key,$value) = each($errors))
        {

            echo 
'<span class="error">'.$value.'</span><br />';
        }
    }
    else {
         include (
'conect.php');



        
$query="INSERT INTO clientes SET

        nombre = '$nombre',

        apellido = '$apellido',

        usuario = '$usuario',
        
        pass = '$pass',
        
        mail = '$mail',
        
        cedula = '$cedula',
        
        telefono = '$telefono',
        
        fecha = '$fecha'"
;    

         
mysql_query($query) or die( "[ERROR] Query: $query, error: " mysql_error() );  



                
        echo 
'<p><b>Felicitaciones!</b></p>';
        echo 
'<span>Tu registro ha sido procesado con éxito. Ahora puedes ingresar usando tu usuario y contraseña. gracias por registrarte !</span>';
    }
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #14 (permalink)  
Antiguo 18/06/2008, 12:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

¿De donde obtienes $nombre, $apellido, $usuario, etc.?

Prueba ver si vienen de $_POST['nombre'], $_POST['apellido'] etc.

Saludos.
  #15 (permalink)  
Antiguo 18/06/2008, 12:04
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

si... vienen de eso!!!!
pero como lo compruebo?????
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #16 (permalink)  
Antiguo 18/06/2008, 12:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

Haz un echo $nombre, y luego echo $_POST['nombre'].

Saludos.
  #17 (permalink)  
Antiguo 18/06/2008, 12:15
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

me imprime cuando hago el echo asi
Código PHP:
echo ($_POST['nombre']); 
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #18 (permalink)  
Antiguo 18/06/2008, 12:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: insert en form

Entonces usa $_POST['nombre'] en lugar de $nombre directamente, ya que seguramente tienes desactivado el register_globals.

O en dado caso asigna las variables a locales usando:
Código PHP:
$nombre $_POST['nombre']; 
Saludos.
  #19 (permalink)  
Antiguo 18/06/2008, 12:34
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: insert en form

chevere... gracias por tu tiempo..
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
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 13:10.