Foros del Web » Programando para Internet » PHP »

Como puedo hacer esto?

Estas en el tema de Como puedo hacer esto? en el foro de PHP en Foros del Web. Tengo una página que me inserta usuarios en una Base de Datos con una serie de datos, pero adicionalmente sin que el usuario se de ...
  #1 (permalink)  
Antiguo 15/05/2003, 10:28
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Como puedo hacer esto?

Tengo una página que me inserta usuarios en una Base de Datos con una serie de datos, pero adicionalmente sin que el usuario se de cuenta quiero insertar su IP, nombre del server y fecha de registro pero no se como hacerlo. He probado con campos de tipo hidden pero no me trabaja entonces la pagina .php ¿que hago?

Si pero en que parte en la consulta?

Yo lo que hago es esto

$result = "INSERT INTO tabla (nombre,apellidos,mail,...,pass) VALUES ('$nombre','$apellidos','$mail',...,'$pass')";

mysql_free_result($result);

Me lo podrías explicar mejor
__________________
Ing. Reynier Pérez Mira

Última edición por Reynier; 15/05/2003 a las 10:43
  #2 (permalink)  
Antiguo 15/05/2003, 10:39
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Inserta esto junto los otros campos: ip='$_SERVER[REMOTE_ADDR]', dns='$_SERVER[REMOTE_HOST]',fecha=Now()
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 15/05/2003, 13:28
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 15 años, 8 meses
Puntos: 2
A la tabla de usuarios le insertas 3 campos mas. ej:

Código:
ip char(255) NOT NULL,
server char(255) NOT NULL,
fecha char(255) NOT NULL
Despues haces 5 variables en el registro (DOnde insertas los datos a la tabla mysql)

Código PHP:
<?

//CONEXION A LA BD (No la olvides)

$ip $_SERVER[REMOTE_ADDR];
$server $_SERVER[REMOTE_HOST];
$horax date("h:i:s");
$horaxe date("j/n/Y");
$fecha "$horax de $horaxe";

$result "INSERT INTO tabla (nombre,apellidos,mail,...,pass,ip,server,fecha) VALUES ('$nombre','$apellidos','$mail',...,'$pass','$ip','$server','$fecha')";

mysql_query($result);

?>
Listo
Suerte
__________________
http://www.chorcha.com
  #4 (permalink)  
Antiguo 15/05/2003, 15:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
camargo .. usa campos de tu BD fecha tipo DATE! o DATETIME .. y usa NOW() para lo mismo que haces con date() .. Veras que te facilita la vida a la hora de hacer consultas a tu BD por rangos de fechas o cualquier cálculo con las mismas ..

Sólo es un consejo .. tomalo como tal.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/05/2003, 21:20
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ya lo hice pero no me inserta nada

Ya lo hice dime si este código está correcto
Código PHP:
<?php
 
//Variables globales para la conexión a la Base de Datos
 
$host "localhost";
 
$user "";
 
$pass "";
 
$dbase "registro";
 
 
//Función para generar claves
 
function genera() {
    
$cons "bcdfghjklmnpqrstvwxyz";
    
$vocs "aeiou";
    for (
$x=0$x 6$x++) {
    
mt_srand ((double) microtime() * 1000000);
    
$con[$x] = substr($consmt_rand(0strlen($cons)-1), 1);
    
$voc[$x] = substr($vocsmt_rand(0strlen($vocs)-1), 1);
    }
    
$makepass $con[0] . $voc[0] .$con[2] . $con[1] . $voc[1] . $con[3] . $voc[3] . $con[4];
    return(
$makepass);
}

 
//Establecer conexión a la Base de Datos
 
echo "<html><head><title>Subscricion</title></head><body>";
  if (! 
$nombre)
   echo 
"<font size=\"2\" face=\"Tahoma\">Error en el nombre de usuario, nencesita tener un nombre válido.<br></font>";
  if (! 
$apellidos)
   echo 
"<font size=\"2\" face=\"Tahoma\">Error en sus apellidos, necesita tener apellidos válidos.<br></font>";
  if ((!
$password)||($password != $reppassword ))
   echo 
"<font size=\"2\" face=\"Tahoma\">Error, repita su contraseña en el campo señalado.<Br></font>";

  (
$link mysql_connect($host,$user,$pass)) || die("No puedo conectarme a la base de datos en estos momentos");
  
mysql_select_db($dbase);
  
$result mysql_query("SELECT nombre FROM registro WHERE login='$login'");
  
$pa genera();
  if (
mysql_num_rows($result))
  {
    
mysql_close($link);
    echo 
"<font size=\"2\" face=\"Tahoma\">Ya existe un usuario con ese login<br>Le sugerimos: </font>".$pa."<br>";
  }
  
$ip $_SERVER[REMOTE_ADDR];
  
$server $_SERVER[REMOTE_HOST];
  
$horax date("h:i:s");
  
$horaxe date("j/n/Y");
  
$fecha "$horax de $horaxe";
  
$clave md5($password);
  
$queryinsert "INSERT INTO registro(nombre,apellidos,email,facultad,grupo,telefono,biper,motivos,login,password)" .
                 
"VALUES('$nombre','$apellidos','$correo','$facultad','$grupo','$telefono','$biper','$motivos','$login','$clave','$ip','$server','$fecha')";
  
mysql_query($queryinsert);
  if (
$queryinsert == 1)
   {
    
phpversion();
   }
  if (
$queryinsert == 1){
   echo 
"<font size=\"2\" face=\"Tahoma\">Usted esta adicionado como usuario</font>";
  }
  
mysql_close($link);
  echo 
"</body></html>";

?>
¿Cómo puedo agregarle funciones para comprobar el largo de los nombres y apellidos y validar el email?

Saludos
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 15/05/2003, 22:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues ahí . donde recoges tus variables le aplicas condicionales IF y usas funciones como strlen() para comprobar el tamaño en caracteres de tus variables .. o expresiones regulares para validar una cuenta de e-mail (esto está en las FAQ's si mal no recuerdo ..) ..

En general .. usar funciones de tratamiento de cadenas o funciones tipo is_number .. is_xxxx para determinar si es del tipo correcto .. etc .. etc ..

Recuerda .. Condicionales y funciones de cadenas (strings) ..

www.php.net/manual/es podrás encontrar mas informarción al respecto ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 23:30.