Comunidad de diseño web y desarrollo en internet online

Unknown column 'xxxx' in 'where clause'

Citar            
MensajeEscrito el 13 Oct 2009 01:54 pm
Hola, he decidido intentar aprender algo de php y mysql, y de momento me he puesto estos objetivos a aprender:
*Crear base de datos
*Login usuarios:
opcion a)permitinedo acceso a registrados o no a segun que zonas
opcion b) cada usuario al logear va a una pagina diferente
*Una pantalla admin desde la que agregar nuevos usuarios



PROBLEMAS.
1ºAl crear la bd y despues intentar conctar con ella no podia, la soucion fue cambiar virtual por include, por si a alguien le sirve de algo, aunque ahora conecta bien lo comento por si tiene algo que ver en el siguiente problema.

2ºResulta que al meter el usuario y pass, me da el siguiente mensaje "Unknown column 'xxx' in 'where clause'", donde xxx sería el usuario introducido.Si, en la ventana de conectar usuario pongo los campos de usuario que coja la columna de pass y en pass tambien pass me funciona, pero claro, no hace falta meter usuario para nada.

3ºsi le doy a al boton enviar sin meter nada en los campos me dice esto(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND pass=NULL' at line 1)

4ºEn el php myadmin de mi hosting, no encuentro como dar permisos a segun que grupos, de hecho veo que tiene muchas menos opciones que el php my admin de servidor local.

Estoy intentando aprender a base de tutoriales sueltos que hay por la web, tal vez sea en problema ya que cada una configura algunas cosas de una manera e igual es por eso algunos fallos.Si alguien sabe como se puede ir aprendiendo esto poco a poco y de forma continua y no salteda ,muy agradecido.

Por pepito piscinas

106 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Oct 2009 02:49 pm
En el problema 2 lo mas probable es que tal vez hay un campo del formulario que no llega al servidor y en el query SQL estas comparando con un campo en blanco.

Postea los campos que estas enviando desde del el formulario y el query SQL que estas haciendo para recuperar los datos del usuario.

En el problema 3 el problema que tienes es que estas comparando de nuevo el query SQL con datos en balnco(NULL), para evitar esto debes validar que los campos que enviaste del formulario tienen algún valor y son válidos. Esto lo puedes hacer con Javascript del lado del cliente y del lado del servidor con PHP

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

opera
Citar            
MensajeEscrito el 13 Oct 2009 04:26 pm
1) lo primero que tienes que hacer es una tabla para usuarios y otra para tipos de usuarios ej: usuario pepito tipo administrador, luego debes hacer un formulario para ingresar los usuarios otro para validar y uno para ingresar al sistema y por supuesto el de la conexion a la bd :shock: No te preocupes vamos por pasos.


En mysql crea una base de datos con este nombre misusurios luego crea estas dos tablas:

Código :

CREATE TABLE `usuarios` (
  `nomusu` varchar(12) NOT NULL default '',
  `usupas` varchar(40) NOT NULL default '',
  `nom` varchar(50) default NULL,
  `tpusu` varchar(15) default NULL,
  PRIMARY KEY  (`usupas`),
  UNIQUE KEY `key1` (`usupas`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



Luego la tabla tipo_usuario donde estan los tipos de usurios:



CREATE TABLE `tipo_usuario` (
`tpusu` varchar(14) NOT NULL default '',
PRIMARY KEY (`tpusu`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



INSERT INTO `tipo_usuario` (`tpusu`) VALUES
('administrador'),
('funcionario'),
('usuario');


Bueno eso en mysql ahora haremos los formularios para ingreso de usuarios validar usuarios y script de validacion:

2) Primero la conexion

el archivo se llama (conex.php)

<?php
$dbname = "misusuarios";
$local = mysql_connect( "localhost", "root","sisiworld"); //se conecta
if( ! mysql_select_db( $dbname, $local ) ) // abre la B.D
echo "Error al conectar con la Base de Datos: $dbname";
?>

3) luego formulario de ingreso para registrar los usuarios (usuarios.php):

Código HTML :

<html>
<title> MODULO DE USUARIOS - <?php echo"$tpusu"; ?>: <?php echo" $nom";?></title>
<body bgcolor="#FFFFFF">
<head>
<h1>
</p>
<center><hr><font face='Arial'> MODULO DE USUARIOS <hr></h1></font>

<form name=f method=POST action="<?php echo $PHP_SELF; ?>" autocomplete=off>
<table border=0>
<tr> <td><font face='Arial'><font color="#000000"> Usuario: <td>  <input type=text name=nomusu value="<?php echo $nomusu ?>" size=12  maxlength=12>
<tr> <td><font face='Arial'><font color="#000000"> Contraseña: <td> <input type=password name=usupas value="<?php echo $usupas ?>" size=40  maxlength=40>
<tr> <td><font face='Arial'><font color="#000000"> Nombre Usuario: <td><input type=text name=nom value="<?php echo $nom  ?>" size=50  maxlength=50>
<tr> <td><font face='Arial'><font color="#000000"> Tipo de Usuario: <td>


<?php

 
require("conex.php");

  $sql1 = "select * from tipo_usuario ";
  $cursor1 = mysql_query( $sql1, $local );
  echo "<select name = tpusu >";
  echo "<option value=Usuarios>Seleccione el Tipo Usuario...";

  while($row1 = mysql_fetch_array( $cursor1 ) ){
    $code = $row1['tpusu'];
     
     if($code ==   $ciu_nom2 )
      echo "<option value=$code selected >  $code ";
    else
      echo "<option value=$code          >  $code ";
  }
  echo "</select>";


?>


</table>
<p>
  <input type= submit name=insertar  value=Inserta  >
  
 
  
 
  <input type= submit name=limpia   value=Limpiar   >
  &nbsp

  

  
</p>

</form>
</html>







<?php




// *********** Insertar Registros *****************
include("conex.php");
$insertar=$_POST['insertar'];
 if( $insertar ){
   $sql = "select * from usuarios where nomusu = '$nomusu' ";
   $cursor = mysql_query( $sql, $local);  
   if( mysql_fetch_array( $cursor ) ){
     echo "El Usuario $nomusu YA existe...";
   }
   else{
      $usupas=crypt($usupas,CRYPT_BLOWFISH);/* ENCRIPTA LA CONTRASEÑA MD5*/
     $sql = "insert into usuarios values ( '$nomusu','$usupas', '$nom','$tpusu' ) ";
     if( mysql_query( $sql, $local) )
       echo "Insercion O.K..";  
     else
       echo "Insercion Fallo...";  
   }
 }



if($salir){
    

 echo "<script>document.location.href='administrador.php';</script>\n";


  }


?>


4) el formulario donde ingresaremos el usurio y el tipo de usurio (index1.php o lo puedes colocar con extension html)


<html>

<head>

<title>Ingreso al Sistema</title>



<script>

function foco(){
document.principal.nomusu.focus();
return;





}
</script> 

<div style="position: absolute; width: 653px; height: 100px; z-index: 1; left: 198px; top: 148px" id="capa1">
   <p align="center"><font face="Arial">Bienvenidos a Modulo de Pepito piscinas</font></p>

   <p align="center"><b><font face="Arial">INGRESO AL SISTEMA</font></b></div>
<center>

<body onload="foco();"> 
</head>




<form name=principal method=post action=validar.php autocomplete=off> <!-- LLAMAMOS AL SCRIPT validar.php PARA AUTENTIFICAR USUARIOS -->
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<table border=0 id="table1">



<tr> <td> <font face="Arial">Nombre Usuario:<b> </font> <td> &nbsp;&nbsp; 
   <input type=text name=nomusu   >
<tr> <td> <font face="Arial">Contraseña:</font><td> &nbsp;&nbsp; 
   
<input type=password name=usupas >


<tr>
   <td> <font face="Arial">Tipo Usuario:</font><td> &nbsp;&nbsp; 
      
            <select name=tipo >
           <option value='usuario'>Usuario
          <option value='funcionario'>Funcionario
         <option value='administrador'>Administrador





</tr>


</table> 
&nbsp;

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input type= submit name=ingresar  value=Ingresar style="border: 1px solid #000000"   >&nbsp;&nbsp; 
<input type=button name=salir  value=Salir  onclick="javascript:window.close();"style="border: 1px solid #000000"   ></p>
<p>&nbsp;&nbsp; </p>
</form>
</body>
</head>

</html>

5) crearemos el script que valida que se llama (validar.php) y es el que llamamos en este formulario en el metodo action del formulario.

<?php
session_start();

 
session_register("nomusu");
         session_register("nom");
         session_register("tpusu");





    if($ingresar){
  require("conex.php");
        
 
      $usupas=crypt($usupas,CRYPT_BLOWFISH);

  
    $sql="select *from usuarios where nomusu='$nomusu' and usupas='$usupas' and tpusu='$tipo'  ";
              
      $cursor=mysql_query($sql,$local);
          if($row=mysql_fetch_array($cursor)){
               $nom=$row["nom"];
                $tpusu=$row["tpusu"];
                    

                         
                         if(strlen( $tipo=='administrador'))
                         echo "<script>alert('Bienvenidos $tpusu $nomusu al sistema );</script><script>document.location.href='administrador.php';</script>\n";
                          
     
                      
                          
                else if(strlen($tipo=='usuario'))
                      echo "<script>alert('Bienvenidos $tpusu $nomusu al sistema ');</script><script>document.location.href='usuario.php';</script>\n";

                      if (strlen($tipo=='funcionario'))
                      echo "<script>alert('Bienvenidos $tpusu $nomusu al sistema ');</script><script>document.location.href='funcionario.php';</script>\n";

            
      exit();

                

           
       }
          
      else if(!$row=mysql_fetch_array($cursor)){
               echo "<script>alert('ERROR AL INGRESAR AL SISTEMA ');</script>";
               echo "<script>alert('Ha olvidado el Nombre de Usuario y Contraseña reservada de acceso a la aplicación!. Vuelva a escribir el Nombre de Usuario y Contraseña reservada. Asegúrese de que usa las letras mayúsculas o minúsculas correctamente.');</script>";
               echo "<script>document.location.href='index1.php';</script>\n";

               session_destroy();
}
    
  } 
     
?>


6) luego crearemos 3 paginas una para el administrador otra para el usuario y otra para el funcionario.



 pagina del administrador (administrador.php)


<?php
session_start();

       if(strlen($nomusu=="")){
          echo "<script>document.location.href='index1.php';</script>\n";
                
      exit();
 
     }
         else if($nomusu!=""){  
        
          


      session_register("nomusu");
         session_register("nom");
         session_register("tpusu");
     


}
  if($salida){
  session_destroy();
  echo"<script> alert('Sesión cerrada del $tpusu $nomusu...!');</script>";
echo "<script>document.location.href='index1.php';</script>\n";
}
?>







<html>

<head>
<meta http-equiv="Content-Language" content="es-co">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>ADMINISTRADOR:<?php echo" $nom";?></title>
</head>



<form name=f method=get action="">


&nbsp;<input type=submit name="salida" value="SALIR&gt;&gt;">&nbsp;&nbsp;&nbsp
</form>
</html>


 pagina del funcionario (funcionario.php)

<?php
session_start();

       if(strlen($nomusu=="")){
          echo "<script>document.location.href='index1.php';</script>\n";
                
      exit();
 
     }
         else if($nomusu!=""){  
        
          


      session_register("nomusu");
         session_register("nom");
         session_register("tpusu");
     


}
  if($salida){
  session_destroy();
  echo"<script> alert('Sesión cerrada del $tpusu $nomusu...!');</script>";
echo "<script>document.location.href='index1.php';</script>\n";
}
?>







<html>

<head>
<meta http-equiv="Content-Language" content="es-co">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>FUNCIONARIO:<?php echo" $nom";?></title>
</head>


<form name=f method=post action="">



&nbsp;<input type=submit name="salida" value="SALIR&gt;&gt;">&nbsp;&nbsp;&nbsp;</div>


</form>
</html>


y el del usuario te lo dejo de tarea :)


NOTA: Y si quieres iniciarte en este mundillo de php en esta pagina http://www.illasaron.com/html/ hay un curso en dvd del profesoraso Jesus Conde muy bueno,tienes que registrarte para bajarlo pero vale la pena.

Cualquier duda o inquietud no dudes en contactarme estamos para ayudarnos.

El servir nos hace grandes :cool:

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Oct 2009 01:15 pm
Gracias por la rapidez en responder, voy al lío y ya os cuento a ver que tal.

Por pepito piscinas

106 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Oct 2009 03:12 pm
Gracias de nuevo, pero te comento:
Debido a mi poca experiencia, aunque muy extensas tus explicaciones se me hacen un poco grandes, mas que nada por que estoy acostumbrado a que sean los programas los que me generen los codigos a la vez que voy diseñando y no al reves.
Entonces para simplificarme todo esto que pedi aprender, lo simplificare en esto.
Lo de entrada de usuarios lo tengo, si pass y user son ok pasas si no no.Debia ser algo de las PRIMARY KEY o NULL o not null en la base de datos, por que habia algunas cosas que no habia tocado.
Lo de administracion, he pensado en hacer una pagina que sea por ejemplo admin.php y que esta este vinculada a una tabla que solo contenga datos de admins.(tambien funciona).Me falta lo de ingresar usuarios que aun no he podido.
Lo que me gustaria saber por ver si se puede de forma sencilla es que por ejemplo en la tabla de mysql, ponel una columna que sea un direccion web,incluso externa al sitio, y que al poner usuario y contraseña vaya a esa direccion.Igual esto me lo explicaste pero no me ha quedado muy claro .

Por pepito piscinas

106 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Oct 2009 08:43 pm
1) Primero crea un base de datos.
2) luego crea una tabla como esta en mysql:


CREATE TABLE `user` (
`usuario` varchar(20) collate latin1_general_ci NOT NULL,
`clave` varchar(25) collate latin1_general_ci NOT NULL,
`dirpagina` varchar(50) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`usuario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

con estos datos:

INSERT INTO `user` (`usuario`, `clave`, `dirpagina`) VALUES
('mauro', 'mauro', 'http://www.google.com.co/'),
('pepito', 'pepito', 'http://m.www.yahoo.com/');

3) crea un script de conexion puede ser (conex.php):


<?php
$dbname = "NOMBRE_DE_LA_BASE_DE_DATOS";
$local = mysql_connect( "localhost", "root",""); //se conecta
if( ! mysql_select_db( $dbname, $local ) ) // abre la B.D
echo "Error al conectar con la Base de Datos: $dbname";
?>






4)luego vamos a crear una pagina que llamaremos admin.php (en block de notas) y pega este codigo:


<html>
<center>
<h1> Modulo de Ingreso para Pepito Piscinas </h1>

<form name=f method=POST action="">
<table border=1>
<tr> <td> Nombre Usuario <td> : <input type=text name=user value="<?php echo $user ?>" size=20 maxlength=20>
<tr> <td> Clave <td> : <input type=password name=pass value="" size=20 maxlength=20>
</table>
<input type= submit name=validar value=Ingresar > &nbsp

</form>
</html>
<?php

$validar=$_POST['validar'];

if($validar){
require("conex.php");/* script donde esta la conexion*/


$sql="select *from user where usuario='$user' and clave='$pass'";/*tabla donde tenemos alos usuarios registrados hacemos la consulta*/

$cursor=mysql_query($sql,$local);
if($row=mysql_fetch_array($cursor)){
$paginas=$row["dirpagina"];/*nos trae la direccion de la pagina que hemos introducido en mysql*/




echo "<script>document.location.href='$paginas';</script>\n";/*la variable $paginas es la direccion http:// que tenemos en nuestra tabla*/





}

else if(!$row=mysql_fetch_array($cursor)){/* Si el resultado de la consulta no concide arroja un error*/
echo "<script>alert('ERROR AL INGRESAR AL SISTEMA ');</script>";
echo "<script>alert('Ha olvidado el Nombre de Usuario y Contraseña reservada de acceso a la aplicación!. Vuelva a escribir el Nombre de Usuario y Contraseña reservada. Asegúrese de que usa las letras mayúsculas o minúsculas correctamente.');</script>";
echo "<script>document.location.href='admin.php';</script>\n";


}

}
?>



5) Debes hacer un formulario donde se registren los usuarios con su clave y pasworld (miusuario.php).
pega esto en block de notas:


<html>
<center>
<h1> Modulo de Creacion Usuarios </h1>

<form name=f method=POST action="">
<table border=1>
<tr> <td> Nombre Usuario <td> : <input type=text name=user value="<?php echo $user ?>" size=20 maxlength=20>
<tr> <td> Clave <td> : <input type=password name=pass value="" size=20 maxlength=20>
</table>
<input type= submit name=insertar value=Crear > &nbsp

</form>
</html>

<?php

$insertar=$_POST['insertar'];

if($insertar){
require("conex.php");/* script donde esta la conexion*/
$sql = "select * from user where usuario = '$user' ";
$cursor = mysql_query( $sql, $local );
if( mysql_fetch_array( $cursor ) ){
echo "Codigo $user YA existe...";
}
else{
$sql = "insert into user values ( '$user', '$pass','' ) ";
if( mysql_query( $sql, $local ) )
echo "Insercion O.K..";
else
echo "Insercion Fallo...";
}
}
?>


y listo.Cualquier cosa contactame estamos para servir


El servir nos hace grandes. :cool:

Por crmauricio

52 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.