Foros del Web » Programando para Internet » PHP »

Capturar id de autor en un sistema de noticias php

Estas en el tema de Capturar id de autor en un sistema de noticias php en el foro de PHP en Foros del Web. Hola, vendo aquí de nuevo con una duda más, y es que estoy trabajando en un sistema de noticias y tengo un problemilla del cual ...
  #1 (permalink)  
Antiguo 10/12/2013, 14:46
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Capturar id de autor en un sistema de noticias php

Hola, vendo aquí de nuevo con una duda más, y es que estoy trabajando en un sistema de noticias y tengo un problemilla del cual no puedo salir.

Lo que pasa es que quiero crear una página "borrador" en la cual cada usuario podrá ver las noticias antes de ser publicadas en la página principal de mi web.

Entonces, para que cada usuario pueda ver sus noticias tengo que seleccionar su id, pero mi problema radica en que no puedo capturar la id del autor.

Me explico, cada vez que un autor crea su noticia quiero que la "id" de ese autor se vaya a la tabla de noticias en mysql, para que así yo pueda mostrar las noticias únicamente de ese autor, por su "id".

Entonces quisiera que me pudieran ayudar en como poder capturar la "id" del autor al momento de darle "submit" a la noticia. Mis códigos son los siguientes:

admin.php (es el formulario para publicar la noticia)

Código PHP:
<?php
session_start
(); // todo el código inicia después de iniciar sesión
        
if(!isset($_SESSION['administrador']))   {
         
Header ("Location: admin.php"); 
         } 
        require_once(
'../database.php');  //hacemos que se conecte a database.php para conectar con la base de datos
    
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.google.com">
<html xmlns="http://www.google.com">
<link rel="stylesheet" type="text/css" href="../index.css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<Title>Eco-Tec</Title>

<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
        <script src="../script/text/tinymce/js/tinymce/tinymce.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            tinymce.init({
                selector: "textarea",
                statusbar: false,
                height : '400px',
                toolbar: 'styleselect | bold underline italic | alignleft aligncenter alignright alignjustify | bullist numlist | link image | media | forecolor backcolor',
                plugins: [
                     'advlist autolink link lists charmap preview',
                     'searchreplace wordcount code media',
                     'save textcolor'
                ],
                auto_focus: "main_editor",
                relative_urls : true,
                entity_encoding: 'raw',
                menubar: false
             });
        </script>
        <script src="../script/text/js/editor.js" type="text/javascript"></script>
        
<div id="header">
<?php
include ('../header.php');    
?>
</head>

<body>

<?php
include ('../menu.php');    
?>



<div id="recuadroopciones">
</div>
<form  action="../subir.php"  method="post" enctype="multipart/form-data">
<div id="recuadroentrada" align="center" >
<br>
<tr>
<td>
Título: <input style="width:650px;height:25px; font-size:1em;" type="text" name="titulo" />
</td>
</tr>
<br>
<br>
<tr>
<td align="center">

  <label for="imagen">Imagen:</label>
  <input type="file" name="imagen" id="imagen" />

</form>
</td>
</tr>
<tr>
<td>
<br>
<br>
    <div id='container'>
<table style=" font-style:italic; font-family:Arial; ">

        <div id='inner'>
        
                <textarea id='main_editor' name='text' ">
                <?php
                   $f
=null;
                    if(
filesize($f)>0){
                        
$fh=fopen($f,'r');
                        
$d=fread($fh,filesize($f));
                        
fclose($fh);
                        echo 
htmlentities($d);
                    }
                
?>
                </textarea>
                <input type="submit" value="Registrar" name="iniciar" onsubmit='umce();ut(); return false;'/>
            </form>
</td>
</tr>

</table>
</div>

</div>
</body>
</html>

subir.php (es el script para subir la noticia a la base de datos)
Código PHP:
<?php

$foto 
= isset($_POST["imagen"])? $_POST["imagen"]: '';//verifica si se envio el archivo

//se configuran los parametros de subida
$folder "imagenes/"// Carpeta a la que queremos subir los archivos
$maxlimit 50000000000// Máximo límite de tamaño (en bits)
$allowed_ext "rar,jpg,bmp,jpeg"// Extensiones permitidas (usa una coma para separarlas)
$overwrite "no"// Permitir sobreescritura? (yes/no)
$match ""
$filesize $_FILES['imagen']['size']; // toma el tamaño del archivo
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$filename "";
$error="";

//se le da un nombre aleatorio al archivo
for($i=0;$i<12;$i++) 
{
$filename .= substr($str,rand(0,62),1);}                                        

if(!
$filename || $filename==""// mira si no se ha seleccionado ningún archivo
{$error "- Ningún archivo selecccionado para subir.<br>";}

elseif(
file_exists($folder.$filename) && $overwrite=="no")// comprueba si el archivo existe ya
$error "- El archivo <b>$filename</b> ya existe<br>";}

// comprobar tamaño de archivo

if($filesize 1// el archivo está vacío
{$error .= "- Archivo vacío.<br>";}
elseif(
$filesize $maxlimit// el archivo supera el máximo
{$error .= "- Este archivo supera el máximo tamaño permitido.<br>";}

$sep=explode('image/',$_FILES["imagen"]["type"]);
$tipo=$sep[1];

if(
$tipo == "gif" || $tipo == "jpeg" || $tipo == "jpg" || $tipo == "bmp")
{
$match "1"// Permite el archivo             
}
if(!
$match)
{
$error .= "- Este tipo de archivo no está permitido: $tipo<br>";}    

if(
$error)
{print 
"Se ha producido el siguiente error al subir el archivo:<br> $error"// muestra los errores
}
else
{
move_uploaded_file($_FILES['imagen']['tmp_name'], $folder.$filename.'.'.$tipo);
}  

//bd

$conexion = new mysqli("localhost","users","pass1w","eco");    
if(
$conexion)

 
$titulo $_POST['titulo'];
$t=$_POST['text'];
$insercion "INSERT INTO noticias (titulo, imagen,texto) VALUES ('$titulo','".$folder.$filename.".".$tipo."','$t')";
$result $conexion->query($insercion);        
$row_cnt $conexion->affected_rows;

if(
$row_cnt 0)
{   
// Desplegar la lista 
 
include('tabla.php');
 exit();}  

else
{echo 
"archivo no almacenado";}                            

}
else
{echo 
"no hay conexion";}    
?>
eco.sql (mi base de datos)
Código PHP:

CREATE TABLE administradores 
(
  
id_admin int not null auto_increment primary key,
  
administrador             VARCHAR(20NOT NULL,
  
contrasena            VARCHAR(10NOT NULL
);


create table noticias(
id_noticias int not null auto_increment primary key,
id_admin int,
id_usuario int,
titulo varchar(40),
imagen varchar(255),
texto  text NOT NULL ,
fecha date,
hora time
); 
Si necesitan más infor por favor no duden en pedirmelo, la verdad ya tengo bastante tiempo batallando con esto, así que si me pudieran ayudar.

Gracias por su atención!!!!1
  #2 (permalink)  
Antiguo 10/12/2013, 14:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar id de autor en un sistema de noticias php

¿Tu sistema tiene algún mecanismo de login o inicio de sesión?

De otra forma me parece imposible sacar el ID del usuario si no tienes dicho valor por ningún lado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/12/2013, 15:03
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: Capturar id de autor en un sistema de noticias php

Hola, pateketrueke, gracias por contestar tan rápido, y sí, aquí está el formulario para logear.

menu2.php

<div id="recuadrologin"> <!-- el recuadro que rodea el login -->

<form action="iniciar_admin.php" method="post" id="login"> <!-- Acción necesaria para el funcionamiento de login -->

<table style="position:relative;top:0px;left:0px; height:250px; width:300px;" > <!-- cuerpo del login -->
<tr>
<td align="center"> <!-- se alinea la palabra -->
<label style="font-size:25px;" align="center"><b>Login (Sólo Administradores) </b></label>
</td></tr>
<tr>
<td> <!-- Verifica que el logueo sea correcto -->
<label style="font-size:21px;" align="center"> Usuario:</label></td></tr>
<tr>
<td><input name="administrador" id="administrador" type="text" size="30" maxlength="20" style="font-size:1em; font-family:Arial, sans-serif;" /></td> <!-- caja de texto -->
</tr>
<tr>
<td><label style="font-size:21px;" align="center"> Contraseña:</label></td>
</tr>
<tr>
<td><input name="contrasena" id="contrasena" type="password" size="30" maxlength="20" style="font-size:1em; font-family:Arial, sans-serif;"/></td> <!-- caja de texto -->
</tr>
<td>
<button> <b>Entrar </b></button>
</td>
</table>
</form>
</div>


Y aca está el script para comprobar los datos

iniciar_admin.php

<?php
//se crea la conexion
mysql_connect("localhost", "root", "");

//seleccionamos la db
mysql_select_db("eco");

session_start();

$administrador = $_POST['administrador'];
$contrasena = $_POST['contrasena'];

if ( $administrador != "" && $contrasena != "" ){
$sql = mysql_query("SELECT * FROM administradores WHERE administrador='$administrador'");
if ($f = mysql_fetch_array($sql)){
if ($contrasena == $f['contrasena']){ //
$_SESSION['administrador'] = $f['administrador'];
header ("Location: admin/index.php");



} else {
echo "La contraseña es incorrecta";
echo "<br> <a href='index.php'>Regresar</a>";
}

} else {
echo "El usuario que ha ingresado no existe";
echo "<br> <a href='index.php'>Regresar</a>";

}
} else {
echo "No has ingresado los datos suficientes";
echo "<br> <a href='index.php'>Regresar</a>";

}

?>

No sé si es lo que me pedías
  #4 (permalink)  
Antiguo 10/12/2013, 15:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar id de autor en un sistema de noticias php

Pues yo no te pedí nada, sólo era un pregunta retórica.

A lo que me refiero, es que en tu script con el que inicias sesión almacenas algún valor del usuario, ¿verdad?

Pues entonces sería sencillo guardar el ID del usuario también, ¿no te parece?

Así ya puedes recuperar dicho valor cuando quieras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/12/2013, 15:35
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: Capturar id de autor en un sistema de noticias php

am, perdona mi ignorancia, pero cómo haría eso?
  #6 (permalink)  
Antiguo 10/12/2013, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar id de autor en un sistema de noticias php

¿El script de inicio de sesión no lo has programado tu?

Mira la siguiente linea:
Código PHP:
Ver original
  1. $_SESSION['administrador'] = $f['administrador'];

¿Qué es lo que hace dicha linea de código?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/12/2013, 15:52
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: Capturar id de autor en un sistema de noticias php

En efecto esa parte de código me lo hizo mi maestro de programación web, y supongo que está comparando el nombre del administrador insertado en el formulario con el nombre del administrador de la base de datos
  #8 (permalink)  
Antiguo 10/12/2013, 15:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar id de autor en un sistema de noticias php

Bueno, pues ahí tienes un grave problema, sino sabes programar ni comprendes lo que alguien más ha programado, ¿cómo esperas solucionar tu problema?

Entiende que en el foro ayudamos a resolver problemas, no vamos a hacerte el código.

Te invito leer las normas del foro para que entiendas como funciona.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: administrador
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 20:09.