PHP - AYUDA con Problema en Login con sesiones en php y SQLsrv

   
Vista:

AYUDA con Problema en Login con sesiones en php y SQLsrv

Publicado por Gaston goc@hypnus.com.mx (1 intervención) el 09/04/2015 20:39:16
Hola Comunidad!!!!

Tengo un pequeño conflicto en el proyecto en el que me encuentro trabajando actualmente.

Necesito hacer un login de usuario con sesiones y que cada usuario, segun sus privilegios, tenga acceso a un area diferente del sitio web.

El conflicto es que lo tengo que hacer compatible con SQLSRV ya que la empresa para la que trabajo no maneja MYSQL.

Ya logre que conecte con el servidor, sin embargo aun no logro hacer que conecte y verifique los datos de ingreso en la base de datos.

Me estoy basando en el manual de PHP y de la extension SQLSRV http://php.net/manual/en/book.sqlsrv.php

Este código esta escrito para conectarbases de datos MYSQL pero lo necesito transformar para que funciione con SQLSRV y Me sale este error:

Citar
( ! ) Warning: sqlsrv_query() expects at least 2 parameters, 1 given in C:\wamp\www\acceso\class\dbactions.php on line 10
Call Stack
# Time Memory Function Location
1 0.0011 144536 {main}( ) ..\session_init.php:0
2 0.0360 165856 Users->login_in( ) ..\session_init.php:21
3 0.0360 166208 Database->select( ) ..\users.php:22
4 0.0360 166264 sqlsrv_query ( ) ..\dbactions.php:10

y este otro:

Citar
( ! ) Warning: sqlsrv_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\acceso\class\users.php on line 24
Call Stack
# Time Memory Function Location
1 0.0011 144536 {main}( ) ..\session_init.php:0
2 0.0360 165856 Users->login_in( ) ..\session_init.php:21
3 0.0362 165464 sqlsrv_num_rows ( ) ..\users.php:24


Este es archivo donde llamo a las clases y donde inicio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
//llamado a la clase que hace la conexcion a la base de datos
require'class/config.php';
//LLamado a la clase Usuarios para realizar el inicio de sesion
require'class/users.php';
//llamado a la clase que ejecutará los queries de Consulta, Adición y Eliminación
require'class/dbactions.php';
//llamado a la clase encargada de las sesiones
require'class/sessions.php';
 
//creación o instanciamiento de un objeto de la Clase Connection
$objConn = new Connection();
//objeto de la clase users
$objUser = new Users();
 
//llamamos la funcion que nos conecta a la base de datos
$objConn->get_connected();
 
//function que realiza la verificación de usuarios e inicio de sesion
$objUser->login_in();
 
 
 
?>


Esta es mi clase de users, donde tengo uno o varios errores de compatibilidad

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
 
class Users{
 
	public $objDb;
	public $objSe;
	public $result;
	public $rows;
	public $useropc;
 
	public function __construct(){
 
		$this->objDb = new Database();
		$this->objSe = new Sessions();
 
	}
 
	public function login_in(){
 
		$query = "SELECT * FROM users,profiles WHERE users.loginUsers = '".$_POST["usern"]."'
			AND users.passUsers = '".$_POST["passwd"]."' AND users.idprofile = profiles.idProfile ";
		$this->result = $this->objDb->select($query);
 
		$this->rows = sqlsrv_num_rows($this->result);
		if($this->rows > 0){
 
			if($row=sqlsrv_fetch_array($this->result)){
 
				$this->objSe->init();
				$this->objSe->set('user', $row["loginUsers"]);
				$this->objSe->set('iduser', $row["idUsers"]);
				$this->objSe->set('idprofile', $row["idprofile"]);
 
				$this->useropc = $row["nameProfi"];
 
				switch($this->useropc){
 
					case 'Admin':
						header('Location: user/index.php');
						break;
 
					case 'Supervisor':
						header('Location: http://www.facebook.com');
						break;
 
					case 'Comex':
						header('Location: http://www.google.com');
						break;
 
				}
 
			}
 
		}else{
 
			echo "todo mal";
 
		}
 
	}
 
}
 
?>


Esta es mi class DBactions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
class Database{
 
	public $result;
 
	public function __construct(){ }
 
	public function select($query){
		return $this->result = sqlsrv_query($query);
 
 
	}
 
}
 
?>


Este es mi class sesions



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
class Sessions{
 
	public function __construct(){ }
 
	public function init(){
		@session_start();
	}
 
	public function set($varname, $value){
 
		$_SESSION[$varname] = $value;
 
	}
 
	public function destroy(){
 
		session_unset();
		session_destroy();
 
	}
 
}
 
?>




Este es mi archivo config, este si conecta y cumple su funcion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
class Connection{
 
	//variables para los datos de la base de datos
	public $server;
	public $userdb;
	public $passdb;
	public $dbname;
 
	public function __construct(){
 
		//Iniciar las variables con los datos de la base de datos
		$this->server = 'GOCHOA\SQLEXPRESS';
		$this->userdb = 'sa';
		$this->passdb = 'Argenm3x';
		$this->dbname = 'prueba';
 
 
	}
 
	public function get_connected(){
 
 
		$info = array('Database'=>$this->dbname, 'UID'=>$this->userdb, 'PWD'=>$this->passdb);
		$conexion = sqlsrv_connect($this->server, $info);
 
		if ($conexion) {
 
			echo "Conexion establecida. <br />";
		}else {
			echo "conexion invalida.<br />";
			die( print_r(sqlsrv_errors(), true));
		}
 
 
 
	}
 
}
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

AYUDA con Problema en Login con sesiones en php y SQLsrv

Publicado por xve (5523 intervenciones) el 10/04/2015 07:58:10
Hola Gaston, la instrucción sqlsrv_query() requiere dos parámetros, y le estas dando uno solo...

Requiere el link de la conexión y la consulta sql, y tu únicamente le estas dando la consulta sql.

Aqui te adjunto el ejemplo de la documentación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}
 
$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");
 
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

http://php.net/manual/es/function.sqlsrv-query.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar