Foros del Web » Programando para Internet » PHP »

Que le pongo para que haga lo que quiero a este codigo en PHP

Estas en el tema de Que le pongo para que haga lo que quiero a este codigo en PHP en el foro de PHP en Foros del Web. Hola, no se si este bien la verdad, con esto pretendo hacer un login pero no se que poner en el if(estodeaqui), se supone estoy ...
  #1 (permalink)  
Antiguo 09/01/2013, 17:59
Avatar de RedMew  
Fecha de Ingreso: septiembre-2009
Ubicación: Rioverde SLP
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 0
Que le pongo para que haga lo que quiero a este codigo en PHP

Hola, no se si este bien la verdad, con esto pretendo hacer un login pero no se que poner en el if(estodeaqui), se supone estoy leyendo los datos de la BD para que compare los datos que envie, pero no se como hacer que si son iguales mande el primer mensaje y sino el segundo, o si asi como lo tengo esta bien, porfas creo solo necesito saber que poner de condicion en el if para que haga lo que quiero
<?php
Nombre=$_POST['nombre'];
pass=$_POST['pass'];
$conexion = mysql_connect("localhost","root","") or die("No se pudo ");
mysql_select_db("mibase") or die("No se puede seleccionar BD");
$res=mysql_query("select admin where nombre=$_POST['nombre'] AND pass = $_POST['pass'];'");
$arr=mysql_fetch_array($res);
session_start();
if($res==$res){
echo "Bienvenido, sino se redirecciona en unos segundos favor de dar <a href="operaciones1.html">click aqui</a>";
}
else{
echo "Debe iniciar sesion";
}
?>
  #2 (permalink)  
Antiguo 09/01/2013, 18:10
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

podrias modificarlo algo asi

Código PHP:
Ver original
  1. <?php
  2. Nombre=$_POST['nombre'];
  3. pass=$_POST['pass'];
  4. $conexion = mysql_connect("localhost","root","") or die("No se pudo ");
  5. mysql_select_db("mibase") or die("No se puede seleccionar BD");
  6. $res=mysql_query("select admin where nombre=$_POST['nombre'] AND pass = $_POST['pass'];'");
  7. $arr=mysql_num_rows($res);
  8. if($arr==1){
  9. echo "Bienvenido, sino se redirecciona en unos segundos favor de dar <a href="operaciones1.html">click aqui</a>";
  10. }
  11. else{
  12. echo "Debe iniciar sesion";
  13. }
  14. ?>
  15.  
  16.  
  17. Saludos
__________________
Mi proyecto web Desarrollo-Tech visitame http://www.desarrollo-tech.com
  #3 (permalink)  
Antiguo 09/01/2013, 18:11
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

Cita:
Iniciado por cesar_viridi Ver Mensaje
podrias modificarlo algo asi

Código PHP:
Ver original
  1. <?php
  2. $nombre=mysql_real_escape_string($_POST['nombre']);
  3. $pass=mysql_real_escape_string($_POST['pass']);
  4. $conexion = mysql_connect("localhost","root","") or die("No se pudo ");
  5. mysql_select_db("mibase") or die("No se puede seleccionar BD");
  6. $res=mysql_query("select admin where nombre=$nombre AND pass = $pass;'");
  7. $arr=mysql_num_rows($res);
  8. if($arr==1){
  9. echo "Bienvenido, sino se redirecciona en unos segundos favor de dar <a href="operaciones1.html">click aqui</a>";
  10. }
  11. else{
  12. echo "Debe iniciar sesion";
  13. }
  14. ?>
  15.  
  16.  
  17. Saludos
__________________
Mi proyecto web Desarrollo-Tech visitame http://www.desarrollo-tech.com
  #4 (permalink)  
Antiguo 09/01/2013, 18:14
Avatar de RedMew  
Fecha de Ingreso: septiembre-2009
Ubicación: Rioverde SLP
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

La linea 7 que hace? el $arr=mysql_num_rows($res);, veras no solo debo crearlo tambien explicarlo, por eso te hago la pregunta
  #5 (permalink)  
Antiguo 09/01/2013, 18:19
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

Tené cuidado, con ese metodo te pueden realizar un injeccion SQL facilmente..

Te conviene tener un solo archivo con la conexionde base de datos para que cuando tengas que subirlo a un hosting no tengas que hacerte mucho lio.

./include/dbconnect.php

Código PHP:
<?

$conexion 
mysql_connect('localhost','root','');
mysql_select_db('nombre de la base de datos'$conexion);

?>
./action/login.php

Código PHP:
<?php

//error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); esto ponelo cuando este todo listo asi no saltan errores.

session_start();

include(
'../include/dbconnect.php');

$usuario $_POST['nombre'];
$password $_POST['pass'];

$error = array();
$success = array();

if (empty(
$usuario) OR empty($password)){
    
$error[] = "Los campos están vacíos. ";
}

if(!
ereg("^[A-Za-z0-9]{3,}$"$usuario)){ 
    
$error[] = "El usuario contiene caracteres invalidos. ";
}

if(!
ereg("^[A-Za-z0-9]{3,}$"$password)){ 
    
$error[] = "La contraseña contiene caracteres invalidos. ";
}

if(empty(
$error)){
    
$query "SELECT * FROM usuario WHERE nombre_usuario = '$usuario' LIMIT 1";
    
$resultado mysql_query($query$conexion) or die(mysql_error());
    
$totalmysql_num_rows($resultado);

    if (
$total>0) {
        while (
$fila mysql_fetch_assoc($resultado)){
            
$sqlpwd $fila['contrasenna'];
            
$sqlid $fila['id_usuario'];
        }
    }

    if(
$password == $sqlpwd){        
        
$_SESSION['userId'] = $sqlid;
        
header("Location:../index.php");
    }else{
        
$error[] = "El usuario o la contraseña no son correctas";

        
$message '';

        foreach (
$error as $e
        {
          
$message .= "$e";
        }

        
$_SESSION['notification_login_error'] = $message;
        
header("Location: ../index.php");
    }
}else{

    
$message '';

    foreach (
$error as $e
    {
      
$message .= "<li>$e</li>";
    }

    
$_SESSION['notification_login_error'] = $message;
    
header("Location: ../index.php");
}
?>
Edit: Cesar que eso? nunca lo vi mysql_real_escape_string
  #6 (permalink)  
Antiguo 09/01/2013, 18:25
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

Cita:
Iniciado por RedMew Ver Mensaje
La linea 7 que hace? el $arr=mysql_num_rows($res);, veras no solo debo crearlo tambien explicarlo, por eso te hago la pregunta
Te explico un poco de conexion de base de datos para que puedas hacer tu logi

Imagina que tu base de datos tiene id_usuario (recomendable), nombre_usuario y contrasenna ademas de otros.

Código PHP:
$usuario $_POST['usuario'];
$contrasenna $_POST['contrasenna'];

$query "SELECT id_usuario FROM usuario WHERE nombre_usuario = '$usuario' and contrasenna = '$contrasenna' LIMIT 1"// con esto le estas diciendo que seleccione la id de usuario donde coincida contra y user, si no coincide te va a dar un resultado FALSE, es decir, 0.
$resultado mysql_query($query//El comando mysql_query se utiliza siempre que quieras hacer una consulta mysql.
$total mysql_num_rows($resultado// aca le estas diciendo que el resultado va a ser numerico, en este caso la id.

if($total>0){
echo 
"logeado";
}else{
echo 
"no logeado";

//en el if comprobas si existe id_usuario. 
  #7 (permalink)  
Antiguo 09/01/2013, 18:25
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

Cita:
Iniciado por RedMew Ver Mensaje
La linea 7 que hace? el $arr=mysql_num_rows($res);, veras no solo debo crearlo tambien explicarlo, por eso te hago la pregunta
Tan fácil como leer el manual PHP

Cita:
mysql_num_rows — Obtener el número de filas de un conjunto de resultados
http://php.net/manual/es/function.mysql-num-rows.php

Cita:
mysql_*: Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 09/01/2013, 18:26
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

No tendrias que hacer esto si no sabes conexiones mysql, te conviene empezar a leer tutoriales, y verlos en YouTube, te lo recomiendo!
  #9 (permalink)  
Antiguo 09/01/2013, 18:27
 
Fecha de Ingreso: enero-2013
Mensajes: 87
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Que le pongo para que haga lo que quiero a este codigo en PHP

YO UN LOGIN LO HAGO ASI:

<?php


//Proceso de conexión con la base de datos
$conex = mysql_connect("localhost", "root", "root")
or die("No se pudo realizar la conexion");
mysql_select_db("inventario_conectar",$conex)
or die("ERROR con la base de datos");

//Inicio de variables de sesión
if (!isset($_SESSION)) {
session_start();
}

//Recibir los datos ingresados en el formulario
$usuario= $_POST['usuario'];
$contrasena=$_POST['contrasena'];




//Consultar si los datos son están guardados en la base de datos
$consulta= "SELECT * FROM empleado WHERE usuario='".$usuario."' AND contrasena='".$contrasena."'";
$resultado= mysql_query($consulta,$conex) or die (mysql_error());

if($row=mysql_fetch_array($resultado)){
$cargo=$row['cargo'];
if ($cargo=="Administrador"){
$_SESSION['id_colaborador'] = $row['id_colaborador'];
$_SESSION['nombres_colaborador'] = $row['nombres_colaborador'];
$_SESSION['usuario'] = $row['usuario'];
header("location: ../frm/Menu_principal.php");
echo"Su cargo es ".$cargo;

}else{
if ($cargo=="Operador"){
$_SESSION['id_colaborador'] = $row['id_colaborador'];
$_SESSION['nombres_colaborador'] = $row['nombres_colaborador'];
$_SESSION['usuario'] = $row['usuario'];
header("location: ../frm/Menu_principal.php");

}else{
if ($cargo=="Usuario"){
$_SESSION['id_colaborador'] = $row['id_colaborador'];
$_SESSION['nombres_colaborador'] = $row['nombres_colaborador'];
$_SESSION['usuario'] = $row['usuario'];
header("location: ../frm/Menu_principal.php");

}

}
}
}else{

echo '<script language = javascript>
alert("Usuario o contrasena incorrectos")
window.history.back()
</script>';
}


?>

Etiquetas: html, mysql, pongo, quiero
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:11.