Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - gAb1

#501
PHP / Re: obtener id login de session
20 Septiembre 2014, 19:51 PM
Sabes que quiere decir:

CitarNotice: Array to string conversion in...

Asi es como lo tengo:
Código (php) [Seleccionar]
<?php

include_once 'includes/db_connect.php';
include_once 
'includes/functions.php';

sec_session_start();

$connectedUserID $_SESSION['userID']; 

$stmt $mysqli->prepare("SELECT rc_usuario.*, rc_referidos.*
FROM rc_referidos
INNER JOIN rc_usuario ON rc_usuario.idUsuario = rc_referidos.idReferido
WHERE rc_referidos.idRedComercio2 = '
$connectedUserID'");

$stmt->execute();
$stmt->store_result();

while (
$stmt->fetch()) {
$stmt['idUsuario'];
$stmt['nombre'];
$stmt['apellidos'];
$stmt['status'];


¿Ves algún fallo? ¿el while y la forma de declarar ids esta bien?

Gracias!
#502
PHP / obtener id login de session
20 Septiembre 2014, 18:50 PM
Hola, necesito obtener el user_id del login actual para usarlo en una pagina.

Esta es la función que utilizo para el login:

Código (php) [Seleccionar]
function login($email, $password, $mysqli) {
    // Using prepared statements means that SQL injection is not possible.
    if ($stmt = $mysqli->prepare("SELECT id, username, password, salt
        FROM members
       WHERE email = ?
        LIMIT 1")) {
        $stmt->bind_param('s', $email);  // Bind "$email" to parameter.
        $stmt->execute();    // Execute the prepared query.
        $stmt->store_result();

        // get variables from result.
        $stmt->bind_result($user_id, $username, $db_password, $salt);
        $stmt->fetch();

        // hash the password with the unique salt.
        $password = hash('sha512', $password . $salt);
        if ($stmt->num_rows == 1) {
            // If the user exists we check if the account is locked
            // from too many login attempts

            if (checkbrute($user_id, $mysqli) == true) {
                // Account is locked
                // Send an email to user saying their account is locked
                return false;
            } else {
                // Check if the password in the database matches
                // the password the user submitted.
                if ($db_password == $password) {
                    // Password is correct!
                    // Get the user-agent string of the user.
                    $user_browser = $_SERVER['HTTP_USER_AGENT'];
                    // XSS protection as we might print this value
                    $user_id = preg_replace("/[^0-9]+/", "", $user_id);
                    $_SESSION['user_id'] = $user_id;
                    // XSS protection as we might print this value
                    $username = preg_replace("/[^a-zA-Z0-9_\-]+/",
                                                                "",
                                                                $username);
                    $_SESSION['username'] = $username;
                    $_SESSION['login_string'] = hash('sha512',
                              $password . $user_browser);
                    // Login successful.
                    return true;
                } else {
                    // Password is not correct
                    // We record this attempt in the database
                    $now = time();
                    $mysqli->query("INSERT INTO login_attempts(user_id, time)
                                    VALUES ('$user_id', '$now')");
                    return false;
                }
            }
        } else {
            // No user exists.
            return false;
        }
    }
}


¿Como podria usar el id en otra pagina?

Gracias!
#503
PHP / Re: enviar una id de mysql al hacer click
20 Septiembre 2014, 00:14 AM
Gracias, asi ya funciona.
#504
PHP / Re: enviar una id de mysql al hacer click
20 Septiembre 2014, 00:05 AM
aparece esta url: http://localhost/\"amigo.php?id=9\"

algo esta mal

voy a usar &id en lugar de ?id porque estoy usando un cms
#505
PHP / Re: enviar una id de mysql al hacer click
19 Septiembre 2014, 23:52 PM
¿Como hago para poner $_GET['id']; en el archivo?

Código (php) [Seleccionar]
<?php

$_GET
['id'];

?>


asi??
#506
PHP / Re: enviar una id de mysql al hacer click
19 Septiembre 2014, 23:36 PM
hmmmm vale voy a probar, espero que sea asi de facil? :P
#507
PHP / enviar una id de mysql al hacer click
19 Septiembre 2014, 22:32 PM
Hola, tengo una lista con usuarios de una base de datos, pero me gustaría que al hacer click encima del nombre se guardara la id de ese usuario para usarla en otra pagina donde se muestra el perfil completo.

Esta es la lista:
Código (php) [Seleccionar]
$query = sprintf("SELECT rc_usuario.*, rc_referidos.*
FROM rc_referidos
INNER JOIN rc_usuario ON rc_usuario.idUsuario = rc_referidos.idReferido
WHERE rc_referidos.idRedComercio2 = '$connectedUserID'",
mysql_real_escape_string($idUsuario),
mysql_real_escape_string($idRedComercio),
mysql_real_escape_string($idReferido));

$data = mysql_query($query);

while ($op = mysql_fetch_assoc($data)) {
$op['id'];
$op['nombre'];
$op['apellidos'];
$op['status'];

echo'
<div class="menu">
<div class="secondmenu">
<ul>
<li><a>'.$op['id'].'</a></li>
<li><a href="index.php?r=usuario/amigo">'.$op['nombre'].'</a></li>
<li><a>'.$op['apellidos'].'</a></li>
<li><a>'.$op['status'].'</a></li>
</ul>&nbsp;
</div>
</div>
';
echo'&nbsp;';
}


Es algo complicado, ya que se muestran muchos usuarios y realmente esto ya es nuevo para mi.

Pero supongo que en el nuevo archivo se tendrá que guardar la id en una variable para usarla...

Gracias!
#508
PHP / Re: funcion para lista de usuarios
18 Septiembre 2014, 19:33 PM
Sii muchas gracias funciona perfecto.

He conseguido armar algo muy simple y al parecer funciona bien, lo unico que falla es la variable que comprueba el id del usuario conectado con el id que obtiene de la db...

Código (php) [Seleccionar]
<?php header('Content-Type: charset=utf-8');

$connectedUserID Yii::app()->user->getState('idUsuario'); // aqui se declara

$idUsuario '0';
$idReferido '1';

mysql_connect('localhost''root''123456');
mysql_select_db('website');
$query sprintf("SELECT rc_usuario.*, rc_referidos.*
FROM rc_referidos
INNER JOIN rc_usuario ON rc_usuario.idUsuario = rc_referidos.idReferido
WHERE rc_referidos.idUsuario = '
$connectedUserID'"// aqui se usa
mysql_real_escape_string($idUsuario),
mysql_real_escape_string($idReferido));

$data mysql_query($query);

while (
$fila mysql_fetch_assoc($data)) {
    echo 
$fila['nombre'];
    echo 
$fila['apellidos'];
    echo 
$fila['direccion'];
    echo 
$fila['web'];
}

?>


No da ningún error, pero tampoco muestra nada, y he comprobado la id con la que estoy conectado y en la db esta esa id... debería de mostrar el contenido, pero no muestra nada ;(

Si cambio la variable '$connectedUserID' por el numero directamente si que muestra...

Gracias!

EDITO: Vale era problema del nombre que se usaba... idUsuario que no existia en la clase yii
#509
PHP / Re: funcion para lista de usuarios
18 Septiembre 2014, 16:37 PM
¿Podría de alguna manera hacerse mas facil? Por ejemplo con:

Código (sql) [Seleccionar]
select * from rc_usuario where idUsuario = (select idAmigo from rc_amigo where idUsuario = $connectedUserID)

He probado esa consulta y al parecer da error si hay mas de 1 fila... si solo hay 1 resultado lo muestra...

Gracias!
#510
PHP / funcion para lista de usuarios
18 Septiembre 2014, 01:01 AM
Hola, estoy terminando una lista de usuarios, pero hay una parte en la que no me aclaro...

La funcion actual muestra una lista con los datos de un usuario.

La web es un CMS basado en Yii Framework. Aqui pongo el codigo:

UsuarioController.php
Código (php) [Seleccionar]
class UsuarioController extends Controller
{
public function actionAdmin()
{
if(Yii::app()->authManager->checkAccess('RUsuario', Yii::app()->user->getState("rol")))
{
$model=new Usuario('search_propios');
$model->unsetAttributes();
if(isset($_GET['Usuario'])) $model->attributes=$_GET['Usuario'];
$this->render('admin',array('model'=>$model,));
}
else
throw new CHttpException(401,'No tiene permisos de acceso al recurso URL.');
       }
}


Models -> Usuario.php
Código (php) [Seleccionar]
class Usuario extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}

public function tableName()
{
return 'rc_usuario';
}

public function search_propios()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$idUsuarioActual = Yii::app()->user->getState('idWeb');

$criteria=new CDbCriteria;

$criteria->compare('idUsuario',$this->idUsuario);
$criteria->compare('nombre',$this->nombre,true);
$criteria->compare('apellidos',$this->apellidos,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('web',$this->web,true);
$criteria->order='idWeb';

return new CActiveDataProvider($this, array('criteria'=>$criteria,));
}
}


Esa lista muestra todos los usuarios, pero necesito que muestre solo unos segun las ids de otra tabla.

La tabla rc_amigo tiene las columnas 'idAmigo' y 'idUsuario'. Necesito que la lista muestre los amigos del usuario conectado, sería algo asi como
Código (sql) [Seleccionar]
SELECT * FROM rc_amigo WHERE idUsuario=1
Y, por ejemplo, esto sería lo que devuelve la sentencia:
Citar
-----------------------
idAmigo|idUsuario
        2 |            1
        3 |            1
        4 |            1
-----------------------

Si, en este caso, el usuario que hay conectado es el 1, necesito que la lista muestre los usuarios 2, 3 y 4 de la tabla rc_usuario.

Código (sql) [Seleccionar]
SELECT * FROM rc_usuario WHERE idUsuario = (SELECT * FROM rc_amigo WHERE idUsuario=1)

Ese 1 tendría que cambiarlo por el 'idUsuario' del login actual...

Mas o menos puedo hacerme una idea de como hacerlo, pero realmente llevo un lio en la cabeza, llevo unas horas probando y no consigo nada... ;(

¿Conoceis alguna manera simple de hacerlo?

Gracias!