Foros del Web » Programando para Internet » PHP »

Crear carpetas cuando se crea un tema

Estas en el tema de Crear carpetas cuando se crea un tema en el foro de PHP en Foros del Web. Hola a todos! Quiero hacer una consulta,en el foro que estoy haciendo tengo que cuando un usuario crea un nuevo tema puede verlo pero con ...
  #1 (permalink)  
Antiguo 23/01/2011, 14:27
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Crear carpetas cuando se crea un tema

Hola a todos!
Quiero hacer una consulta,en el foro que estoy haciendo tengo que cuando un usuario crea un nuevo tema puede verlo pero con el link asi forums/topic.php?id=$row['topic_id']

La consulta que hago es como hago para que sea una carpeta con el titulo del tema y qeu en el index vaya al tema creado.
Mi codigo php para crar nuevo tema es este:
Código PHP:
<?php
 
echo '<br />';
//Conexion con la Base de Datos
$link=@dbConnect();
if (!
$link) {
    echo 
"Error conectando a la Base de Datos."
}

if (
$link =="202") {
    echo 
"Error seleccionando la Base de Datos.";
}

echo 
'<h2>Nuevo tema</h2>';
if(isset(
$_SESSION['id']))
{
    
//el usuario esta logueado
    
if($_SERVER['REQUEST_METHOD'] != 'POST')
    {    
                 
        
// el formulario no ha sido publicado todavía
        // recuperar las categorías de la base de datos para su uso en el menú desplegable
        
$sql "SELECT
                    cat_id,
                    cat_name,
                    cat_description
                FROM
                    categories"
;
        
        
$result mysql_query($sql);
        
        if(!
$result)
        {
            
//la consulta falla
            
echo 'Error al seleccionar desde la  base de datos. Intente de nuevo.';
        }
        else
        {
            if(
mysql_num_rows($result) == 0)
            {
                
//no hay categorias creadas
                
if($_SESSION['user_level'] == 1)
                {
                    echo 
'No hay categorias creadas.';
                }
                else
                {
                    echo 
'No puedes crear un tema.Contacta con el administrador.';
                }
            }
            else
            {
        
                echo 
'<form method="post" action="" class="form_nuevo" onsubmit="return validate_form ( );" enctype="multipart/form-data" name="topicform" id="topicform">
                    T&iacute;tulo: <input type="text" name="topic_subject" class="input_title" /><br />
                    Categor&Iacute;a:'

                
                echo 
'<select name="topic_cat">';
                    while(
$row mysql_fetch_assoc($result))
                    {
                        echo 
'<option value="' $row['cat_id'] . '" class="input_cat">' $row['cat_name'] . '</option>';
                    }
                echo 
'</select><br />';    
                    
                echo 
'Post: <br /><textarea name="post_content" id="post_content" rows="25" cols="100%" /></textarea><br /><br />
                    <div id="wrap"><input type="submit" value="Enviar nuevo tema" class="button" /></div>
                 </form>'
;
            }
        }
    }
    else
    {
        
        
$query  "BEGIN WORK;";
        
$result mysql_query($query);
        
        if(!
$result)
        {
            
            echo 
'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.';
        }
        else
        {
    
            
// el formulario se ha publicado, entonces lo guarda
           // inserta el tema en la tabla los primeros temas, y luego  guarda el tema en la tabla de post,topics.

            
$sql "INSERT INTO 
                        topics(topic_subject,
                               topic_date,
                               topic_cat,
                               topic_by)
                   VALUES('" 
mysql_real_escape_string($_POST['topic_subject']) . "',
                               NOW(),
                               " 
mysql_real_escape_string($_POST['topic_cat']) . ",
                               " 
$_SESSION['id'] . "
                               )"
;
                     
            
$result mysql_query($sql);
            if(!
$result)
            {
                
//muestro el error
                
echo 'Se produjo un error al insertar el tema. Por favor, intEntelo de nuevo mas tarde.<br /><br />' mysql_error();
                
$sql "ROLLBACK;";
                
$result mysql_query($sql);
            }
            else
            {
                
// la consulta trabajo la primera vez, ahora comienza la segunda consulta
                 // recupera el id del tema recien creado para el uso en la consulta de los temas
                
$topicid mysql_insert_id();
                
                
$sql "INSERT INTO
                            posts(post_content,
                                  post_date,
                                  post_topic,
                                  post_by)
                        VALUES
                            ('" 
mysql_real_escape_string($_POST['post_content']) . "',
                                  NOW(),
                                  " 
$topicid ",
                                  " 
$_SESSION['id'] . "
                            )"
;
                
$result mysql_query($sql);
                
                if(!
$result)
                {
                    
//algo salio mal, muestro el error
                    
echo 'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.<br /><br />' mysql_error();
                    
$sql "ROLLBACK;";
                    
$result mysql_query($sql);
                }
                else
                {
                    
$sql "COMMIT;";
                    
$result mysql_query($sql);
                    echo 
'<a href="../forums/?id='$topicid '">Ver tema</a>';;
                    exit();
                }
            }
        }
    }
  
 }
else
{
    
    
//el usuario no esta logueado
    
echo 'Ups.... tienes que <a href="../login.php">iniciar sesion</a> para crear un tema.';
}
echo 
'<br />';
 
?>
No se cual me conviene mas si usar asi para ver el tem topic.php?id= o usar carpetas.
Quien pueda ayudarme se los agradezco!
Saludos!
  #2 (permalink)  
Antiguo 23/01/2011, 15:59
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear carpetas cuando se crea un tema

Si tienes pocos temas, usa carpetas, pero no te lo aconsejo, tarde o temprano el foro crecerá y tendrás problemas
  #3 (permalink)  
Antiguo 23/01/2011, 16:02
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear carpetas cuando se crea un tema

Ok entonces me conviene usar como habia dicho topic.php?id
Muchas gracias por la respuesta!
  #4 (permalink)  
Antiguo 23/01/2011, 16:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Crear carpetas cuando se crea un tema

Creo que mas bien necesitas usar friendy url's si estas usando apache te dejo una liga que es un herramienta que te ayuda a crear las reglas que necesitas colocar en archivo .htacces
http://www.webconfs.com/url-rewriting-tool.php

Si no es lo que necesitas creo que ya te contestaron en un mensaje anterior
__________________
Saludos.
  #5 (permalink)  
Antiguo 23/01/2011, 16:36
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear carpetas cuando se crea un tema

Muchas gracias JaimeSavines!
En php estoy probando lo del link que me pasaste y lo estoy probando.
Como hago para que pueda funcionar.
En mi archivo .php hice un include('.httaccess'); y me muestra el codigo que tiene el archivo .httacces
Saludos y gracias!
  #6 (permalink)  
Antiguo 23/01/2011, 16:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 77
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Crear carpetas cuando se crea un tema

No hace falta hacer include, solo pon el .htaccess en la carpeta superior...
  #7 (permalink)  
Antiguo 23/01/2011, 16:47
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear carpetas cuando se crea un tema

Perdon pero no entiendo cuando decis en la carpeta superior?
Gracias
  #8 (permalink)  
Antiguo 23/01/2011, 20:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Crear carpetas cuando se crea un tema

Cita:
Iniciado por ale_dla Ver Mensaje
Muchas gracias JaimeSavines!
En php estoy probando lo del link que me pasaste y lo estoy probando.
Como hago para que pueda funcionar.
En mi archivo .php hice un include('.httaccess'); y me muestra el codigo que tiene el archivo .httacces
Saludos y gracias!
No es necesario incluir el .htacces en tus script de php, solo lo debes de colocar en tu directorio principal, tambien es importante si estas probando localmente en tu maquina que apache tenga habilitado el modulo rewrite.
__________________
Saludos.
  #9 (permalink)  
Antiguo 24/01/2011, 06:24
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear carpetas cuando se crea un tema

Lo estoy probando en mi web ya subida.
Gracias

Etiquetas: temas, topics, foros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.