bladwer
Usuario (Argentina)
LG CONFIRMA UN FALLO DE HARDWARE EN TODOS LOS LG G4 Los propietarios de los LG G4 han estado luchando con el teléfono en los últimos meses, quejándose de un problema de bootloop muy misterioso. El problema hacia que el LG G4 se reiniciará al azar y se quedaba atascado en un bootloop sin solución aparente. Hoy, LG finalmente ha confirmado oficialmente que el teléfono tiene un problema, lo malo es que nos se sabe si todos los smartphones LG G4 se ven afectados. La compañía ahora está ofreciendo la reparación de todos los teléfonos inteligentes afectados, ya que se ha encontrado una solución al problema. LG G4 ha dado la siguiente declaración: LG Electronics es consciente de un problema con el smartphone LG G4, que ha sido identificado, parece ser un contacto flojo entre los componentes. Los clientes que están experimentando problemas con su LG G4 deben contactar a su proveedor local, donde compraron su telefono, para su reparación bajo garantía completa. Los clientes que compraron sus dispositivos G4 libres en comercios minoristas deben ponerse en contacto con un centro de servicio de LG, las condiciones de garantía serán diferentes. LG Electronics se compromete a proporcionar los más altos estándares de calidad del producto y servicio al cliente y se disculpa por los inconvenientes causados. Es un poco extraño como LG trata a aquellos que han adquirido el telefono por otro lado que no sea una compañía de teléfono, es algo bastante extraño teniendo en cuenta que el fallo es culpa del fabricante.

