Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Me he atascado en el siguiente código (https://www.clubdelphi.com/foros/showthread.php?t=40743)

David 25-02-2007 19:30:41

Me he atascado en el siguiente código
 
Quiero tener un formulario , con dos edits , donde el usuario pone su clave y si esta es correcta , inicia una sesión en otro formulario y sino le sale que su clave no es correcta .

El nombre del usuario y la clave , estan en una base de datos mysql.

Así pues , tengo algo así :
Código:

// por arriba la función javaScript
<script language="JavaScript">
        function checkear(num){
                if (num == 0) {
                alert("Debes de escoger una opción");
                window.document.forms[0].action = "";
                }
        }
</script>

// los text y el formulario
form method="post" action="formulario2.php"></b>
        <input type="text" name="usuario" ">
        <input type="text" name="clave">
       
<input type="submit" value="Enviar" onclick="checkear('.<?comprobar(no se que ponerle aquí) ?>.')">

// más abajo , el php

Código PHP:

<?php
function comprobar($usuario,$clave){
 
$consulta ='select * from clientes where usuario ='.$usuario.' and clave = '.$clave;
$query mysql_query($consulta,$db);
$numtotal mysql_num_rows($query);
return 
$numtotal;
}


más o menos este es el código , quiero que al poner en los edits , el nombre y usuario , al darle al botón enviar , lo compruebe en la base de datos de mysql y si no son correctos , pues no vaya a la siguiente página y le salga algún tipo de advertencia con que no ha introducido los datos correctamente.

Saludos

kayetano 25-02-2007 21:05:20

Hola

Cita:

<input type="submit" value="Enviar" onclick="checkear('.<?comprobar(no se que ponerle aquí) ?>.')">
lo primero es que no puedes poner nada en PHP (lo digo por las marcas <? ... ?>).
Lo que no tengo claro es ¿que quieres validar? osea ¿que condiciones debe cumplir tu formulario para que sea correcto?
Por lo general lo único de quebes comprobar es que se haya introducido un texto en los dos campos, esta comprobación es muy simple:
Código:

<script language="JavaScript">
        function checkear(miform){
                if (miform.usuario.value== "" || miform.clave.value=="") {
                  alert("Debes indicar un nombre de usuario y una clave");
                  return false;
                } else {
                  return true;
                }
        }
</script>
...
<input type="submit" value="Enviar" onclick="return checkear(this.form)">

Despues simplemente tienes que comprobar en tu base de datos que la clave y el usuario sean correctos.
Solo tienes que tener en cuenta un par de cosas, primero que cuides que no haya una inyección de código malicioso en los campos usuario y clave. Y segundo (solo para españa) que según la ley española de protección de datos, la contraseña debe estar encriptada (al menos es lo que tengo yo entendido), aún así siempre es aconsejable encriptar todas las claves.

roman 25-02-2007 21:44:36

Además de las comprobaciones que te comenta kayetano, me parece que hay una confusión de conceptos. Parece que intentas comprobar la veracidad de los datos en el mismo formulario 1, y si procede mandar directamente el formulario 2:

Cita:

Empezado por David
Código:

form method="post" action="formulario2.php"></b>
        <input type="text" name="usuario" ">
        <input type="text" name="clave">


El action del formulario 1 debe mandarte a un script php que será el encargado de verificar que los datos son veraces:

Código:

form method="post" action="comprobar.php"></b>
        <input type="text" name="usuario" ">
        <input type="text" name="clave">

comprobar.php es donde haces la consulta (tu función comprobar()) y es también donde puedes redirigir al usuario al segundo formulario o regresar un mensaje de error en caso de que los datos no sean correctos:

Código PHP:

function comprobar(...)
{
  ...
}

if (
comprobar())
{
  
// aquí rediriges al segundo formulario
  
header('location: formulario2.php');
}
else
{
  echo 
'datos incorrectos';  


Claro que es un ejemplo muy simplificado. Como te indica kayetano, tienes que cuidar que no haya inyección de código y las contraseñas deberían estar encriptadas.

// Saludos

David 26-02-2007 00:15:52

Lo que quiero es que yo tengo una base de datos mysql , dentro hay una tabla usuarios , con nombre y clave .

En una pagina php , el usuario escribe el nombre y la password en un <input type="text>

y si al darle a enviar , ese nombre de usuario y password esta en la base de datos mysql , pues entonces va al siguiente formulario , donde podrá iniciar una sesión , y ver sus datos , sus facturas , etc ...

Si el nombre de usuario y password no esta , pues que diga algo como incorrecto . Vamos algo parecido a lo que hay que hacer a la hora de hacer login , para acceder a tu perfil , por poner un ejemplo . El tema seria algo similar .

Ya en el otro formulario a usuarios registrados , pues podrá descargarse archivos , ver sus facturas , y todo lo que se nos vaya ocurriendo .

Saludos


La franja horaria es GMT +2. Ahora son las 03:21:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi