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
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
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
Código
<?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
Código
<?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': break; case 'Supervisor': break; case 'Comex': break; } } }else{ echo "todo mal"; } } } ?>
Esta es mi class DBactions
Código
<?php class Database{ public $result; public function __construct(){ } public function select($query){ return $this->result = sqlsrv_query($query); } } ?>
Este es mi class sesions
Código
<?php class Sessions{ public function __construct(){ } public function init(){ } public function set($varname, $value){ $_SESSION[$varname] = $value; } public function destroy(){ } } ?>
Este es mi archivo config, este si conecta y cumple su funcion
Código
<?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(){ $conexion = sqlsrv_connect($this->server, $info); if ($conexion) { echo "Conexion establecida. <br />"; }else { echo "conexion invalida.<br />"; } } } ?>
AYUDA POR FAVOR mi mail es
Mod:
- Temas sobre PHP van al subforo de PHP.
- Usar las etiquetas GeSHi, no quote.
- Prohibido poner emails en los posts.
- Normas del suboforo de Desarrollo Web.