Foro de elhacker.net

Programación => 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
  1. <!-- PUBLICACIONES !-->
  2. <div class="post-entry">
  3. <?php the_content( __( 'Read more &#38;#8250;', 'responsive' ) ); ?>
  4. <?php wp_link_pages( array( 'before' => '<div class="pagination">' . __( 'Pages:', 'responsive' ), 'after' => '</div>' ) ); ?>
  5. </div>
  6. <!-- 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
  1. <!-- CONEXION !-->
  2.  
  3. <?php
  4. function Conectarse()
  5. {
  6.  
  7. $db_host="XXXXXXXX"; // Host al que conectar, habitualmente es el ‘localhost’
  8.  
  9. $db_nombre="XXXXXXXX"; // Nombre de la Base de Datos que se desea utilizar
  10.  
  11. $db_user="XXXXXXXX"; // Nombre del usuario con permisos para acceder
  12.  
  13. $db_pass="XXXXXXXX"; // Contraseña de dicho usuario
  14.  
  15. // Ahora estamos realizando una conexión y la llamamos ‘$link’
  16.  
  17. $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
  18.  
  19. // Seleccionamos la base de datos que nos interesa
  20.  
  21. mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
  22.  
  23. // Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
  24. mysql_query("SET NAMES 'utf8'");
  25. return $link;
  26.  
  27. }
  28. $link = Conectarse();
  29. if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
  30. $SU = $_SESSION['usuario'];
  31. $SP = $_SESSION['password'];
  32.  
  33. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  34. if(mysql_num_rows($GetUser) > 0) {
  35. $myrow = mysql_fetch_assoc($GetUser);
  36. define("User", true);
  37. }
  38. } else {
  39. define("User", false);
  40. }
  41.  
  42. if ($myrow['admin'] == 1) {
  43. echo 'Tienes permiso para poder visualizar la siguiente página';
  44. } else {
  45. echo 'No tienes permisos para visualizar esta página.';
  46. }
  47.  
  48. if (User == false) {
  49. header('Location: /');
  50. }
  51. ?>


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
  1. 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
  1. <?php
  2. if($puedeVerlo){
  3. ?>
  4.  
  5. <div>Contenido</div>
  6.  
  7. <?php
  8. }
  9. ?>

¿Por ejemplo?


Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 15:07 pm
Código
  1. <?php
  2. if($puedeVerlo){
  3. ?>
  4.  
  5. <div>Contenido</div>
  6.  
  7. <?php
  8. }
  9. ?>

¿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
  1. <?php
  2. if($id == 1){
  3. ?>
  4.  
  5. <div>Zona de administrador</div>
  6.  
  7. <?php
  8. }
  9. ?>

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
  1. <?php
  2. if($myrow['permisos'] == 1) {
  3. ?>
  4. <!-- PUBLICACIONES !-->
  5. <div class="post-entry">
  6. <?php the_content( __( 'Read more &#38;#8250;', 'responsive' ) );
  7. ?>
  8. <?php wp_link_pages( array( 'before' => '<div class="pagination">' . __( 'Pages:', 'responsive' ), 'after' => '</div>' ) ); ?>
  9. </div>
  10. <?php
  11. }
  12. ?>
  13. <!-- FINAL DE LAS PUBLICACIONES !-->

Muchas gracias por ayudarme


Título: Re: Mostrar contenido o ocultarlo
Publicado por: bengy 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
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: bengy 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
  1. <div> <?php print_r( ... ); ?> </div>


Título: Re: Mostrar contenido o ocultarlo
Publicado por: WIитX en 1 Septiembre 2016, 17:47 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
  1. <div> <?php print_r($myrow); ?> </div>
  2. <?php
  3. if($myrow['permisos'] == 1) {
  4. ?>
  5. <!-- PUBLICACIONES !-->
  6. <div class="post-entry">
  7. <?php the_content( __( 'Read more &#38;#8250;', 'responsive' ) );
  8. ?>
  9. <?php wp_link_pages( array( 'before' => '<div class="pagination">' . __( 'Pages:', 'responsive' ), 'after' => '</div>' ) ); ?>
  10. </div>
  11. <?php
  12. }
  13. ?>
  14. <!-- 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
  1. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  2. if(mysql_num_rows($GetUser) > 0) {
  3. $myrow = mysql_fetch_assoc($GetUser);
  4. define("User", true);
  5. }
  6. } else {
  7. define("User", false);
  8. }
  9.  
  10. if ($myrow['permisos'] == 1) {
  11. echo 'Tienes permiso para poder visualizar la siguiente página';
  12. } else {
  13. echo 'No tienes permisos para visualizar esta página.';
  14. }
  15.  
  16. if (User == false) {
  17. header('Location: /');
  18. }
  19. ?>


Título: Re: Mostrar contenido o ocultarlo
Publicado por: ivancea96 en 1 Septiembre 2016, 18:02 pm
Abajo de el todo tengo esto:

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

Código
  1. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  2. if(mysql_num_rows($GetUser) > 0) {
  3. $myrow = mysql_fetch_assoc($GetUser);
  4. define("User", true);
  5. }
  6. } else {
  7. define("User", false);
  8. }
  9.  
  10. if ($myrow['permisos'] == 1) {
  11. echo 'Tienes permiso para poder visualizar la siguiente página';
  12. } else {
  13. echo 'No tienes permisos para visualizar esta página.';
  14. }
  15.  
  16. if (User == false) {
  17. header('Location: /');
  18. }
  19. ?>

¿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
  1. <?php
  2. /*
  3. Template Name: Plantilla de contrato programa 2
  4. */
  5. ?>
  6.  
  7. <?php
  8.  
  9. // Exit if accessed directly
  10. if ( !defined( 'ABSPATH' ) ) {
  11. }
  12.  
  13. /**
  14.  * Full Content Template
  15.  *
  16.  *
  17.  * @file           full-width-page.php
  18.  * @package        Responsive
  19.  * @author         Emil Uzelac
  20.  * @copyright      2003 - 2014 CyberChimps
  21.  * @license        license.txt
  22.  * @version        Release: 1.0
  23.  * @filesource     wp-content/themes/responsive/full-width-page.php
  24.  * @link           http://codex.wordpress.org/Theme_Development#Pages_.28page.php.29
  25.  * @since          available since Release 1.0
  26.  */
  27.  
  28. get_header(); ?>
  29.  
  30. <div id="content-full" class="grid col-940">
  31.  
  32. <?php if ( have_posts() ) : ?>
  33.  
  34. <?php while( have_posts() ) : the_post(); ?>
  35.  
  36.  
  37.  
  38. <?php responsive_entry_before(); ?>
  39. <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  40. <?php responsive_entry_top(); ?>
  41.  
  42. <?php get_template_part( 'post-meta', get_post_type() ); ?>
  43.  
  44. <div> <?php print_r($myrow); ?> </div>
  45. <?php
  46. if($myrow['permisos'] == 1) {
  47. ?>
  48. <!-- PUBLICACIONES !-->
  49. <div class="post-entry">
  50. <?php the_content( __( 'Read more &#38;#8250;', 'responsive' ) );
  51. ?>
  52. <?php wp_link_pages( array( 'before' => '<div class="pagination">' . __( 'Pages:', 'responsive' ), 'after' => '</div>' ) ); ?>
  53. </div>
  54. <?php
  55. }
  56. ?>
  57. <!-- FINAL DE LAS PUBLICACIONES !-->
  58.  
  59. <!-- end of .post-entry -->
  60.  
  61. <?php get_template_part( 'post-data', get_post_type() ); ?>
  62.  
  63. <?php responsive_entry_bottom(); ?>
  64. </div><!-- end of #post-<?php the_ID(); ?> -->
  65. <?php responsive_entry_after(); ?>
  66.  
  67.  
  68.  
  69. <?php
  70. endwhile;
  71.  
  72. get_template_part( 'loop-nav', get_post_type() );
  73.  
  74. else :
  75.  
  76. get_template_part( 'loop-no-posts', get_post_type() );
  77.  
  78. endif;
  79. ?>
  80.  
  81. </div><!-- end of #content-full -->
  82.  
  83.  
  84. <!-- CONEXION PHP !-->
  85.  
  86. <?php
  87. function Conectarse()
  88. {
  89.  
  90. $db_host="XXXXXX"; // Host al que conectar, habitualmente es el ‘localhost’
  91.  
  92. $db_nombre="XXXXXX"; // Nombre de la Base de Datos que se desea utilizar
  93.  
  94. $db_user="XXXXXX"; // Nombre del usuario con permisos para acceder
  95.  
  96. $db_pass="XXXXXX"; // Contraseña de dicho usuario
  97.  
  98. // Ahora estamos realizando una conexión y la llamamos ‘$link’
  99.  
  100. $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
  101.  
  102. // Seleccionamos la base de datos que nos interesa
  103.  
  104. mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
  105.  
  106. // Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
  107. mysql_query("SET NAMES 'utf8'");
  108. return $link;
  109.  
  110. }
  111. $link = Conectarse();
  112. if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
  113. $SU = $_SESSION['usuario'];
  114. $SP = $_SESSION['password'];
  115.  
  116. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  117. if(mysql_num_rows($GetUser) > 0) {
  118. $myrow = mysql_fetch_assoc($GetUser);
  119. define("User", true);
  120. }
  121. } else {
  122. define("User", false);
  123. }
  124.  
  125. if ($myrow['permisos'] == 1) {
  126. echo 'Tienes permiso para poder visualizar la siguiente página';
  127. } else {
  128. echo 'No tienes permisos para visualizar esta página.';
  129. }
  130.  
  131. if (User == false) {
  132. header('Location: /');
  133. }
  134. ?>
  135. <?php get_footer(); ?>
  136.  


Título: Re: Mostrar contenido o ocultarlo
Publicado por: bengy en 1 Septiembre 2016, 18:58 pm
creo que deberia ser asi:

Código
  1.  
  2. if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
  3. $SU = $_SESSION['usuario'];
  4. $SP = $_SESSION['password'];
  5.  
  6. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  7. if(mysql_num_rows($GetUser) > 0) {
  8. $myrow = mysql_fetch_assoc($GetUser);
  9. if ($myrow['permisos'] == 1) {
  10. echo 'Tienes permiso para poder visualizar la siguiente página';
  11. } else {
  12. echo 'No tienes permisos para visualizar esta página.';
  13. }
  14. define("User", true);
  15. }
  16. } else {
  17. define("User", false);
  18. }
  19.  
  20.  
  21.  
  22. if (User == false) {
  23. header('Location: /');
  24. }
  25. ?>
  26.  


Citar
if(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
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
  1. <?php
  2. /*
  3. Template Name: Plantilla de contrato programa 2
  4. */
  5. ?>
  6.  
  7. <!-- CONEXION PHP !-->
  8.  
  9. <?php
  10. function Conectarse()
  11. {
  12.  
  13. $db_host=""; // Host al que conectar, habitualmente es el ‘localhost’
  14.  
  15. $db_nombre=""; // Nombre de la Base de Datos que se desea utilizar
  16.  
  17. $db_user=""; // Nombre del usuario con permisos para acceder
  18.  
  19. $db_pass=""; // Contraseña de dicho usuario
  20.  
  21. // Ahora estamos realizando una conexión y la llamamos ‘$link’
  22.  
  23. $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
  24.  
  25. // Seleccionamos la base de datos que nos interesa
  26.  
  27. mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
  28.  
  29. // Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
  30. mysql_query("SET NAMES 'utf8'");
  31. return $link;
  32.  
  33. }
  34. $link = Conectarse();
  35. if(isset($_SESSION['usuario']) && isset($_SESSION['password'])) {
  36. $SU = $_SESSION['usuario'];
  37. $SP = $_SESSION['password'];
  38.  
  39. $GetUser = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($SU)."' AND password = '".md5($SP)."'");
  40. if(mysql_num_rows($GetUser) > 0) {
  41. $myrow = mysql_fetch_assoc($GetUser);
  42. define("User", true);
  43. }
  44. } else {
  45. define("User", false);
  46. }
  47.  
  48. if ($myrow['permisos'] == 1) {
  49. echo 'Tienes permiso para poder visualizar la siguiente página';
  50. } else {
  51. echo 'No tienes permisos para visualizar esta página.';
  52. }
  53.  
  54. if (User == false) {
  55. header('Location: /');
  56. }
  57. ?>
  58.  
  59. <!-- FINAL CONEXION !-->
  60.  
  61. <?php
  62.  
  63. // Exit if accessed directly
  64. if ( !defined( 'ABSPATH' ) ) {
  65. }
  66.  
  67. /**
  68.  * Full Content Template
  69.  *
  70.  *
  71.  * @file           full-width-page.php
  72.  * @package        Responsive
  73.  * @author         Emil Uzelac
  74.  * @copyright      2003 - 2014 CyberChimps
  75.  * @license        license.txt
  76.  * @version        Release: 1.0
  77.  * @filesource     wp-content/themes/responsive/full-width-page.php
  78.  * @link           http://codex.wordpress.org/Theme_Development#Pages_.28page.php.29
  79.  * @since          available since Release 1.0
  80.  */
  81.  
  82. get_header(); ?>
  83.  
  84. <div id="content-full" class="grid col-940">
  85.  
  86. <?php if ( have_posts() ) : ?>
  87.  
  88. <?php while( have_posts() ) : the_post(); ?>
  89.  
  90.  
  91.  
  92. <?php responsive_entry_before(); ?>
  93. <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  94. <?php responsive_entry_top(); ?>
  95.  
  96. <?php get_template_part( 'post-meta', get_post_type() ); ?>
  97.  
  98. <div> <?php print_r($myrow); ?> </div>
  99. <?php
  100. if($myrow['permisos'] == 1) {
  101. ?>
  102. <!-- PUBLICACIONES !-->
  103. <div class="post-entry">
  104. <?php the_content( __( 'Read more &#38;#8250;', 'responsive' ) );
  105. ?>
  106. <?php wp_link_pages( array( 'before' => '<div class="pagination">' . __( 'Pages:', 'responsive' ), 'after' => '</div>' ) ); ?>
  107. </div>
  108. <?php
  109. }
  110. ?>
  111. <!-- FINAL DE LAS PUBLICACIONES !-->
  112.  
  113. <!-- end of .post-entry -->
  114.  
  115. <?php get_template_part( 'post-data', get_post_type() ); ?>
  116.  
  117. <?php responsive_entry_bottom(); ?>
  118. </div><!-- end of #post-<?php the_ID(); ?> -->
  119. <?php responsive_entry_after(); ?>
  120.  
  121.  
  122.  
  123. <?php
  124. endwhile;
  125.  
  126. get_template_part( 'loop-nav', get_post_type() );
  127.  
  128. else :
  129.  
  130. get_template_part( 'loop-no-posts', get_post_type() );
  131.  
  132. endif;
  133. ?>
  134.  
  135. </div><!-- end of #content-full -->
  136. <?php get_footer(); ?>
  137.  

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
  1. $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.