Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: WIитX en 31 Agosto 2016, 23:15 PM

Título: Mostrar contenido o ocultarlo
Publicado por: WIитX en 31 Agosto 2016, 23:15 PM
Como puedo mostrar contenido si el usuario tiene la id 1 o ocultarlo si el usuario tiene la id 0

Código (php) [Seleccionar]
<!-- PUBLICACIONES !-->
<div class="post-entry">
<?php the_content__'Read more &#38;#8250;''responsive' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="pagination">' __'Pages:''responsive' ), 'after' => '</div>' ) ); ?>
</div>
<!-- FINAL DE LAS PUBLICACIONES !-->


Necesito ocultar el siguiente contenido, tengo una conexión con la base de datos en la cual asigno una id si eres administrador eres 1 y si no eres 0, si eres 1 puedes ver el contenido publicado, si eres 0 no puedes verlo, alguien sabe puedo hacerlo :S


Está es la conexión con la base de datos

Código (php) [Seleccionar]
<!-- CONEXION !-->

<?php
function 
Conectarse()
{

$db_host="XXXXXXXX"// Host al que conectar, habitualmente es el 'localhost'

$db_nombre="XXXXXXXX"// Nombre de la Base de Datos que se desea utilizar

$db_user="XXXXXXXX"// Nombre del usuario con permisos para acceder

$db_pass="XXXXXXXX"// Contraseña de dicho usuario

// Ahora estamos realizando una conexión y la llamamos '$link'

$link=mysql_connect($db_host$db_user$db_pass) or die ("Error conectando a la base de datos.");

// Seleccionamos la base de datos que nos interesa

mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");

// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
mysql_query("SET NAMES 'utf8'");
return 
$link;

}
$link Conectarse();
session_start();
if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
$SU $_SESSION['usuario'];
$SP $_SESSION['password'];

$GetUser mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow mysql_fetch_assoc($GetUser);
define("User"true);
}
} else {
define("User"false);
}

if ($myrow['admin'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}

if (User == false) {
header('Location: /');
}
?>
Título: Re: Mostrar contenido o ocultarlo
Publicado por: Shell Root en 31 Agosto 2016, 23:25 PM
Pues si sabes usar condicionales, haz uno.  :P

Código (php) [Seleccionar]
if($var == 1){ echo "mostrar"; }else{ echo "No Mostrar"; }
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 14:49 PM
Código (php) [Seleccionar]
<?php
if($puedeVerlo){
?>


<div>Contenido</div>

<?php
}
?>


¿Por ejemplo?
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 15:07 PM
Cita de: ivancea96 en  1 Septiembre 2016, 14:49 PM
Código (php) [Seleccionar]
<?php
if($puedeVerlo){
?>


<div>Contenido</div>

<?php
}
?>


¿Por ejemplo?

Pero donde le pongo si es id 1 o id 0 Y.Y estoy perdido
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 15:42 PM
Código (php) [Seleccionar]
<?php
if($id == 1){
?>


<div>Zona de administrador</div>
     
<?php
}
?>


En fin, es un if sin más. Si está autorizado a ver el contenido, lo muestras. Si no, no se lo muestras.
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 15:56 PM
Así lo tengo pero nada  :-(

Código (php) [Seleccionar]
<?php
if($myrow['permisos'] == 1) {
?>

<!-- PUBLICACIONES !-->
<div class="post-entry">
<?php the_content__'Read more &#38;#8250;''responsive' ) );
?>

<?php wp_link_pages( array( 'before' => '<div class="pagination">' __'Pages:''responsive' ), 'after' => '</div>' ) ); ?>
</div>
<?php
 }
 ?>

<!-- FINAL DE LAS PUBLICACIONES !-->


Muchas gracias por ayudarme
Título: Re: Mostrar contenido o ocultarlo
Publicado por: .rn3w. en 1 Septiembre 2016, 16:21 PM
supongo que $myrow['permisos'] esta devolviendo una cadena y no asi un numero

asegurate que son del mismo tipo en tu comparacion :silbar:
Título: Re: Mostrar contenido o ocultarlo
Publicado por: Shell Root en 1 Septiembre 2016, 16:24 PM
Tira el resultado de var_dump($myrow['permisos']);
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 16:29 PM
Cita de: Shell Root en  1 Septiembre 2016, 16:24 PM
Tira el resultado de var_dump($myrow['permisos']);

Nada..

La tabla es users y dentro de users está permisos que es 1 o 0   >:(
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 16:34 PM
Prueba a hacer un print_r( $myrow );
A ver qué tiene (y por qué 'permisos' no es nada)
Título: Re: Mostrar contenido o ocultarlo
Publicado por: .rn3w. en 1 Septiembre 2016, 16:38 PM
 :-X :-X :-X al menos ya sabes que $myrow['permisos'] es el problema y no asi la condicional

Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 17:25 PM
No logro hacerlo como debo poner el print?
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 17:32 PM
En cualquier lugar para que se vea.
Pon por ejemplo:
Código (php) [Seleccionar]
<div> <?php print_r( ... ); ?> </div>
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 17:47 PM
Cita de: ivancea96 en  1 Septiembre 2016, 16:34 PM
Prueba a hacer un print_r( $myrow );
A ver qué tiene (y por qué 'permisos' no es nada)

No me aparece nada al ponerlo T.T

Código (php) [Seleccionar]
<div> <?php print_r($myrow); ?> </div>
<?php
if($myrow['permisos'] == 1) {
?>

<!-- PUBLICACIONES !-->
<div class="post-entry">
<?php the_content__'Read more &#38;#8250;''responsive' ) );
?>

