Foros del Web » Programando para Internet » PHP »

Evitar la duplicidad de usuario

Estas en el tema de Evitar la duplicidad de usuario en el foro de PHP en Foros del Web. Hola: Tengo el siguiente codigo: <?PHP /* guardar_archivo.php */ $db_conn = require("dbconnect.inc.php"); /* create table diplomado ( id number(5) primary key, claveescuela varchar2(12), usuario varchar2(16), ...
  #1 (permalink)  
Antiguo 14/05/2009, 11:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
Evitar la duplicidad de usuario

Hola:

Tengo el siguiente codigo:
<?PHP
/* guardar_archivo.php */
$db_conn = require("dbconnect.inc.php");

/*
create table diplomado
(
id number(5) primary key,
claveescuela varchar2(12),
usuario varchar2(16),
contrasena varchar2(16),
nombres varchar2(100),
paterno varchar2(100),
materno varchar2(100),
mail varchar2(200),
estado varchar2(200),
deslaboral varchar2(200),
horasdis varchar2(20),
expectativas varchar2(200),
aplicacion varchar2(200),
fecha date)
*/

/* Variables del formato */
$v_claveescuela = $_POST["v_claveescuela"];
$v_usuario = $_POST["v_usuario"];
$v_contrasena = $_POST["v_contrasena"];
$v_nombres = $_POST["v_nombres"];
$v_paterno = $_POST["v_paterno"];
$v_materno = $_POST["v_materno"];
$v_mail = $_POST["v_mail"];
$v_estado = $_POST["v_estado"];
$v_deslaboral = $_POST["v_deslaboral"];
$v_horasdis = $_POST["v_horasdis"];
$v_expectativas = $_POST["v_expectativas"];
$v_aplicacion = $_POST["v_aplicacion"];

/* Funciones para armar el cuerpo del html */

function encabezado ($titulo)
{
print "<html>
<head>
</head>
<body bgcolor=#FFFFFF>
<center>
<br><h2><b><font color=#000000>Verifique sus datos</font></b></h2>
<hr size=4 width=78%>
<form>
<h1>$titulo</h1>
<input type=button value=Regresar onClick=history.back()>
<form>
</center>
</body>
</html>";
return 0;
}

/*
print "<center><b><font color=#000000 size=8>Inscripciones cerradas</font></b></center>
<input type=button value=Regresar onClick=history.back()>";
*/

function encabezado1 ($titulo)
{
print "<html>
<head>
</head>
<body bgcolor=#FFFFFF>
<center>
<br><h2><b><font color=#000000>El procedimiento tuvo éxito</font></b></h2>
<hr size=4 width=78%>
<form>
<h1>$titulo</h1>
<input type=button value=Regresar onClick=history.back()>
<form>
</center>
</body>
</html>";
return 0;
}

if ($v_claveescuela == '') {
encabezado("Escriba su clave de Red Escolar, por favor.");
}
elseif ($v_usuario == '') {
encabezado("Escriba su usuario, por favor.");
}
elseif ($v_contrasena == '') {
encabezado("Escriba su contraseña, por favor.");
}
elseif ($v_nombres == '') {
encabezado("Escriba su nombre o nombres, por favor.");
}
elseif ($v_paterno == '') {
encabezado("Escriba su apellido paterno, por favor.");
}
elseif ($v_mail == '') {
encabezado("Escriba su correo electrónico, por favor.");
}
elseif ($v_expectativas == '') {
encabezado("Escriba sus expectativas, por favor.");
}
elseif ($v_aplicacion == '') {
encabezado("Escriba su aplicación, por favor.");
}
else {
$v_clave = substr($v_claveescuela, 0, 2);
if ( $v_clave == 21 or $v_clave == 29) {

// Genera el query para insertar datos a la tabla
$cmdstr2 = oci_parse($db_conn,'INSERT INTO DIPLOMADO
(id, claveescuela, usuario, contrasena, nombres, paterno,
materno, mail, estado, deslaboral, horasdis, expectativas, aplicacion, fecha)
VALUES
(S_DIPLOMADO_ID.NEXTVAL, :claveescuela, lower(replace(:usuario,\' \',\'\')),
lower(replace(:contrasena,\' \' ,\'\')), initcap(:nombres), initcap(:paterno),
initcap(:materno), :mail, :estado, :deslaboral, :horasdis, :expectativas, :aplicacion, SYSDATE)
RETURNING fecha INTO :fecha');

// Asigna los valores del post en las variables para insertar los datos reales
oci_bind_by_name($cmdstr2, ':claveescuela', $v_claveescuela);
oci_bind_by_name($cmdstr2, ':usuario', $v_usuario);
oci_bind_by_name($cmdstr2, ':contrasena', $v_contrasena);
oci_bind_by_name($cmdstr2, ':nombres', $v_nombres);
oci_bind_by_name($cmdstr2, ':paterno', $v_paterno);
oci_bind_by_name($cmdstr2, ':materno', $v_materno);
oci_bind_by_name($cmdstr2, ':mail', $v_mail);
oci_bind_by_name($cmdstr2, ':estado', $v_estado);
oci_bind_by_name($cmdstr2, ':deslaboral', $v_deslaboral);
oci_bind_by_name($cmdstr2, ':horasdis', $v_horasdis);
oci_bind_by_name($cmdstr2, ':expectativas', $v_expectativas);
oci_bind_by_name($cmdstr2, ':aplicacion', $v_aplicacion);
oci_bind_by_name($cmdstr2, ':fecha', $fecha, 20);
oci_execute($cmdstr2, OCI_DEFAULT);
encabezado1("Usuario: $v_nombres $v_paterno $v_materno se ha guardado su registro en la base de datos con éxito, con fecha $fecha \n<br> gracias por enviarlo.\n<br>");
}
else {
print "<center><b><font color=#000000 size=8>Verifique su clave de centro de trabajo, por favor, de lo contrario usted no pernenece al estado de puebla o tlaxcala</font></b></center>
<input type=button value=Regresar onClick=history.back()>";
}
}
ocicommit($db_conn);
ocilogoff($db_conn);

?>

Este se conecta a una base de datos en oracle 10, mi pregunta es como le hago para que al llenar mi formulario, si escriben el mismo usuario, le salga el mensaje de usuario ya existente y no lo registe. Por fa ayudenme...
  #2 (permalink)  
Antiguo 14/05/2009, 11:16
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Evitar la duplicidad de usuario

con el nombre de usuario que recibes has una consulta a la base de datos y si te devuelve un registro le mandas el error con tu funcion de encabezado y si no ecuentra ninguno lo dejas registrarse
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 15/05/2009, 12:24
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Evitar la duplicidad de usuario

Ya lo resolvi... muchas gracias
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:58.