ÚLTIMA ETAPA DE “SEGUI TU ESTILO” CON NFS Buenos Aires, 2 de Febrero de 2016. – Ya está abierta la quinta fase del concurso SeguiTuEstilo y ganá por el tuneo de tu auto. En esta cuarta etapa, TUNEADO, el concursante deberá subir la captura del tuneo de su auto virtual de Need For Speed. Estás a un paso de ser el ganador…apurate a participar y completar la 5ta fase! El pasado 17 de diciembre EA lanzó el Concurso Celebración Need For Speed en Argentina, en el cual la comunidad gamer participa por la customización de su auto junto con la incorporación de una PS4 en el tuneo. Se podrá particiar hasta el 19 de febrero de 2016, fecha en la cual finaliza la última instancia del concurso. Durante estos meses, los participantes deberán superar las misiones que se desbloquearán en las fechas establecidas en el reglamento. Para conocer las misiones y participar del concurso, ingresa en http://seguituestilo.com/ Fanpage: https://www.facebook.com/SeguiTuEstiloNFS/?fref=ts El concurso consta de 5 fases/instancias desbloqueables, que corresponden a cada ícono de Need For Speed, en las cuales el concursante irá sumando puntos por cada instancia. No podrá pasar a la siguiente fase sin haber completado la anterior. Fase 1: EQUIPO –Invitá amigos a tu equipo y sumá puntosFase 2: FORAJIDO – Subí la foto con tu autoFase 3: ESTILO – Armá tu lema de corredorFase 4: VELOCIDAD – Respondé correctamente y sumá puntosFase 5: TUNEADO – Subí la captura de tu auto tuneado en Need For Speed*Para conocer las mecánicas de participación y reglamento ingresa al sitio oficial http://seguituestilo.com/ *Válido sólo para habitantes de Argentina
NVIDIA MUESTRA LIGHT FIELD VR, LOS LENTES PERFECTOS PARA LA REALIDAD VIRTUAL Nvidia esta asociada con la Universidad de Stanford para desarrollar una nueva generación de lentes de realidad virtual que utiliza un campo de luz estereoscopica lo que da una profundidad de campo mucho más natural en entornos virtuales. Este fin de semana en RV LA 2016 en el sur de California, la compañía mostró un prototipo de los que ellos llaman Light Field VR, el algoritmo que utiliza Nvidia para calcular todas las imágenes con el campo de luz, esta basado en CUDA. El proyecto de Nvidia y Stanford parece llevar las cosas al siguiente paso, lo mejor de todo que este sistema parece que no produce efectos secundarios de mareo. El prototipo “Light Field stereoscope” utiliza una tecnología de dos capas de pantallas LCD separadas por unos 5 milímetros, ofreciendo así un campo de luz entre las imágenes que ayuda al ojo humano a establecer un foco más natural al mirar los objetos. “La forma en que percibimos el mundo natural es mucho más complejo que el efecto que puede dar la luz estereoscópico,” “Nuestros ojos pueden enfocar a diferentes distancias, incluso un solo ojo puede ver en 3D”. Tal vez la parte más fascinante de el Light Field VR es que permite a los ojos del usuario responder de forma más natural, esto reduce la fatiga y de forma más natural replica la forma en que percibimos el mundo en la vida real. Los cascos de realidad virtual de consumo actual presentan dos importantes restricciones, la primera es que tienen pantallas estrechas con un campo de visión situados en la periferia del campo visual del espectador y la segunda es que tienen diseños muy voluminosos con correas muy estrechas en la cabeza. Nvidia quiere cambiar todo esto con su sistema de pantalla de microlentes, ya que permitirá al mismo tiempo un campo de visión más amplio, y proporcionar gafas más compactas para el usuario, para una experiencia de visualización más cómoda. Al parecer, es una muy buena idea pero esta tecnología no estará lista hasta dentro de 3/5 años.
UN SENADOR QUE ESTABA EN CONTRA DE LOS VÍDEO JUEGOS VIOLENTO VA A LA CÁRCEL POR CONTRABANDO DE ARMAS Parece chiste no? Pero no lo es, estamos hablando de un ex senador del estado de California, Leland Yee, el cual se convirtió en un villano para la industria de los vieo juegos, por sus afirmaciones extravagantes con respecto a la relación entre los videojuegos y el comportamiento violento. En un movimiento absurdo, Yee trató de aprobar una ley que prohibiría la venta de video juegos violentos a los niños. Afortunadamente, prevaleció el sentido común y no tuvo éxito, pero esto enfureció a un gran número de personas. Hoy día no tenemos evidencia clara para vincular la violencia con los video juegos, algunos estudiosos sostienen que tiene el efecto contrario. La capacidad de anular las frustraciones de uno en un mundo virtual reduce la probabilidad de hacer lo mismo en la vida real y causar daño. Pese a la aparente brújula moral impecable de Yee , parece que no es un ciudadano respetuoso de la ley. En julio pasado, Yee se declaró culpable de cargos de extorsión en relación con dos empresas que vendían armas de contrabando. Recientemente, fue condenado a cinco años de prisión por su participación. De acuerdo con un informe, Yee se enfrenta a una pena de prisión de 20 años y una multa de $ 250.000 dolares. Es evidente que la violencia en los videojuegos siempre gana una gran cantidad de atención con los medios y siempre esta la discusión de los políticos, el cual claramente no tienen ningun conocimiento de la industria.
REVIEW ASUS MAXIMUS VII FORMULA Aunque ya tenemos en el mercado la nueva plataforma LGA 1151, muchos usuarios aún utilizan la plataforma LGA 1150, y es por eso que le traemos a estos usuarios el review de la Asus Maximus VII Formula, por si quieren actualizar la placa madre de su sistema sin cambiar CPU ni memorias ram, y están en busca de un producto de alta gama. Como su nombre indica, esta placa madre pertenece a la linea Maximus VII la cual se basa en el chipset Z97, y este modelo en especial posee ciertas tecnologías específicas como ROG Armor y CrossChill Copper, ideal para aquellos usuarios de sistemas de refrigeración líquida personalizados. Además como todo producto ROG posee una gran cantidad de tecnologías tanto para gaming como para overclock, estando listas para ofrecer el mejor rendimiento posible al usuario entusiasta. Características y Tecnologías Una de sus tecnologías destacadas es CrossChill Copper, un bloque de refrigeración líquida formado por cobre que permite aumentar la refrigeración del sistema de regulación de poder de la placa madre que alimenta el procesador en caso de que tengamos un sistema de refrigeración líquida personalizado. Al igual que en las placas madre Maximus VIII que revisamos estos últimos días, posee la tecnología LANGuard que permite proteger a la placa madre de descargas estáticas o picos de tensión que se reciban a través del conector Ethernet. Otra tecnología importante es GameFirst III que permite priorizar paquetes de juegos para aumentar el rendimiento del internet en los mismos, y evitar problemas de lag o ping demasiado elevado cuando se tienen abiertas varias aplicaciones que utilicen internet. Utiliza el sistema de sonido SupremeFX Formula 2014, exclusivo de este modelo, el cual cuenta con un procesador de sonido de alta calidad con una cubierta anti-emisiones electromagnéticas, junto a un chip Sonic SenseAmp que detecta el valor de la impedancia de los auriculares para ajustar la amplificación necesaria, un DAC Cirrus Logic CS4398 , capacitores WIMA, y capacitores ELNA, ambos diseñados para sistemas de sonido. También posee un botón Sonic SoundStage que permite elegir entre cuatro escenarios diferentes para los distintos tipos de juegos. Incluye una tarjeta mPCIe Combo III que posee de un lado un módulo de conexión Wi-Fi + Bluetooth, y del otro un puerto M.2, brindando grandes posibilidades de conectividad. Gracias al uso de reguladores en la placa madre, posee una salida estable de 5V en todos sus puertos USB, tanto traseros como frontales, ideal para asegurar el funcionamiento correcto de dispositivos sensibles como aquellos referidos al audio. Por último está su característica más importante, su armadura ROG Armor, que proteje tanto la parte frontal como la parte trasera de la placa madre, cubriéndola del calor de otros componentes, aumentando su rigidez, y ayudando a refrigerar el calor generado por diferentes componentes de la placa madre, además de obviamente mejorar su estética.
LOGITECH ABANDONA EL MERCADO DE MOUSE OEM, PARA ENFOCARSE AL GAMING Esta semana Logitech anunció que había completado su salida del negocio de Mouse OEM. La compañía ya no vendera mas mouse OEM, que durante mucho tiempo representaron una gran parte de los ingresos de Logitech, ahora la empresa se centrara en nuevas categorías de productos de alta calidad para los mercados minoristas. Logitech fue una de las primeras empresas de Mouse para PC en los años 80, durante décadas, los Mouses se suministraban con las PC de diversos fabricantes y durante mucho tiempo la marca Logitech era sinónimo de calidad. De hecho, el mouse Logitech U96 se encuentra entre los mouse ópticos más famosos del mundo. Sin embargo, muchas cosas han cambiado para Logitech en los últimos años. Las ventas de PCs de escritorio empezaron a estancarse a mediados del año 2000 con la intensificación de la competencia, los márgenes OEM se redujeron drásticamente. En algún momento, el negocio OEM dejó de tener sentido para Logitech, no hubo crecimiento y la rentabilidad era mínima. En marzo pasado, la compañía anunció planes para detener la venta de dispositivos OEM, y en diciembre Logitech realizo sus últimos envíos para agotar sus inventarios por completo. Durante el cuarto trimestre del pasado año, los ingresos por periféricos OEM de Logitech ascendieron apenas el 4,45% de los ingresos totales de la compañía, por lo que tiene toda lógica abandonar dicho mercado.
LA NVIDIA GEFORCE GTX TITAN X2 LLEGARÍA EN ABRIL Si estuvieron leyendo nuestros contenidos relacionados con GPUs, seguro saben que estamos preparados para un gran año, la GPU puede hacer historia en 2016. En la GPU Technology Conference de NVIDIA en abril, deberíamos ver a la empresa revelar la mejor GPU que alguna vez ha hecho, la sucesora de la GeForce GTX Titan X. La próxima generación de tarjetas se podría llamar GTX Titan X2, y estaría llegando con memoria HBM2, 16GB/32GB de memoria HBM2 alcanzando un ancho de banda de 1 Terabyte, una verdadera locura. Para septiembre de este año, tendremos una linea completa de productos con memoria HBM2 y GDDR5X, la sucesora de la Titán X con memoria HBM2. Por junio, deberíamos ver a NVIDIA revelar una nueva GeForce GTX 980 con memoria GDDR5X, llegando a los 448GB / s de ancho de banda en la memoria. Luego tenemos a la bestial sucesora de la GeForce GTX 980 Ti, que también tendrá memoria HBM2, creemos que sea muy probable que llegue en algún momento a finales de año, dependiendo del movimiento de AMD en el sector de las GPU entusiastas. La sucesora de la Titán X será increíblemente rápida (entre 1.5 y 1.8x mas potente que la Titán X) y la nueva sucesora de la GTX 980 con memoria GDDR5X GTX sera 1,5 veces mas rápida. Estas dos tarjetas llenarán las partes más importantes del mercado, con el arma secreta esperando en la oscuridad, la sucesora de la GTX 980 Ti.

Prueba estos 5 efectos para :hover hechos unicamente con CSS3, estan listos para aplicar, solo pega el codigo CSS en tu hoja de estilos. Efecto “Bump up” Excelente para usar una lista de imágenes horizontal, lo que hace es elevar el elemento modificando el margin-top. Demo → [color=#000000] .ex1 img{ border: 5px solid #ccc; float: left; margin: 15px; -webkit-transition: margin 0.5s ease-out; -moz-transition: margin 0.5s ease-out; -o-transition: margin 0.5s ease-out; } .ex1 img:hover { margin-top: 2px; } [/color] Efecto “Stack & Grow” Al pasar el cursor por encima de la imagen, esta aumenta su anchura y altura mediante una transición CSS. Demo → [color=#000000]/*Example 2*/ #container { width: 300px; margin: 0 auto; } #ex2 img{ height: 100px; width: 300px; margin: 15px 0; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; -o-transition: all 1s ease; } #ex2 img:hover { height: 133px; width: 400px; margin-left: -50px; }[/color] Efecto “Fade Text in” Este efecto es bastante interesante, es un div que contiene una imagen y un texto, primero se alinea la imagen a la izquierda y al div contenedor se le definen las propiedades line-height: 0px y color: transparent, para que cuando el cursor pase por la imagen, esto cambie de manera animada, dando el efecto que el texto cae. Demo → [color=#000000]#ex3 { width: 730px; height: 133px; line-height: 0px; color: transparent; font-size: 50px; font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 300; text-transform: uppercase; -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; } #ex3:hover { line-height: 133px; color: #575858; } #ex3 img{ float: left; margin: 0 15px; }[/color] Efecto “Crooked Photo” Ideal para una galería de fotos, este efecto usa la propiedad CSS3 -transform: rotate, hace que cuando el cursor pase por la imagen esta gire 7 grados a la izquierda. Demo → [color=#000000]#ex4 { width: 800px; margin: 0 auto; } #ex4 img { margin: 20px; border: 5px solid #eee; -webkit-box-shadow: 4px 4px 4px rgba(0,0,0,0.2); -moz-box-shadow: 4px 4px 4px rgba(0,0,0,0.2); box-shadow: 4px 4px 4px rgba(0,0,0,0.2); -webkit-transition: all 0.5s ease-out; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; } #ex4 img:hover { -webkit-transform: rotate(-7deg); -moz-transform: rotate(-7deg); -o-transform: rotate(-7deg); }[/color] Efecto “Fade In and Reflect” Este efecto solo es compatible con navegadores -webkit, ya que usa la propiedad -webkit-box-reflect, que solo es soportada por Chrome y Safari, de igual manera se ve bastante bien. Demo → [color=#000000]#ex5 { width: 700px; margin: 0 auto; min-height: 300px; } #ex5 img { margin: 25px; opacity: 0.8; border: 10px solid #eee; /*Transition*/ -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; /*Reflection*/ -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(.7, transparent), to(rgba(0,0,0,0.1))); } #ex5 img:hover { opacity: 1; /*Reflection*/ -webkit-box-reflect: below 0px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(.7, transparent), to(rgba(0,0,0,0.4))); /*Glow*/ -webkit-box-shadow: 0px 0px 20px rgba(255,255,255,0.8); -moz-box-shadow: 0px 0px 20px rgba(255,255,255,0.8); box-shadow: 0px 0px 20px rgba(255,255,255,0.8); }[/color]
En este tutorial desarrollaremos un sistema de noticias (tipo blog) que puede ser implementado en cualquier proyecto web en el que estéis trabajando. Este sistema incluye un archivo para mostrar las noticias, otro para añadir una nueva noticia, otro para modificarla y, por último, uno para eliminarlas Paso 1. Creamos la tabla en la base de datos. Copia, pega y ejecuta el siguiente código SQL: CREATE TABLE `noticias` ( `id` int(11) NOT NULL AUTO_INCREMENT , `titulo` varchar(100) NOT NULL , `fecha` datetime NOT NULL , `texto` text NOT NULL , PRIMARY KEY (`id`) ) Paso 2. Creamos el archivo de conexión con la base de datos. <?php // Realizamos la conexión con la base de datos $db_host = ""; // Servidor donde está alojada la base de datos $db_name = ""; // Nombre de la base de datos $db_user = ""; // Usuario de la base de datos $db_password = ""; // Contraseña de la base de datos $db_table = "noticias"; // Nombre de la tabla de la base de datos $conexion = mysql_connect($db_host, $db_user, $db_password) or die("No se ha podido realizar la conexión con la base de datos. Error: ".mysql_error()); mysql_select_db($db_name, $conexion); ?> Paso 3. Ahora vamos a crear el archivo que incluya todas las noticias. Este consta de dos partes. Mediante una condicional (if) haremos que muestre una noticia según la id que recibe por medio de GET. Si no GET no recibe ningún valor, se muestran todas las noticias. Para entenderlo mejor, veamos el código. <?php include("conexion.php"); // Incluimos nuestro archivo de conexión con la base de datos if(isset($_GET['noticia'])) { if(!empty($_GET['noticia'])) // Si el valor de "noticia" no es NULL, continua con el proceso { $id_noticia = (int) mysql_real_escape_string($_GET['noticia']); $query_noticias = mysql_query("SELECT titulo, fecha, texto FROM ".$db_table." WHERE id = '".$id_noticia."' LIMIT 1"); // Ejecutamos la consulta if(mysql_num_rows($query_noticias) > 0) // Si existe la noticia, la muestra { while($columna = mysql_fetch_assoc($query_noticias)) // Realizamos un bucle que muestre todas las noticias, utilizando while. { echo ' <table> <tr> <td>'.$columna['titulo'].'</td> <td>'.$columna['fecha'].'</td> </tr> <tr> <td colspan="2">'.$columna['texto'].'</td> </tr> <tr> <td><a href="./">Atrás</a></td> </tr> </table> '; } } else { echo 'La noticia que solicitas, no existe.'; // Si no, muestra un error } } else { echo 'Debes seleccionar una noticia.'; // Si GET no recibe ningún valor, muestra un error } } else { $query_noticias = mysql_query("SELECT * FROM ".$db_table.""); // Ejecutamos la consulta $limite = 100; // Número de carácteres a mostrar antes de el "Leer más" while($columna = mysql_fetch_assoc($query_noticias)) // Realizamos un bucle que muestre todas las noticias, utilizando while. { echo ' <table> <tr> <td>'.$columna['titulo'].'</td> <td>'.$columna['fecha'].'</td> </tr> <tr> <td colspan="2">'.substr($columna['texto'], 0, $limite).' [...]</td> <!-- Utilizamos la función substr para mostrar un determinado número de carácteres. Ver Ver http://www.php.net/manual/es/function.substr.php --> </tr> <tr> <td colspan="2"><a href="?noticia='.$columna['id'].'">Leer más</a></td> <!-- Incluimos un enlace para leer la noticia entera --> </tr> </table> '; } } ?> Paso 4. Ahora tenemos que crear los archivos que añadan, modifiquen y eliminen las noticias. Dejo los respectivos códigos: nueva_noticia.php: Con este archivo lo que hacemos es, mediante INSERT de SQL, insertar un nuevo registro en la base de datos que contendrá la noticia. <?php include("conexion.php"); // Incluimos nuestro archivo de conexión con la base de datos if(isset($_POST['añadir'])) // Si el boton de "añadir" fué presionado ejecuta el resto del código { $titulo = mysql_real_escape_string($_POST['titulo']); // Recibimos el valor del <input name="titulo"... $texto = mysql_real_escape_string($_POST['texto']); // Recibimos el valor de la <textarea name="titulo"... if(!empty($titulo) && !empty($texto)) // Comprobamos que los valores recibidos no son NULL { $query_NuevaNoticia = mysql_query("INSERT INTO ".$db_table." SET titulo = '".$titulo."', fecha = NOW(),texto = '".$texto."'"); // Realizamos una consulta a la base de datos para insertar la nueva notica if($query_NuevaNoticia) { echo 'La noticia se añadió correctamente a la base de datos.'; // Si el registro (la noticia) se insertó en la base de datos, mostramos este mensaje } else { echo 'La noticia no pudo ser insertada en la base de datos'; // Si el registro (la noticia) no se insertó en la base de datos, mostramos este mensaje } } else { echo 'Los campos no pueden estar vacios. Rellénalos para insertar la noticia en la base de datos'; // Si los valores recibidos por los campos de texto están vacios, no inserta el registro y muestra este mensaje } } ?> <form action="nueva_noticia.php" method="post"> <!-- Creamos el formulario, utilizando la etiqueta form, cuyo atributo action="" indicará donde se procesará el formulario --> Título de la noticia: <input name="titulo" type="text" /> <br /> Texto de la noticia: <textarea name="texto"></textarea> <br /> <input type="submit" name="añadir" value="Añadir noticia" /> </form> modificar_noticia.php: Para modificar una noticia utilizaremos este archivo, que hace uso de UPDATE para actualizar un registro. <?php include("conexion.php"); // Incluimos nuestro archivo de conexión con la base de datos $query_MostrarTitulos = mysql_query("SELECT id, titulo, fecha FROM ".$db_table.""); // Ejecutamos la consulta while($columna_MostrarTitulos = mysql_fetch_assoc($query_MostrarTitulos)) // Realizamos un bucle que muestre todas las noticias, utilizando while. { echo '<a href="?noticia='.$columna_MostrarTitulos['id'].'">'.$columna_MostrarTitulos['titulo'].' / '.$columna_MostrarTitulos['fecha'].'</a> <br />'; // Mostramos un enlace para modificar cada noticia } if(isset($_POST['modificar'])) // Si el boton de "modificar" fúe presionado ejecuta el resto del código { $id = (int) mysql_real_escape_string($_POST['id']); $titulo = mysql_real_escape_string($_POST['titulo']); $texto = mysql_real_escape_string($_POST['texto']); $query_modificar = mysql_query("UPDATE ".$db_table." SET titulo = '".$titulo."', fecha = NOW(), texto = '".$texto."' WHERE id = '".$id."'"); // Ejecutamos la consulta para actualizar el registro en la base de datos if($query_modificar) { echo 'La noticia se modificó corectamente'; // Si la consulta se ejecutó bien, muestra este mensaje } else { echo 'La noticia no se modificó'; // Si la consulta no se ejecutó bien, muestra este mensaje } } if(isset($_GET['noticia'])) { $id_noticia = (int) mysql_real_escape_string($_GET['noticia']); // Recibimos el id de la noticia por medio de GET $query_NoticiaCompleta = mysql_query("SELECT id, titulo, texto FROM ".$db_table." WHERE id = '".$id_noticia."' LIMIT 1"); // Ejecutamos la consulta $columna_MostrarNoticia = mysql_fetch_assoc($query_NoticiaCompleta); echo ' <form action="modificar_noticia.php" method="post"> <!-- Creamos el formulario, utilizando la etiqueta form, cuyo atributo action="" indicará donde se procesará el formulario --> Título de la noticia: <input name="titulo" type="text" value="'.$columna_MostrarNoticia['titulo'].'" /> <br /> Texto de la noticia: <textarea name="texto">'.$columna_MostrarNoticia['texto'].'</textarea> <br /> <input type="hidden" name="id" value="'.$columna_MostrarNoticia['id'].'" /> <!-- Creamos un campo de texto oculto para pasar el id de la noticia --> <input type="submit" name="modificar" value="Modificar noticia" /> </form> '; } ?> eliminar_noticia.php: Este archivo lo utilizaremos para eliminar una noticia de la base de datos, utilizando DELETE. <?php include("conexion.php"); // Incluimos nuestro archivo de conexión con la base de datos $query_MostrarTitulos = mysql_query("SELECT id, titulo, fecha FROM ".$db_table.""); // Ejecutamos la consulta while($columna_MostrarTitulos = mysql_fetch_assoc($query_MostrarTitulos)) // Realizamos un bucle que muestre los títulos de las noticias, utilizando while. { echo $columna_MostrarTitulos['titulo'].' - <a href="?noticia='.$columna_MostrarTitulos['id'].'">Eliminar</a> <br />'; // Mostramos el titulo y un enlace para eliminar la noticia } if(isset($_GET['noticia'])) { $id = (int) mysql_real_escape_string($_GET['noticia']); $query_eliminar = mysql_query("DELETE FROM ".$db_table." WHERE id = '".$id."'"); // Ejecutamos la consulta para eliminar el registro de la base de datos if($query_eliminar) { echo 'La noticia se eliminó corectamente'; // Si la consulta se ejecutó bien, muestra este mensaje } else { echo 'La noticia no se eliminó'; // Si la consulta no se ejecutó bien, muestra este mensaje } } ?> estilos.css Esta parte es opcional, es solo para añadirle un poco de CSS: body { background-color: #D7D8DA; font-family:Georgia, "Times New Roman", Times, serif; } a, a:visited { color: #5D5E60; text-decoration:none; } a:hover { text-decoration: underline; } #menu { background-color: #DCDCDC; border:1px solid #A7A7A7; width: 260px; margin: auto; padding: 10px; margin-bottom: 10px; border-radius: 4px; -moz-border-radius:4px; -webkit-border-radius:4px; } #menu a{ color: #434444; text-decoration:none; } #menu a:hover{ text-decoration: underline; } #contenido { background-color: #B7B9C0; width: 900px; margin: auto; padding: 20px; border-radius: 4px; -moz-border-radius:4px; -webkit-border-radius:4px; } aclaro, el estilo no esta bien trabajado esta echo muy básico, recomiendo que prueben con un servidor local " localhost " cualquier problema no duden en consultar esto es un sistema básico que se necesita en cualquier web
En este tutorial aprenderemos a subir imágenes usando PHP. En PHP la creación de un gestor de imágenes es facilisma y realmente increíble el resultado que se puede obtener con solamente unos pocos minutos de trabajo. Utilizaremos un archivo php y un directorio (/imagenes) donde se almacenaran las imágenes que subamos. 1. Creamos el formulario Creamos el formulario: con dos inputs uno para subir la imagen y la otra para enviarla <form name="subir_imagen" method="post" enctype="multipart/form-data"> <input type="file" name="imagen" /><br /> <input type="submit" name="botEnviarImagen" value="Subir Imagen" /> </form> Se debe utilizar ‘enctype=”multipart/form-data’ para que se permita la subida de archivos a la página web. 2. PHP Una vez creado el formulario pasamos al código PHP: Primero comprobamos si se apretó el bóton de submit: <?php if(isset($_POST['botEnviarImagen'])){ Declaramos las variables del archivo y lo analizamos (pathinfo): $nameimagen = $_FILES['imagen']['name']; $tmpimagen = $_FILES['imagen']['tmp_name']; $extimagen = pathinfo($nameimagen); Mencionamos que extensiones queremos que se permitan, elegimos en qué carpeta queremos que se suban los archivos (en este caso la carpeta “imagenes”) y encriptamos el nombre del archivo a subir: $ext = array("bmp","gif","jpg","png"); $urlnueva = "imagenes/".md5($name . time()).'.'.$extimagen['extension']; Verificamos si está seleccionado el archivo, y validamos la extensión del mismo: if(is_uploaded_file($tmpimagen)){ if(array_search($extimagen['extension'],$ext)){ Si la extensión es una de las permitidas procedemos a subir la imagen a nuestro directorio web y la mostramos en pantalla con su URL respectivo: copy($tmpimagen,$urlnueva); echo '<img src="'.$urlnueva.'" /><br>'; echo "Tu imagen (URL): <a href='$urlnueva'>$urlnueva</a>"; } Finalizamos mostrando los textos negativos de las dos anteriores validaciones y cerramos el if(isset($_POST['botEnviarImagen'])){: else { echo "Solo se permiten imágenes con formato bmp, jpg, gif o png<br>"; } } else { echo "Selecciona una imagen."; } } ?> 3. Codigo Final Si seguiste correctamente el tutorial, el codigo al final deberia quedarte mas o menos asi: <form name="subir_imagen" method="post" enctype="multipart/form-data"> <input type="file" name="imagen" /><br /> <input type="submit" name="botEnviarImagen" value="Subir Imagen" /> </form> <?php if(isset($_POST["botEnviarImagen"])){ $nameimagen = $_FILES['imagen']['name']; $tmpimagen = $_FILES['imagen']['tmp_name']; $extimagen = pathinfo($nameimagen); $ext = array("bmp","gif","jpg","png"); $urlnueva = "imagenes/".md5($name . time()).'.'.$extimagen['extension']; if(is_uploaded_file($tmpimagen)){ if(array_search($extimagen['extension'],$ext)){ copy($tmpimagen, $urlnueva); echo '<img src="'.$urlnueva.'" /><br>'; echo "Tu imagen (URL): <a href='$urlnueva'>$urlnueva</a>"; } else { echo "Solo se permiten imágenes con formato bmp, jpg, gif o png<br>"; } } else { echo "Selecciona una imagen."; } } ?> Explicación de las funciones usadas: pathinfo(): devuelve una matriz asociativa que contiene información acerca de path. isset(): Determina si una variable está definida y no es NULL array(): Estas funciones permiten interactuar y manipular arrays (matrices) de varias maneras. Los array son esenciales para almacenar, manejar y operar conjuntos de variables. md5(): Calcula el hash MD5 de str utilizando el » algoritmo de resumen de mensaje MD5 de RSA Data Security, Inc. y devuelve ese hash. is_uploaded_file(): Comprueba si se subió un archivo o es nulo. array_search(): Busca un valor determinado en un array y devuelve la clave correspondiente en caso de éxito. copy(): Copia el archivo subido a nuestro directorio marcado entre paréntesis. Descargar Complementos