Foros del Web » Programando para Internet » PHP »

porque no funciona esta instruccion

Estas en el tema de porque no funciona esta instruccion en el foro de PHP en Foros del Web. amigos porqque no funciona esta instruccion $servidor = 'localhost'; $bd = 'base'; $usuario =$_POST['usuario']; $contrasenia = $_POST['contrasenia']; $db = new PDO('pgsql:host=' . $servidor . ';dbname=' ...
  #1 (permalink)  
Antiguo 25/10/2012, 18:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
porque no funciona esta instruccion

amigos porqque no funciona esta instruccion

$servidor = 'localhost';
$bd = 'base';
$usuario =$_POST['usuario'];
$contrasenia = $_POST['contrasenia'];

$db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);

si lo utilizo sin $_POST funciona bien

$servidor = 'localhost';
$bd = 'base';
$usuario = 'montes28';
$contrasenia = 'miclave';
  #2 (permalink)  
Antiguo 25/10/2012, 19:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: porque no funciona esta instruccion

Fijate con que metodo estas enviando los datos desde el formulario donde ingresas el usuario y contraseña. Seguramente lo estas enviando con GET, por lo tanto los datos los tenes que recoger con GET.

Proba con:

$_GET["usuario"];
$_GET["contrasenia"];

Última edición por grassofabian; 25/10/2012 a las 19:07
  #3 (permalink)  
Antiguo 25/10/2012, 20:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: porque no funciona esta instruccion

grassofabian gracias por responder

lo estoy enviando por post este es mi formulario

<form action="" method="post" name="frm_login">
<input name="usuario" type="text" class="login-inp" id="usuario"/>
input name="clave" type="password" id="clave"/>
<input name="Submit" type="submit" class="btn btn-primary btn-large" value="Iniciar Sesión" />
</forma>
  #4 (permalink)  
Antiguo 25/10/2012, 20:28
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: porque no funciona esta instruccion

¬¬ te das cuenta que tienes un input llamado "clave" en ves de "contrasenia", sin decir también que te falta el caracter "menor que" en dicho input...
__________________
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 =)
  #5 (permalink)  
Antiguo 25/10/2012, 20:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: porque no funciona esta instruccion

Nemutagk gracias por responder el "menor que si lo tengo" el error fue en pegandolo aca y tienes razon con lo del input llamado clave ya lo corregui pero nada que funciona
  #6 (permalink)  
Antiguo 25/10/2012, 20:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: porque no funciona esta instruccion

me sale esta error

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] fe_sendauth: no password supplied' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\models\logi n_Model.php:11 Stack trace: #0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\models\logi n_Model.php(11): PDO->__construct('pgsql:host=loca...', NULL, NULL) #1 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\controllers \login_Controller.php(23): require('C:\Program File...') #2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\index.php(3 3): mensers() #3 {main} thrown in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\models\logi n_Model.php on line 11

y la linea 11 es esta
$db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  #7 (permalink)  
Antiguo 25/10/2012, 20:57
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: porque no funciona esta instruccion

En primera así no se hace una conexión con PDO, la forma correcta es...

Código PHP:
Ver original
  1. try {
  2.      $db = new PDO('pgsql:host=localhost;dbname=mitabla','usuario','contrasenia');
  3. }catch(PDOException $e) {
  4.      echo $e->getMessage();
  5. }
__________________
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 =)
  #8 (permalink)  
Antiguo 25/10/2012, 21:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: porque no funciona esta instruccion

Nemutagk gracias por responder tus aportes son valiosisimos pero tengo estos errores

SQLSTATE[08006] [7] FATAL: la autentificaci�n password fall� para el usuario �usuario�

Fatal error: Call to a member function prepare() on a non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\models\logi n_Model.php on line 25

y esta es la linea
$consulta->execute();



Código PHP:
Ver original
  1. $usuario= $_POST['usuario'];
  2. $contrasenia = $_POST['clave'];
  3.        
  4. try {
  5.      $db = new PDO('pgsql:host=localhost;dbname=correo','usuario','contrasenia');
  6.      }catch(PDOException $e) {
  7.      echo $e->getMessage();
  8.      }
  9.  
  10.  
  11.     class Login
  12.     {
  13.         /*-------  Validar Usuarios -----------------------------------------*/
  14.         public function validate_users($db)
  15.         {
  16.        
  17.             $usuario = $_POST['usuario'];
  18.             $clave = $_POST['clave'];
  19.        
  20.             $consulta = $db->prepare("select usu_usuario, usu_clave from usuarios where usu_usuario='$usuario' and usu_clave='$clave' and usu_estado = 1");
  21.             $consulta->execute();
  22.            
  23.             $count = $consulta->rowCount();

Etiquetas: instruccion, 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 18:42.