Autor Tema: un par de dudas en php ¿aprenderlo, usar cms o usar framework?  (Leído 6662 veces)

jaamiro

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
    • BarPlaybook
Hola a todos,

Tengo un par de dudas referente a php.

La primera sería:

Querría utilizar el php para crear un registro de usuarios a través de tablas para la web, (esto sé hacerlo), pero como se tiene que hacer para limitar el acceso a según que partes de la web a un usuario que no se haya registrado...

La segunda:

Si quiero utilizar las tablas para hacer categorias de noticias, que luego se puedan buscar por categoria por ejemplo, como lo tengo que hacer... ¿Subir a mi web las noticias a través de un formulario?

La verdad en este último tiempo he aprendido bastane php( o eso creo...) se hacer funciones... estructuras condicionales, bucles, secuenciales... pero no consigo verle la utilidad práctica a la hora de utilizarlo en la web...
« Última modificación: 12 de Septiembre 2014, 18:27 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:un par de dudas en php
« Respuesta #1 en: 26 de Mayo 2012, 15:38 »
Hola jaamiro, verás, php tiene mucha utilidad y mucho potencial, pero muchas veces lo que se hace es no partir de cero. Por ejemplo, si partes de un cms instalado como joomla o de un framework como codeigniter tienes mucho trabajo adelantado que no tienes que codificar. De todas formas para aprender es bueno que uno mismo codifique las cosas por lo menos una vez, por ejemplo lo que comentas del registro de usuarios, aunque luego ya pases a utilizar un cms o framework y tú no tengas que codificarlo.

Te trato de orientar sobre el tema de limitar el acceso a partes de tu web.

Primera cuestión: necesitas una página o formulario de logado. En esa página un formulario se encargará de recoger los campos que pasarás por post a otra página, por ejemplo txtUserName representaría el nombre de usuario y txtPassword representaría el password que recoges a través del formulario.

El formulario puede tener un encabezado así:

<form method="post" name="frmLogin" id="frmLogin" action="<?php echo $_SERVER['PHP_SELF'] ?>">

La variable predefinida de PHP $_SERVER['PHP_SELF'] retorna el valor del nombre de archivo del código PHP que se esté ejecutando actualmente, relativo a la raiz del sitio. Entonces si estoy visualizando a http://www.misitio.com/index.php la variable $_SERVER['PHP_SELF'] me arrojará /index.php.

Ahora en cabecera de ese archivo php donde tienes el logado tendrás algo así:

<?php
require 'dbconnect.php';
require 'library/functions.php';

$errorMessage = '&nbsp;';

if (isset($_POST['txtUserName'])) {
   $result = doLogin();

   if ($result != '') {
      $errorMessage = $result;
   }
}


Si existe un valor de UserName llamas a una función doLogin() que es la que se encarga de verificar el logado, si no existe, no haces nada (muestras un espacio en blanco).

Ahora en la función doLogin() tienes que recibir por $_POST el nombre de usuario y password y hacer un chequeo con la base de datos para ver si ese nombre de usuario y password son correctos.

Si resultan correctos, te creas variables de sesión donde almacenas por ejemplo el nombre de usuario y su id (el usuario en la tabla de usuarios tendrá un ID):

$_SESSION['name'] = $row['usuario'];
$_SESSION['web_user_id'] = $row['idusuario'];



Finalmente, en una página con acceso restringido lo primero que debes hacer es chequear si el usuario puede acceder a esa página por ejemplo con una función checkUser();

<?php
include 'library/functions.php';
checkUser();


La función checUser() será algo así:

function checkUser(){
   // cierra la sesion
   if (isset($_GET['logout'])) {
      doLogout();
   }
   // Si user_id no esta definido, redirecciona a login
   if (!isset($_SESSION['web_user_id'])) {
      header('Location: login.php');
      exit;
   }
}


Si no existe la variable de sesión que se crea cuando un usuario se loga, se manda a la página de logado (por ejemplo login.php) de modo que el usuario no puede ver el contenido de ese archivo.

Te recomiendo que vayas paso por paso y hagas pruebas sencillas porque si no te vas a liar. Suerte!

jaamiro

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
    • BarPlaybook
Re:un par de dudas en php
« Respuesta #2 en: 26 de Mayo 2012, 16:33 »
Gracias por responder!

Lo del cms ya lo había pensado pero lo que me gustaría es aprender bien el lenguaje y lo más importante saber aplicarlo. Luego si es más cómodo utilizar el cms.

Probare lo que me explicas y a ver si me aclaro y lo consigo. Y sobre todo a ver si consigo ver la aplicación práctica del lenguaje en la Web que ahora mismo no la veo mucho.

Otra vez gracias por contestar!!

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:un par de dudas en php
« Respuesta #3 en: 26 de Mayo 2012, 20:37 »
jaamiro creo que estás totalmente acertado cuando planteas primero aprender bien el lenguaje... Si consigues tener una buena base luego te moverás como pez en el agua con los distintos cms o frameworks. Si no tienes una buena base todo serán dificultades, así que ánimo con el asunto.
Responsable de departamento de producción aprenderaprogramar.com

Manuel Sierra

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
Re:un par de dudas en php
« Respuesta #4 en: 28 de Mayo 2012, 13:20 »
Pues sí como dice Cesar Krall yo también soy de la misma opinión. Más vale aprender bien un lenguaje, aunque sea más costoso, pero asentando bién las bases y despues para trabajar o hacer algo más complejo aprender el framework en concreto donde se va a realizar las tareas.

Además si es software libre pues mejor que mejor.

Un saludo.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".