<?php wp_link_pages( array( 'before' => '<div class="pagination">' __'Pages:''responsive' ), 'after' => '</div>' ) ); ?>
</div>
<?php
 }
 ?>

<!-- FINAL DE LAS PUBLICACIONES !-->


Abajo de el todo tengo esto:

Y me aparece que Si que tengo permisos pero no me muestra el contenido

Código (php) [Seleccionar]
$GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow = mysql_fetch_assoc($GetUser);
define("User", true);
}
} else {
define("User", false);
}

if ($myrow['permisos'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}

if (User == false) {
header('Location: /');
}
?>
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 18:02 PM
Cita de: WIитX en  1 Septiembre 2016, 17:47 PM
Abajo de el todo tengo esto:

Y me aparece que Si que tengo permisos pero no me muestra el contenido

Código (php) [Seleccionar]
$GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow = mysql_fetch_assoc($GetUser);
define("User", true);
}
} else {
define("User", false);
}

if ($myrow['permisos'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}

if (User == false) {
header('Location: /');
}
?>


¿Tienes la declaración de la variable $myrow abajo del todo?
Si es así, nono. Eso debería ir arriba. No vas a poder utilizar esa variable hasta que llegue a esa parte del código.
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 18:34 PM
sí lo tengo abajo mira copio y pego todo el código

Código (php) [Seleccionar]
<?php
/*
Template Name: Plantilla de contrato programa 2
*/
?>


<?php

// Exit if accessed directly
if ( !defined'ABSPATH' ) ) {
exit;
}

/**
 * Full Content Template
 *
 *
 * @file           full-width-page.php
 * @package        Responsive
 * @author         Emil Uzelac
 * @copyright      2003 - 2014 CyberChimps
 * @license        license.txt
 * @version        Release: 1.0
 * @filesource     wp-content/themes/responsive/full-width-page.php
 * @link           http://codex.wordpress.org/Theme_Development#Pages_.28page.php.29
 * @since          available since Release 1.0
 */

get_header(); ?>


<div id="content-full" class="grid col-940">

<?php if ( have_posts() ) : ?>

<?php while( have_posts() ) : the_post(); ?>



<?php responsive_entry_before(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php responsive_entry_top(); ?>

<?php get_template_part'post-meta'get_post_type() ); ?>

<div> <?php print_r($myrow); ?> </div>
<?php
if($myrow['permisos'] == 1) {
?>

<!-- PUBLICACIONES !-->
<div class="post-entry">
<?php the_content__'Read more &#38;#8250;''responsive' ) );
?>

<?php wp_link_pages( array( 'before' => '<div class="pagination">' __'Pages:''responsive' ), 'after' => '</div>' ) ); ?>
</div>
<?php
 }
 ?>

<!-- FINAL DE LAS PUBLICACIONES !-->

<!-- end of .post-entry -->

<?php get_template_part'post-data'get_post_type() ); ?>

<?php responsive_entry_bottom(); ?>
</div><!-- end of #post-<?php the_ID(); ?> -->
<?php responsive_entry_after(); ?>



<?php
endwhile;

get_template_part'loop-nav'get_post_type() );

else :

get_template_part'loop-no-posts'get_post_type() );

endif;
?>


</div><!-- end of #content-full -->


<!-- CONEXION PHP !-->

<?php
function 
Conectarse()
{

$db_host="XXXXXX"// Host al que conectar, habitualmente es el 'localhost'

$db_nombre="XXXXXX"// Nombre de la Base de Datos que se desea utilizar

$db_user="XXXXXX"// Nombre del usuario con permisos para acceder

$db_pass="XXXXXX"// Contraseña de dicho usuario

// Ahora estamos realizando una conexión y la llamamos '$link'

$link=mysql_connect($db_host$db_user$db_pass) or die ("Error conectando a la base de datos.");

// Seleccionamos la base de datos que nos interesa

mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");

// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
mysql_query("SET NAMES 'utf8'");
return 
$link;

}
$link Conectarse();
session_start();
if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
$SU $_SESSION['usuario'];
$SP $_SESSION['password'];

$GetUser mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow mysql_fetch_assoc($GetUser);
define("User"true);
}
} else {
define("User"false);
}

if ($myrow['permisos'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}

if (User == false) {
header('Location: /');
}
?>

<?php get_footer(); ?>
Título: Re: Mostrar contenido o ocultarlo
Publicado por: .rn3w. en 1 Septiembre 2016, 18:58 PM
creo que deberia ser asi:

Código (php) [Seleccionar]


session_start();
if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
$SU = $_SESSION['usuario'];
$SP = $_SESSION['password'];

$GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow = mysql_fetch_assoc($GetUser);
if ($myrow['permisos'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}
define("User", true);
}
} else {
define("User", false);
}



if (User == false) {
header('Location: /');
}
?>



Citarif(mysql_num_rows($GetUser) > 0) {
es una condicional y por eso tu variable  $myrow no tiene ningun valor


saluds
Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 19:08 PM
No. No puede estar abajo. Tiene que etsar arriba. Si usas una variable antes de asignarle un valor, no obtendrás nada.
Primero, tieens que asignarle un valor.
PHP evalúa de arriba a abajo (como prácticamente todos los lenguajes)
Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 19:11 PM
Cita de: ivancea96 en  1 Septiembre 2016, 19:08 PM
No. No puede estar abajo. Tiene que etsar arriba. Si usas una variable antes de asignarle un valor, no obtendrás nada.
Primero, tieens que asignarle un valor.
PHP evalúa de arriba a abajo (como prácticamente todos los lenguajes)

Código (php) [Seleccionar]
<?php
/*
Template Name: Plantilla de contrato programa 2
*/
?>


<!-- CONEXION PHP !-->

<?php
function 
Conectarse()
{

$db_host=""// Host al que conectar, habitualmente es el 'localhost'

$db_nombre=""// Nombre de la Base de Datos que se desea utilizar

$db_user=""// Nombre del usuario con permisos para acceder

$db_pass=""// Contraseña de dicho usuario

// Ahora estamos realizando una conexión y la llamamos '$link'

$link=mysql_connect($db_host$db_user$db_pass) or die ("Error conectando a la base de datos.");

// Seleccionamos la base de datos que nos interesa

mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");

// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
mysql_query("SET NAMES 'utf8'");
return 
$link;

}
$link Conectarse();
session_start();
if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
$SU $_SESSION['usuario'];
$SP $_SESSION['password'];

$GetUser mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
if(mysql_num_rows($GetUser) > 0) {
$myrow mysql_fetch_assoc($GetUser);
define("User"true);
}
} else {
define("User"false);
}

if ($myrow['permisos'] == 1) {
echo 'Tienes permiso para poder visualizar la siguiente página';
} else {
echo 'No tienes permisos para visualizar esta página.';
}

if (User == false) {
header('Location: /');
}
?>


<!-- FINAL CONEXION !-->

<?php

// Exit if accessed directly
if ( !defined'ABSPATH' ) ) {
exit;
}

/**
 * Full Content Template
 *
 *
 * @file           full-width-page.php
 * @package        Responsive
 * @author         Emil Uzelac
 * @copyright      2003 - 2014 CyberChimps
 * @license        license.txt
 * @version        Release: 1.0
 * @filesource     wp-content/themes/responsive/full-width-page.php
 * @link           http://codex.wordpress.org/Theme_Development#Pages_.28page.php.29
 * @since          available since Release 1.0
 */

get_header(); ?>


<div id="content-full" class="grid col-940">

<?php if ( have_posts() ) : ?>

<?php while( have_posts() ) : the_post(); ?>



<?php responsive_entry_before(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php responsive_entry_top(); ?>

<?php get_template_part'post-meta'get_post_type() ); ?>

<div> <?php print_r($myrow); ?> </div>
<?php
if($myrow['permisos'] == 1) {
?>

<!-- PUBLICACIONES !-->
<div class="post-entry">
<?php the_content__'Read more &#38;#8250;''responsive' ) );
?>

<?php wp_link_pages( array( 'before' => '<div class="pagination">' __'Pages:''responsive' ), 'after' => '</div>' ) ); ?>
</div>
<?php
 }
 ?>

<!-- FINAL DE LAS PUBLICACIONES !-->

<!-- end of .post-entry -->

<?php get_template_part'post-data'get_post_type() ); ?>

<?php responsive_entry_bottom(); ?>
</div><!-- end of #post-<?php the_ID(); ?> -->
<?php responsive_entry_after(); ?>



<?php
endwhile;

get_template_part'loop-nav'get_post_type() );

else :

get_template_part'loop-no-posts'get_post_type() );

endif;
?>


</div><!-- end of #content-full -->
<?php get_footer(); ?>


Así estaria bien?

Me funciono!!!! muchísimas gracias!!
Título: Re: Mostrar contenido o ocultarlo
Publicado por: #!drvy en 1 Septiembre 2016, 22:43 PM
Código (php) [Seleccionar]
$GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");

MD5 ? En serio WinTx ?  :silbar:


Saludos
Título: Re: Mostrar contenido o ocultarlo
Publicado por: Zeros1001 en 2 Septiembre 2016, 13:54 PM
No es la mejor seguridad desde luego, y tampoco deberías publicar por ahí el algoritmo que usas para cifrar en la base de datos. Aunque si tampoco es algo comercial no importa demasiado.

Saludos y me alegro que lo hayas solucionado.