Foros del Web » Programando para Internet » PHP »

Login en php

Estas en el tema de Login en php en el foro de PHP en Foros del Web. Hola, Estoy empezando con PHP y he intentado adaptar un código para que al mandar los datos de un formulario para presupuestar un trabajo, salte ...
  #1 (permalink)  
Antiguo 26/03/2012, 04:18
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Login en php

Hola,
Estoy empezando con PHP y he intentado adaptar un código para que al mandar los datos de un formulario para presupuestar un trabajo, salte a una página de login o bien registro dependiendo de si ya se es usuario. En caso de ser usuario se validaría y se enviaría finalmente el formulario creando un e-mail con los datos introducidos más los de la base de datos sobre el usuario que los ha mandado. Si no lo es, debe registrarse introduciendo sus datos y seguidamente mandar el formulario.

El siguiente código es el de la página en la que se marca si se es usuario o no y dependiendo de eso se habilitan unos campos u otros. Pero el código no funciona bien, alguien podría echarme una mano con los errores?
Mil gracias!!

Código PHP:
[..]
<div class="contenidos5">
    <?php
 
if (document.presupuestoslogin.pw.disabled){
     
session_start();
    
mysql_connect('mysql4.000webhost.com','a7487191_mireia','******')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
    
mysql_select_db('a7487191_presus')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 
    function 
quitar($mensaje)
    {
        
$nopermitidos = array("'",'\\','<','>',"\"");
        
$mensaje str_replace($nopermitidos""$mensaje);
        return 
$mensaje;
    }    
    if(
trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["pass"]) != "")
    {
        
$usuario strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));   
        
$password $HTTP_POST_VARS["pass"];
     
 
        
$result mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
        if(
$row mysql_fetch_array($result)){
        if(
$row["pass"] == $password){
 
            
$_SESSION["k_username"] = $row['usuario'];
           
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="presus.php">Index</a></p>';
        }else{
            echo 
'Password incorrecto';
        }
    }else{
        echo 
'Usuario no existente en la base de datos';
    }
    
mysql_free_result($result);
}else{
    echo 
'Debe especificar un usuario y password';
}
mysql_close();
}
 
else
    
session_start();
    
mysql_connect('mysql4.000webhost.com','a7487191_mireia','******')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
    
mysql_select_db('a7487191_presus')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
    if (isset(
$_POST["usuario"])) {
        
$usuario $_POST["usuario"];
        
$password $_POST["pass"];
        
$password2 $_POST["pw"];
        
$email $_POST["email"];
        
// Hay campos en blanco
        
if($usuario==NULL|$password==NULL|$password2==NULL|$email==NULL) {
            echo 
"un campo est&aacute; vacio.";
        
        }else{
            
// ¿Coinciden las contrase&ntilde;as?
        
if($password!=$password2) {
            echo 
"Las contrase&ntilde;as no coinciden";
        }else{
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
            
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'");
            
$username_exist mysql_num_rows($checkuser);
           
            
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
   
            if (
$email_exist>0|$username_exist>0) {
                echo 
"El nombre de usuario o la cuenta de correo estan ya en uso";
                
formRegistro();
            }else{
                
$query 'INSERT INTO usuarios (usuario, password, email, fecha)
                VALUES (\''
.$usuario.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
               
                
mysql_query($query) or die(mysql_error());
                echo 
'El usuario '.$usuario.' ha sido registrado de manera satisfactoria.<br />';
                echo 
'Ahora puede entrar ingresando su usuario y su password <br />';
                

            }
        }
    }
}
?>
                <pre style="font-family:Arial, Helvetica, sans-serif;font-size:14px;color:#000; margin-left:40px;">Rellene los siguientes campos si quiere recibir el presupuesto acorde con sus especificaciones.</pre>
              
                <form action="presus.php" method="post" name="presupuestoslogin" id="presupuestoslogin" >
                 <? 
            
foreach( $_POST as $key => $value ) { 
                echo 
"<input type='hidden' name='".$key."' value='".$value."'>"
            }
        
?>
          
                <table cellpadding="1px" cellspacing="2px">
                <tr>
                    <td colspan="2"><label><input name="registrado" type="radio" id="registradosi"  value="Soy un usuario registrado" checked="checked" onclick="document.presupuestoslogin.pw.disabled=!document.presupuestoslogin.pw.disabled;document.presupuestoslogin.nombre.disabled=!document.presupuestoslogin.nombre.disabled;document.presupuestoslogin.tlf.disabled=!document.presupuestoslogin.tlf.disabled;document.presupuestoslogin.mail.disabled=!document.presupuestoslogin.mail.disabled;document.presupuestoslogin.empresa.disabled=!document.presupuestoslogin.empresa.disabled;document.presupuestoslogin.direccion.disabled=!document.presupuestoslogin.direccion.disabled"/><font color="#000000" size="2" face="Arial, Helvetica, sans-serif">Soy un usuario registrado</font></label><br/><label><input onclick="document.presupuestoslogin.pw.disabled=!document.presupuestoslogin.pw.disabled;document.presupuestoslogin.nombre.disabled=!document.presupuestoslogin.nombre.disabled;document.presupuestoslogin.tlf.disabled=!document.presupuestoslogin.tlf.disabled;document.presupuestoslogin.mail.disabled=!document.presupuestoslogin.mail.disabled;document.presupuestoslogin.empresa.disabled=!document.presupuestoslogin.empresa.disabled;document.presupuestoslogin.direccion.disabled=!document.presupuestoslogin.direccion.disabled" name="registrado" type="radio" id="registradono" value="No soy un usuario registrado"/><font color="#000000" size="2" face="Arial, Helvetica, sans-serif" >No soy un usuario registrado</font></label></td>
                
                  
                 <tr>
                      <td width="350px"><label for="usuario"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Usuario*:</strong></font></label></td>
                      <td ><input type="text" id="usuario" name="usuario" value="" size="40" /></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="pass"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Contraseña*:</strong></font></label></td>
                      <td ><input type="password" id="pass" name="pass" value="" size="40" /></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="pw"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Repetir contraseña*:</strong></font></label></td>
                      <td ><input type="password" id="pw" name="pw" value="" size="40" disabled/></td>
                 </tr>
                 <tr>
                      <td align="left" width="350px"><label for="nombre"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Persona de contacto*:</strong></font></label></td>
                      <td ><input type="text" id="nombre" name="nombre" value="" size="60" disabled/></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="tlf"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Teléfono*:</strong></font></label></td>
                      <td ><input type="text" id="tlf" name="tlf" value="" size="15" disabled /></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="mail"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>E-mail*:</strong></font></label></td>
                      <td ><input type="text" id="mail" name="mail" value="" size="30" disabled /></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="empresa"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Empresa:</strong></font></label></td>
                      <td ><input type="text" id="empresa" name="empresa" value="" size="15" disabled /></td>
                 </tr>
                 <tr>
                     <td width="350px"><label for="direccion"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Dirección:</strong></font></label></td>
                     <td ><input type="text" id="direccion" name="direccion" value="" size="60" disabled /></td>
                 </tr>
                 <tr>
                      <td colspan="2"><font size="1" face="Arial, Helvetica, sans-serif" color="#000000">*Campos obligatorios.</font></td>
                  </tr>
                  <tr>
                 <tr>
                     <td colspan="2">&nbsp;</td>
                 </tr>
                 <tr>
                     <td></td>
                      <td align="left"><input type="submit" name="enviar" id="enviar" value="Enviar" /><input type="reset" name="borrar" id="borrar" value="Restablecer" /></td>
                  </tr>
                  </table>
              </form>
           </div>
        [..]
Muchísimas gracias!!Agradeceré muchísimo cualquier ayuda!!
Feliz día!
  #2 (permalink)  
Antiguo 26/03/2012, 04:32
 
Fecha de Ingreso: agosto-2007
Mensajes: 46
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Login en php

"if (document.presupuestoslogin.pw.disabled){ ".....................

¿Estás mezclando javascript con PHP?
  #3 (permalink)  
Antiguo 26/03/2012, 05:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Login en php

Con los errores, pf, tienes varios, para comenzar no puedes acceder a objetos del DOM desde PHP, recuerda que este corre del lado del servidor! no del cliente!, usas $HTTP_POST_VARS que es OBSOLETO, cambialo a $_POST (que curiosamente mas abajo usas!), session_start() SIEMPRE, SIEMPRE va al comienzo del TODO el código, tu lo tienes entre echos y código HTML, no sanitizas las variables que bienen del formulario!...

Pff, por lo que veo es que haces copy/paste sin analizar lo que estas haciendo (en el mejor de los casos!) revisa todo el código!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 26/03/2012, 05:56
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Login en php

Siguiendo con la respuesta de Nemutagk,
Puede que no sepas de PHP, que recien te pongas a programar, y te llame la atencion.
Si vas a juntar codigos de todas las paginas de la web, lo mas logico es que sepas para que funciona cada funcion y como se utiliza, para es tan simple como por ejemplo poner:

www.google.com.ar -> PHP $_POST
ó mejor aun:
www.php.net -> $_POST
__________________
Mono programando!
twitter.com/eguimariano
  #5 (permalink)  
Antiguo 26/03/2012, 08:00
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Login en php

Ok, empezaré de 0 paso a paso porque veo que no se trata de un error ni dos.
La verdad es q como estoy empezando no tengo mucha idea y no se muy bien ni los copy/paste que he hecho como decis..
Gracias de todos modos y ya intentaré preguntar cosas más concretas cuando vaya creando el nuevo código.

Gracias!

Etiquetas: formulario, html, login, mysql, registro, sql, usuarios
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 19:38.