Autor Tema: [Ayuda] Restringir acceso a algunos usuarios en web  (Leído 1449 veces)

Desconectado Nortec!

  • PHPerit@
  • *
  • Mensajes: 21
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
[Ayuda] Restringir acceso a algunos usuarios en web
« en: 19 de Mayo de 2012, 11:31:57 am »
Hola, ¿Qué tal?  :)

He estado tratando de crear un sistema de noticias unido con un sistema de usuarios, y todo va bien, pero me he atorado con una parte y el asunto esta así:

1) Los usuarios se registran, iniciando con el rango de 'Miembro'
2) Manualmente les cambio el rango a algunos de 'Miembro' a 'Reporteros' (Manualmente porque no se hacerlo por medio de un panel de administración)
3) Es aquí donde me atoro, pues quiero que solo los 'Reporteros' puedan publicar noticias en un apartado de la web por ejemplo: 'www.sitioweb.com/publicar_noticia.php' habia intentado hacerlo restringiendo la página con este código:

Código: [Seleccionar]
<?php 
    session_start
(); 
    include(&
#39;conectar.php&#39;); //Se hace conexión con la base de datos.
  
    
if(isset($_SESSION[&#39;NombreDeUsuario&#39;])) { //Se verifica si esta conectado.
?>

        <!-- Aquí ponía el panel para publicar noticias, pero puede entrar cualquiera que se registre -->
<?php 
    
}else { 
        echo 
"Para poder publicar una noticia debes ser Reportero"//Se manda mensaje que debe ser reportero para publicar una noticia.
//Aunque en realidad con que estén registrados pueden acceder(Y esto ultimo no quiero Dx)
    

?>


Bueno con el código anterior intente hacer mi objetivo pero como mencione en el código, con ese código pueden acceder a publicar una noticia cualquier persona, y lo que yo quiero es que por ejemplo solo puedan acceder los 'Reporteros' & 'Administradores'. En mi base de datos tengo la tabla de usuarios en la cual se registra el ID, Usuario, Nick, Clave, Email, FechaReg y Rango. ¿Le falta algo al código? o ¿Necesito hacerlo de otra manera? ¿Alguna idea? Echenme la mano por favor, la verdad ya estuve leyendo manuales de SQL y PHP para poder darme una idea y nada D;

De antemano, muchas gracias.

Comunidad PHPeros

[Ayuda] Restringir acceso a algunos usuarios en web
« en: 19 de Mayo de 2012, 11:31:57 am »

Desconectado reef

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 4
  • Sexo: Masculino
  • Todo un skater
    • Ver Perfil
    • Donreef ~ TagBoard
Re:[Ayuda] Restringir acceso a algunos usuarios en web
« Respuesta #1 en: 19 de Mayo de 2012, 17:43:11 pm »
Hace una consulta a la base de datos despues del session start buscando el nombre del usuario que entra y viendo su rango y hay hacer el if de que solo los reporteros entren.
Ej:
      
Código: [Seleccionar]
$usuario = mysql_query("SELECT * FROM usuarios WHERE nick='$_SESSION[nick]'");
$dat = mysql_fetch_array($usuario);
$rango = $dat['rango'];
if($rango == "Administrador" or $rango == "Reportero") {
echo "";

Algo así podrias hacer, obviamente hay personas que saben mas y pueden hacerlo mejor pero esa es una opción.

Desconectado Nortec!

  • PHPerit@
  • *
  • Mensajes: 21
  • Karma: 1
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Ayuda] Restringir acceso a algunos usuarios en web
« Respuesta #2 en: 19 de Mayo de 2012, 21:51:09 pm »
Muchas gracias Reef me fue de mucha ayuda, pero tengo otra duda es que quiero que los administradores tengan un panel donde puedan modificar algunos datos de otro usuarios, como la contraseña y el rango ¿Como podria hacer esto? Se que aquí no les gusta dar códigos y eso, pero me sería de mucha ayuda sobre que podria investigar para poder realizarlo.

Y nuevamente gracias :)

Desconectado reef

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 4
  • Sexo: Masculino
  • Todo un skater
    • Ver Perfil
    • Donreef ~ TagBoard
Re:[Ayuda] Restringir acceso a algunos usuarios en web
« Respuesta #3 en: 19 de Mayo de 2012, 22:21:13 pm »
Haces un form obviamente y hay en ese formulario se introducira el nombre del usuario buscado, ejemplo acá:
<?
if(isset($_POST[enviado&#39;])) {
	
$nck $_POST[&#39;nick&#39;];
	
$query mysql_query("SELECT * FROM usuarios WHERE nick =&#39;$nck&#39;");
	
$row mysql_num_rows($query);
	
if(
$row == 0) {
	
	
print(&
#39;El usurio no existe&#39;);
	
}else{
	
	
print(&
#39;<meta http-equiv="refresh" content="0;URL=index.php?id=otroarchivo&nick=&#39;.$_POST[&#39;nick&#39;].&#39;">&#39;);
	
}
}else{
	

?>

y en el otro archivo puedes hacer algo así:
<?
	
$user $_GET[&#39;nick&#39;];
	
$query mysql_query("SELECT * FROM usuarios WHERE nick=&#39;$user&#39;");
	
$datos mysql_fetch_array($query); ?>

y en el formulario les vas poniendo ejemplo Usuario: <?=$datos[&#39;nick&#39;]; ?>

Bueno ojalas te sirva, cualquier cosa por MP C:
« Última modificación: 19 de Mayo de 2012, 22:23:02 pm por reef »