Ayuda con registro de usuarios

  • Autor Autor ElJeshuu
  • Fecha de inicio Fecha de inicio
E

ElJeshuu

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
necesito agregar esto

$sexo = $_POST['sexo']; que sea f y m femenino y masculino para que ingrese los datos

codigo procesar.php

<?php
// Registro De Usuario //
// Programdo Por Jesus Cabrera //
// Beta 1.0 //
include('conexion.php');
if(isset($_POST['Submit'])) {
foreach($_POST as $campo => $valor) {
if(empty($campo)) {
die('El campo ' . $campo . ' está vacío. Imposible continuar...');
}
}

//Creo que todo esto se puede unificar con el foreach y vectores...
$usuario = $_POST['usuario'];
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$clave = $_POST['clave'];
$sexo = $_POST['sexo'];
$Email = $_POST['Email'];




$q = mysql_query("INSERT INTO usuarios (usuario, nombre,apellido,clave,sexo, Email) VALUE (NULL, '$usuario', '$nombre', '$apellido', '$clave', '$sexo', '$Email',)");
if($q) {
echo 'Usuario registrado con éxito!';
}else{
die('Ha ocurrido un error al hacer la consulta.');
}
header("location: inicio.php"); // lo llebamos al inicio
mysql_close();
}
?>
en mysql puse asi

`sexo` enum('M','F') DEFAULT NULL,

al registrar me salta este error
Ha ocurrido un error al hacer la consulta.
 
Última edición:
Yo como que estoy un medio perdido...
¿me puedes decir en que necesitas exactamente una orientación?¿cual es exactamente tu problema?

Yo hasta el momento veo partes de código (que aunque no me gusta un poco) es decisión de cada programador como lo hace.

PD:
Haber si puedes utilizar las etiquetas CODE entre barras [] [/], se ve mas ordenado el código.
 
Puedes empezar por quitar la coma después de $Email, pero hay otras partes del código que no son correctas tampoco.

Respecto a la primera pregunta, habría que ver cuáles son los valores en el formulario, pero sería algo así: $sexo = $_POST['sexo'] == 'femenino' ? 'F' : 'M';
 
Última edición:
claro para que entiendan el registro seria similar a facebook..

con usuario, nombre,apellido,clave,sexo y email..


y que cosa no le gustan tema vulnerables?

a la hora de que pueda ser hackeado? bueno en ese tema todavia no empeze soy novato pero aprendo .

si me dan la sugerencias se lo agradesco . gracias por la buena onda.

---------- Post agregado el 11-abr-2013 hora: 15:59 ----------

pusiste $sexo = $_POST['sexo'] == 'f' ? 'femenino' : 'masculino'; y la m ?

o seria $sexo = $_POST['sexo'] == 'f y m' ? 'femenino' : 'masculino'; ? se que algo asi me dijieron pero para sacarme la dudas vine al foro🙂

---------- Post agregado el 11-abr-2013 hora: 16:00 ----------

la verdad me sigue saltando hubo un error en la consulta
 
claro para que entiendan el registro seria similar a facebook..

con usuario, nombre,apellido,clave,sexo y email..


y que cosa no le gustan tema vulnerables?

a la hora de que pueda ser hackeado? bueno en ese tema todavia no empeze soy novato pero aprendo .

si me dan la sugerencias se lo agradesco . gracias por la buena onda.
El código es incorrecto en varios sentidos. Los parámetros que ha enviado el usuario mediante el formulario no están filtrados. Funciones como mysql_real_escape_string() o algunas de la librería Ctype pueden ayudarte. También puedes convertir las entidades HTML con htmlspecialchars() o htmlentities(). En fin, hay muchas formas de filtrar los datos, es cuestión de cada formulario y del uso que vaya a tener posteriormente.


---------- Post agregado el 11-abr-2013 hora: 15:59 ----------

pusiste $sexo = $_POST['sexo'] == 'f' ? 'femenino' : 'masculino'; y la m ?

o seria $sexo = $_POST['sexo'] == 'f y m' ? 'femenino' : 'masculino'; ? se que algo asi me dijieron pero para sacarme la dudas vine al foro🙂
PHP:
$sexo = $_POST['sexo'] == 'femenino' ? 'F' : 'M';
Donde "femenino" debe estar el valor del input femenino en el formulario.


---------- Post agregado el 11-abr-2013 hora: 16:00 ----------

la verdad me sigue saltando hubo un error en la consulta
En lugar de mostrar el error que se indica, pon "mysql_error()". Así se mostrará el error de la consulta.
 
mira te muestro como quedo

procesar.php

PHP:
<?php

      function conectar(){

      //Para comodidad he puesto los datos en variables
      $usuario="root";
      $contraseña="23123";
      $servidor="localhost";
      $baseDatos="sds";

         //1. Conexion al servidor, se pasan los parametros de
         //Servidor, usuario y password

         if(!$conectID=@mysql_connect($servidor, $usuario, $password)){
		echo "No se logró conexión al servidor MySQL";
         }else{

                //2. Si la conexión salió bien, se procede a conectar en la
                //base de datos usando la conexión anterior con el servidor
                //a la base de datos llamada db

		if(!@mysql_select_db($baseDatos,$conectID)){
			echo "No se logró la conexion a la base de datos";
                }else{

                        //3. En este paso ya hay conexión total
                        //y la función podrá regresar un valor para empezar a
                        //Ejecutar query's

			echo "Conexión  establecida";
			return $conectID;
		}
	  }
      }

?>


registro

HTML:
 <span class="Estilo1">Sos Nuevo?Registrate</span></div>
		<div class="sidebar">
	<form action="/nombre/procesar.php" method="post">
		<input type="text" name="nombre" placeholder="nombre"/>
		<input type="text" name="apellido" placeholder="apellido"/>
		<input type="text" name="usuario" placeholder="usuario"/><br />
		<div class="input-container">Elegi Tu Sexo<span style="color: #666; font-size: 10px;"></span></div>
		<select name="sexo" id="sexo">
		  <option value="Masculino">Masculino</option>
		  <option value="Femenino">Femenino</option>
            </select>
		<input type="password" name="clave" placeholder="clave"/>
		<br />
		<input type="text" name="Email" placeholder="Email"/><br />
		
		<input name="Submit" type="Submit" id="Submit" value="Registrate"/>
	</form>
	</div>

en localhost lo estoy haciendo con xampp el codigo que pasaste funciona pero no ingresa los datos a mysql


base de datos

CREATE TABLE IF NOT EXISTS `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usuario` varchar(40) NOT NULL,
`nombre` varchar(40) NOT NULL,
`apellido` varchar(40) NOT NULL,
`cumpleaños` date DEFAULT NULL,
`sexo` enum('M','F') DEFAULT NULL,
`Email` varchar(45) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
`fecha` date NOT NULL,
`avatar` varchar(97) NOT NULL,
`rango` varchar(30) NOT NULL DEFAULT 'Usuario Normal',
`baneado` varchar(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)

---------- Post agregado el 11-abr-2013 hora: 17:55 ----------

alguien que me de una mano todavia no pude soluccionarlo ..
 
Última edición:
En la condición, edita "femenino" por "Femenino":
PHP:
$sexo = $_POST['sexo'] == 'Femenino' ? 'F' : 'M';


No inserta nada o no inserta el sexo? En el último código no he visto la consulta para insertar...
 
ya lo soluccione .. lo dejo para alguien que lo necesite 🙂
PHP:
<?php

require_once("conexion.php");


if (isset($_POST["Submit"]))
{ 

            $usuario = $_POST['usuario'];
			$nombre = $_POST['nombre'];
			$apellido = $_POST['apellido'];
            $clave = $_POST['clave'];
			$sexo = $_POST['sexo'] == 'femenino' ? 'F' : 'M';  
            $Email = $_POST['Email'];


			
			//creamos la consulta para validar que el usuario no exista en la base de datos

$consultas="select * from usuarios where usuario='".$_POST["usuario"]."'";
mysql_select_db($db,$conexion);
$resultados=mysql_query($consultas,$conexion);


if ($registro=mysql_num_rows($resultados)==0)
{

$listo_usuario=1;

}
else
{
$listo_usuario=0;

echo "<script type='text/javascript'>alert('El usuario ya existe en la base de datos'); window.location='index.php';</script>";

}


//creamos la consulta para validar que el correo no exista en la base de datos

$consult="select * from usuarios where Email='".$_POST["Email"]."'";
mysql_select_db($db,$conexion);
$resultad=mysql_query($consult,$conexion);


if ($registr=mysql_num_rows($resultad)==0)
{

$listo_correo=1;

}
else
{
$listo_correo=0;

echo "<script type='text/javascript'>alert('El correo ya esta en uso'); window.location='index.php';</script>";

}
			if ($listo_usuario==1 and $listo_correo==1)
			{
			
			
$consulta="INSERT INTO usuarios (ID,usuario, nombre,apellido,clave,sexo, Email) VALUE (NULL, '$usuario', '$nombre', '$apellido', '$clave', '$sexo', '$Email')";
			mysql_select_db($db,$conexion);
			

			
			$resultado=mysql_query($consulta,$conexion);
			
			echo "<script type='text/javascript'>alert('El usuario se registro con exito'); window.location='index.php';</script>";

}
}
else
{
header("Location: index.php");
}
?>
 
Fue todo un placer no hacer nada, gracias (?) :distant:
 
Atrás
Arriba