Regresar a la página www.ComoCrearTuWeb.com
Página 1 de 3 123 ÚltimoÚltimo
Resultados 1 al 15 de 31

Tema: Empiezo mi proyecto de CMS! Aprende conmigo Php y Mysql!!

  1. #1
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10

    Empiezo mi proyecto de CMS! Aprende conmigo Php y Mysql!!

    Bueno, tras mi laaaaargo letargo (pido perdones) y después de responder un puñao de mensajes pendientes me moria de ganas por meterme a ver si consgio crear ese cms que pretendía hace dias.. meses.. años! je je. Es por eso que cree esta sección del foro, para enseñaros mientras aprendia, pero... creo que soy yo el que va a aprender de vosotros! je je je Que bien, ya era hora! ja ja ja

    Os cuento lo que quiero por si me podeis ayudar y así adelanto y me da tiempo a hacer algunas lecciones

    Quiero crear una base de datos a partir de la cual pueda, con un formulario, crear páginas automáticamente desde internet sin más que rellenar los datos que ese formulario pida, que serán más o menos (más bien más) estos:

    1.- nombre del archivo de la pagina a crear.
    2.- title
    3.- description
    4.- metatags
    5.- categoria a la que ha de pertenecer (en función de esta, tomará la hoja de estilo apropiada) La categoria será la sección correspondiente de las leguetas horizontales de CCTW.
    6.- Sección a la que pertenece dentro de esa categoria. Me refiero ya al menú horizontal que en CCTW hay bajo las lenguetas.
    6.- Su nombre en el menú lateral izquierdo
    7.- Su posición en ese mismo menú
    8.- Por supuesto, contenido, me vale escribir en el formulario codigo html directamente, es más, sería lo mejor pues así se pueden incluir imagenes, etc.


    Básicamente eso. Más tarde se me ocurriran más cosas que definir para que aparezcan también en el formulario, pero añadir es facil una vez que tienes algo.

    Imagino que hay que crear otras tablas donde definir cuantos apartados (lenguetas) hay, y otra para definir las secciones que hay dentro de cada apartado (las secciones son los enlaces horizontales bajo las lenguetas) y otras, una para cada menú lateral izquierdo.

    Con lo poco que sabia y lo poco que recuerdo, esto se puede hacer facil, aunque no lo consegui la otra vez

    Ahora sigo

  2. #2
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Voy a ver si recupero mis conocimientos para hacer la página de conexión con la base de datos, la de mostrar los datos de la tabla, la de editar y eliminar datos, etc. Ahí fue donde me quedé estancado. Si lo consigo seguiré luego con el tema de cómo hacer para que los datos guardados en la tabla aparezcan en una plantilla html en la que en lugar de los datos de esa página aparezcan las variables que lean los datos de la base. No se si me explico.

    Claro, las páginas tendrían parte de html y parte de php, con lo que la extensión será .php, no?

    Luego quedaría el tema de modificar el .htaccess para hacer las url amigables... joe, no me queda ná, ja ja ja

    Una vez que tienes todo eso, se puede ir ampliando muy fácilmente añadiendo por ejemplo un registro de usuarios. Con esto, puedes ir guardando en la base de datos en qué páginas ha estado y puedes avisarlo la siguiente vez que entre de las páginas o secciones que se han actualizado o ampliado. Puedes decirle qué página aun no ha visto, etc, etc, etc. El limite lo pone tu imaginación (y el procesador del hosting..... je je je)

    Si alguien me ayuda se lo agradeceré mucho. Si necesitais más datos para echarme una mano pedidlo!

    Iré mostrando acá lo que consiga. Un abrazo y gracias por adelantado!

  3. #3
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    13 abr, 07
    Ubicación
    USA
    Mensajes
    516
    Poder de Reputación
    18
    Hola jorgens. Que bien que quieras crear un CMS , creo que nos seria de mucha utilidad para muchos y al mismo tiempo aprenderíamos algo de PHP. Yo con mucho gusto te ayudaría pero lamentablemente aun estoy muy verde con PHP, pero te puedo ayudar con la parte de HTML y CSS. Aun así creo que te podría ayudar un poco con la programación pues soy muy "Googlero" y toda la información necesaria para crear un CMS se encuentra en Internet :D.

    Me leeré algunos tutoriales y veremos si te puedo ayudar con algo de PHP. Igual y esperemos que otros que estén mas avanzados en php se animen a colaborar con sus conocimientos.



    Saludos.
    Pitufo

  4. #4
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Gracias pitu, se agradece el gesto

    A ver si alguien encuentra algo que ando buscando. Se trata de unos pocos archivos php que en conjunto permitian meter datos en una base, listarlos, eliminar datos, actualizar, etc.

    Los encontré hace mucho tiempo por la red, en varias webs pues es común en muchos tutoriales, pero no se, ahora no los encuentro en red...

    Suele constar de un archivo con los datos de la conexión llamado, por ejemplo, conectar.php con este contenido:

    conexion.php
    <?php
    // Connects to Our Database
    mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
    mysql_select_db("Database_Name") or die(mysql_error());
    ?>
    Seguido de otro para añadir datos, otro para eliminar, otro para actualizar, etc, etc, todo a través de formularios.

    Que rabia, era lo que quería usar de base para ir aprendiendo, remodelándolo y ampliándolo para hacer el cms que necesito. Sabéis de qué os hablo alguno? Teneis esos archivos?

    Muchas gracias, mientras sigo buscando!

    Pregunta: ando buscando. Se trata de unos pocos archivos php que en conjunto permitian meter datos en una base, listarlos, eliminar datos, actualizar, etc
    Respuesta: Los archivos que propuso MzStudios para la creación de un sistema de registro de usuarios van fenomenal como base para esto, están en este mensaje suyo:
    http://www.comocreartuweb.com/phpBB2/ftopic11766.html
    Pero por si se pierden donde están guardados os los dejo también aquí:
    http://www.comocreartuweb.com/ejempl...ro/sistema.zip
    Los usaré para modificarlos hasta conseguir lo que quiero.

  5. #5
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Bueno, por el momento estoy usando los archivos de "Crear un sistema de Regstro" que nos pasó tan amablemente MzStudios (gracias!)
    http://www.comocreartuweb.com/phpBB2/ftopic11766.html

    A ver si consigo retocarlo para ir dándole forma y aprender como funciona sacándole las tripas, je je je

    Sigo abierto a colaboraciones!

    Un abrazo!

  6. #6
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Estaba pensando que no sería mala idea usar la base de datos del foro.... así los usuarios registrados en él ya no tendrían que registrarse de nuevo y todo queda más homogeneo... mismo login y password para logearse tanto en el foro como en la web.... Miraré como se puede hacer. Alguna idea?

  7. #7
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    La aplicación de registro de usuarios funciona fenomenal, como era de esperar, je je je. Ahora voy a mirar cómo modificar los campos de la tabla que viene definida en la instalación (nombre, web, apellidos, avatar, etc) para añadir los que yo quiero, los que comenté al principio (metatags, titles, etc, etc). Esto va tomando forma!

    Una vez que sepa llenar la base de datos con lo que yo quiero, me tocará aprender a crear las páginas de la web a partir de esos datos y las plantillas html y css.

    Veamos que pasa... je je

    Pregunta: cómo modificar los campos de la tabla
    Solución: Desde el panel de control de mi hosting dispongo del phpMyadmin, que me permite modificar el nombre de cada campo, añadir otros, eliminar alguno, etc. Después de cualquier cambio hay que hacer la misma modificación en los archivos que teníamos de base, los de crear un sistema de registro, esto es, modificar la parte de php de los archivos que teniamos. Por ejemplo si cambio el nombre del campo "username" por "usuario", tengo que cambiar también en los archivos .php esos nombres a las variables para que todo funcione. Existen otros modos, pero este me parece el más sencillo.

  8. #8
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Bien, veo que si en lugar de datos como nombre, apellidos, etc introduzco en el formulario puro codigo html, este es interpretado como tal, vamos que si pongo mi nombre así <h1>Jorgens</h1> aparece como un titulo. Eso es buena señal pues es parte de lo que quiero conseguir, je je je.

  9. #9
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Una pregunta a los sabios en el tema. Si quiero que un usuario pueda acceder pero no quiero que tenga que estar registrado... cómo lo hago? Voy a investigar...

    Algo así como "invitados" digo.

  10. #10
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 dic, 07
    Ubicación
    Argentina
    Mensajes
    443
    Poder de Reputación
    17
    Cita Iniciado por jorgens
    Una pregunta a los sabios en el tema. Si quiero que un usuario pueda acceder pero no quiero que tenga que estar registrado... cómo lo hago? Voy a investigar...

    Algo así como "invitados" digo.
    Mira.. primero te recomiendo que veas que privilegios van a tener los registrados, porque o sino el registro es devalde.... :P

  11. #11
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Ya, la idea es hacer algo como este foro. Los usuarios registrados pueden escribir correos, pero los no registrados aunque no pueden escribir si pueden leerlos. Me explico? Quiero algo similar pero no se como hacer para que a los no registrados se les permita ver, aunque no "tocar".

    Por sentido común, en esas páginas digamos "públicas" habrá igualmente que poner las líneas:
    include("config.php");
    // connect to the mysql server
    $link = mysql_connect($server, $db_user, $db_pass)
    or die ("Could not connect to mysql because ".mysql_error());
    // select the database
    mysql_select_db($database)
    or die ("Could not select database because ".mysql_error());
    para poder conectar con la base de datos, y ya está, no? Una vez conectado con la base de datos no pedir login sino mostrar directamente los valores de los campos que queramos mediante "echo" y cosas así, no?

    Pregunta. "dónde y cómo se definen privilegios para cada tipo de visitante, incluidos los no registrados?"
    Solución: Ya lo he investigado. En el panel de control del servidor, donde das de alta las bases de datos, se pueden crear users y darle los poderes que quieras, solo lectura, modificación, borrar, etc, etc, etc. Allí puedo crear un user llamado por ejemplo invitado y darle solo poderes de lectura. No se si es la mejor opción, pero es la respuesta a mi pregunta.

  12. #12
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Bien, poco a poco a base de ensayos y errores trabajando sobre los archivos del registro de usuarios que propuso mzestudios, estoy aprendiendo bastante, creo.

    El siguiente experimento va a ser crear una tabla en la que meteré títulos de un menú, las direcciones de sus páginas, la posición que ocupan en el menú y no se qué más. Luego intentaré crear una página en la que el menú se genere solo a partir de esa tabla.

    Si lo consigo el siguiente paso será hacer un formulario para retocar ese menú, eliminar enlaces, o añadir.

    A ver si lo consigo. Si haces el intentó como yo no dudes en comentar tus progresos y así terminamos antes, je je je

  13. #13
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    Pues ya lo he conseguido, je je je que fácil, je je je

    He creado la tabla con unos cuantos campos que puedo usar para el menú este en php. El´código para crear esa tabla con esos campos es este:
    CREATE TABLE `jorgens_testphp`.`menutest` (
    `id` smallint( 5 ) NOT NULL AUTO_INCREMENT ,
    `nombre` varchar( 20 ) COLLATE utf8_spanish_ci NOT NULL ,
    `texto` varchar( 20 ) COLLATE utf8_spanish_ci NOT NULL ,
    `enlace` varchar( 50 ) COLLATE utf8_spanish_ci NOT NULL ,
    `posicion` tinyint( 10 ) unsigned NOT NULL ,
    `estado` set( 'activo', 'borrador', 'eliminado' ) COLLATE utf8_spanish_ci NOT NULL ,
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `nombre` ( `nombre` )
    ) ENGINE = MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_spanish_ci;

    INSERT INTO `jorgens_testphp`.`menutest`
    SELECT *
    FROM `jorgens_testphp`.`testmenu` ;
    La he creado sin tener aún mucha idea de lo que es un indice ni de los tipos de datos que debo escoger ni nada. Ya aprenderé..
    Como puedes ver, la base de datos se llama jorgens_testphp, la tabla se llama testmenu y los campos creados son los siguientes:
    - id, es el identificador.
    - nombre: es el nombre que identifica a cada enlace del menu.
    - texto: es el texto que aparece en el enlace del menú.
    - enlace: es la dirección de la página que enlaza cada enlace.
    - posicion: Aun no se usarla, pero pretendo que indique la posición u orden en el menú. La posición 1 sería arriba del todo y así en adelante.
    - estado: tampoco se usarlo aún, pero ya lo he creado para en el futuro, cuando sepa, poder escoger entre activa que significa que debe aparecer en el menú, borrador que indica que no debe aparecer por estar en fase de diseño y eliminada que significa que no debe aparecer nunca en el menú pues ya se ha deshechado ese enlace.

    El codigo de la página es este (menu.php):
    <html>
    <head>
    <META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
    <title>Menu en php 001</title>
    <style type="text/css">
    <!--
    .estilomenu {background-color:red ; width:200px}
    -->
    </style>
    </head>
    <div class='estilomenu'>
    <ul>

    <?php
    include "config.php";
    mysql_connect($server, $db_user, $db_pass) or die (mysql_error());

    $result = mysql_db_query($database, "select * from $table order by id desc") or die (mysql_error());

    if (mysql_num_rows($result)) {
    echo "

    Enlaces del menu:</p>";
    while ($qry = mysql_fetch_array($result)) {
    echo "[*]$qry[texto]";
    }
    }
    ?>
    [/list]
    </div>
    <body>
    </body>
    </html>
    y el del config.php que se llama en el include es este:
    <?php

    // Este dato de abajo suele ser localhost casi siempre.
    $server = "localhost";

    // Aqui abajo escribe el nombre de la base de username.
    $database = "jorgens_testphp";

    // nombre de username de la base de datos para acceder a ella.
    $db_user = "jorgens_testphp";

    // Y ahora la contraseña. No te la he puesto, claro...
    $db_pass = "**********";

    // especificar la tabla a usar
    $table = "testmenu";
    ?>
    Siguiente paso? Añadir algunos enlaces más y ver si consigo que ordene los enlaces en función del campo "posicion".

    Guau, que divertido es esto!!!! je je je Me ayudais?

  14. #14
    Administrador CCTW Webmaster de CCTWHabitante
    Fecha de Ingreso
    10 ago, 05
    Ubicación
    Cartagena, España
    Mensajes
    3,721
    Poder de Reputación
    10
    El codigo usado antes lo he rescatado de los archivos del registro de usuarios que ya os he comentado. En adelante los llamaré Archivos Base.

    Ahora que lo releo, veo que hay una parte que debe de estar definiendo ya que los resultados han de mostrarse ordenados por id y en sentido descendente. Seguro que es así, pues realmente me ha salido primero el enlace que tenia id=2 y luego el que tenia id=1 (id era el primer campo de la table).

    Mira este es el código que tengo yo en el ejemplo de antes:
    $result = mysql_db_query($database, "select * from $table order by id desc") or die (mysql_error());

    y he coloreado de rojo la parte que sospecho que define que aparezcan ordenados (order) según el valor del campo id (by id) y además en sentido descendete (desc), je je je je, veis como para aprender basta con hacer pruebas y estar atentos? Pues ale, ya sabemos otra cosa más, y sin preguntar, ja ja ja

    Comprobado, si quiero un orden ascendente, es decir, que coloque en primer lugar en el menú el que tenga menor valor en la variable posicion, basta con cambiar des por asc, así:
    $result = mysql_db_query($database, "select * from $table order by id asc") or die (mysql_error());
    El siguiente paso va a ser.... a ver como lo complicamos... ya! hacer que los enlaces definidos en la tabla como "borrador" no aparezcan. También iré creando un formulario a través del cuál poder modificar los elementos del menú.

    Qué pasa, no se anima nadie?? Pues os lo perdeis, esto está genial je je je

  15. #15
    Me va gustando esto... Habitante
    Fecha de Ingreso
    27 nov, 08
    Ubicación
    Rosario, Argentina
    Mensajes
    232
    Poder de Reputación
    15
    Jorgens me gustaria ayudarte con el login usando la tabla del foro :D
    Yo se como se encriptan las contraseñas y como hacer para logear los usuarios:
    En el formulario, dos input:
    <input type="text" name="usuario">
    y el de la passwd:
    <input type="password" name="passwd">
    luego, en el archivo del login pones:
    $usuario = $_POST['usuario'];
    $passwd = md5($_POST['passwd']);
    y lo selects:
    $select = mysql_query("SELECT * FROM la_db_del_foro WHERE username = '{$usuario}' AND password = '{$passwd}'");
    if ($q = mysql_fetch_array($select))
    {
    // logeo bien
    }
    else
    {
    // logeo mal
    }
    lo unico es que no se si se llamaban asi los campos pero xD se que se hace asi para la contraseña
    P.D.: A partir de php 3.5 la funcion mysql_db_query ya no se usa mas :P

Temas Similares

  1. Apuntense a crear un foro conmigo
    Por kAnY en el foro Off-Topic
    Respuestas: 1
    Último Mensaje: 22/01/2009, 17:15
  2. ¿Alguien intercambia enlaces conmigo?
    Por itxaslamiak en el foro Intercambio de enlaces
    Respuestas: 9
    Último Mensaje: 22/06/2008, 20:03

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •