elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1] 2
1  Programación / PHP / Guardar una imagen y su miniatura en: 17 Julio 2010, 06:46 am
Hola como les va bueno queria mostrarles este Script el cual espero que a alguien le sirva lo use para un proyecto..

Antes de todo se debe de tener instalada la libreria GD,si no la tenemos activada solo tenemos que modificar el archivo php.ini que se encuentra en C:\Windows (puede variar según tu versión de Windows), y agregar la línea extension=php_gd2.dll en la sección "Dynamic Extensions". El archivo php_gd2.dll debe estar en la carpeta "extensions" dentro del directorio donde instalaste el php, por ejemplo "C:\php\extensions".


El formulario de upload y el script php está en una sola página, la nombré como subida.php:
Código
  1. <?php
  2. // Verificamos que el formulario no ha sido enviado aun
  3. $postback = (isset($_POST["enviar"])) ? true : false;
  4. if($postback){
  5.  // Nivel de errores
  6.  error_reporting(E_ALL);
  7.  // Constantes
  8.  # Altura de el thumbnail en píxeles
  9.  define("ALTURA", 100);
  10.  # Nombre del archivo temporal del thumbnail
  11.  define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podría ser:
  12. // define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
  13.  # Servidor de base de datos
  14.  define("DBHOST", "localhost");
  15.  # nombre de la base de datos
  16.  define("DBNAME", "test");
  17.  # Usuario de base de datos
  18.  define("DBUSER", "root");
  19.  # Password de base de datos
  20.  define("DBPASSWORD", "");
  21.  // Mime types permitidos
  22.  $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
  23.  // Variables de la foto
  24.  $name = $_FILES["foto"]["name"];
  25.  $type = $_FILES["foto"]["type"];
  26.  $tmp_name = $_FILES["foto"]["tmp_name"];
  27.  $size = $_FILES["foto"]["size"];
  28.  // Verificamos si el archivo es una imagen válida
  29.  if(!in_array($type, $mimetypes))
  30.    die("El archivo que subiste no es una imagen válida");
  31.  // Creando el thumbnail
  32.  switch($type) {
  33.    case $mimetypes[0]:
  34.    case $mimetypes[1]:
  35.      $img = imagecreatefromjpeg($tmp_name);
  36.      break;
  37.    case $mimetypes[2]:
  38.      $img = imagecreatefromgif($tmp_name);
  39.      break;
  40.    case $mimetypes[3]:
  41.      $img = imagecreatefrompng($tmp_name);
  42.      break;
  43.  }
  44.  $datos = getimagesize($tmp_name);
  45.  $ratio = ($datos[1]/ALTURA);
  46.  $ancho = round($datos[0]/$ratio);
  47.  $thumb = imagecreatetruecolor($ancho, ALTURA);
  48.  imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
  49.  switch($type) {
  50.    case $mimetypes[0]:
  51.    case $mimetypes[1]:
  52.      imagejpeg($thumb, NAMETHUMB);
  53.          break;
  54.    case $mimetypes[2]:
  55.      imagegif($thumb, NAMETHUMB);
  56.      break;
  57.    case $mimetypes[3]:
  58.      imagepng($thumb, NAMETHUMB);
  59.      break;
  60.  }
  61.  // Extrae los contenidos de las fotos
  62.  # contenido de la foto original
  63.  $fp = fopen($tmp_name, "rb");
  64.  $tfoto = fread($fp, filesize($tmp_name));
  65.  $tfoto = addslashes($tfoto);
  66.  fclose($fp);
  67.  # contenido del thumbnail
  68.  $fp = fopen(NAMETHUMB, "rb");
  69.  $tthumb = fread($fp, filesize(NAMETHUMB));
  70.  $tthumb = addslashes($tthumb);
  71.  fclose($fp);
  72.  // Borra archivos temporales si es que existen
  73.  @unlink($tmp_name);
  74.  @unlink(NAMETHUMB);
  75.  // Guardamos todo en la base de datos
  76.  #nombre de la foto
  77.  $nombre = $_POST["nombre"];
  78.  $link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
  79.  mysql_select_db(DBNAME, $link) or die(mysql_error($link));
  80.  $sql = "INSERT INTO tabla(nombre, foto, thumb, mime)
  81.    VALUES
  82.    ('$nombre', '$tfoto', '$tthumb', '$type')";
  83.  mysql_query($sql, $link) or die(mysql_error($link));
  84.  echo "Fotos guardadas";
  85.  exit();
  86. }
  87. ?>


El Html

Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>Imagen a Blob</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. </head>
  8. <body>
  9. <form name="frmimage" id="frmimage" method="post"
  10.        enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">
  11.        Nombre: <input type="text" id="nombre" name="nombre" /><br />
  12.        Imagen: <input type="file" id="foto" name="foto" /><br />
  13.        <input type="submit" name="enviar" id="enviar" value="Guardar" />
  14. </form>
  15. </body>
  16. </html>
  17.  
  18.  
  19. [code=sql]CREATE TABLE `tabla` (
  20.  `idfoto` int(3) NOT NULL AUTO_INCREMENT,
  21.  `nombre` varchar(255) NOT NULL DEFAULT '',
  22.  `foto` blob NOT NULL,
  23.  `thumb` blob NOT NULL,
  24.  `mime` varchar(40) NOT NULL DEFAULT '',
  25.  PRIMARY KEY  (`idfoto`)
  26. ) ;


Según el tipo MIME de la imagen, crearemos la miniatura con las funciones imagecreatefromjpeg(), imagecreatefromgif()  o imagecreatefrompng().

La función imagecopyresized() crea la miniatura de la imagen, aunque también podemos utilizar imagecopyresampled().

Espero que  les sirva de algo......
Saludos

[/code]
2  Programación / PHP / Una duda en: 10 Julio 2010, 23:29 pm
miren mii duda es esta :/
 
por que cuando hago esto, a las comillas ( "" ) les agrega un diagonal invertida ( \ )

$fp=fopen("$nombre.html","w");
fwrite($fp,$_POST['texto']);
fclose($fp)
 me explique?
3  Programación / Bases de Datos / Duda con Consulta Sql en: 1 Julio 2010, 01:57 am
Hola como estan necesito una mega ayuda para un proyecto que realizo tengo que Mostrar el apellido de cada empleado, así como la fecha de contratación y la fecha de revisión de salario, que es el primer día lunes después de cada seis meses de servicio. Etiquete la columna REVIEW.

 Formateo de las fechas para que aparezca en un formato similar a “Monday, the Thirty-First of July, 2000”

               
Last_Name        Hire_Date                                     Review
        King                      17-jun87       Monday, the Twenty-First of Dacember, 1987

4  Programación / PHP / Ratproxy. Herramienta de auditoría web. en: 17 Junio 2010, 05:39 am
Ratproxy es una aplicación elaborada y distribuida por Google bajo la Licencia Apache 2.0 que ayuda en el proceso de detección de errores, intrusiones o problemas en las web 2.0 que se desee (igual funciona para las que no son 2.0 pero está diseñada para eso). Esta herramienta funciona pasivamente analizando el tráfico generado entre el sitio analizado y el equipo donde la aplicación está corriendo. Obviamente es una herramienta importante para los desarrolladores web a fin de mantener sus sitios alejados de la manita caliente de algún hacker. Yo lo he estado probando en algunos sitios donde colaboro a veces y afortunadamente no me ha arrojado malos resultados.

Para poder utilizarlo es necesario descargarlo desde el sitio oficial. Ahora abrimos una terminal y vamos a la carpeta donde se haya descargado el archivo, ejecutamos
Código:
tar xvzf ratproxy-1.51.tar.gz
Con esto se descomprime la carpeta contenida dentro del archivo, ahora navegamos hasta ella y ejecutamos make para realizar la instalación de ratproxy.
Código:
cd ratproxy/
Código:
sudo make
Al finalizar la ejecución ya tendremos la aplicación lista para ser ejecutada.
Código:
./ratproxy -v /tmp/ -w log.txt -d elsitioaexplorar.com -lfscm

A partir de aquí ratproxy estará en modo escucha en el puerto 8080 de nuestro equipo, esperando por que el sitio donde estemos navegando coincida con elsitioaexplorar.com y vaciará los resultados de sus análisis a log.txt. Por lo tanto también es necesario que configuremos nuestro navegador para que tenga como proxy a 127.0.0.1 (localhost) en el puerto 8080. Aquí pongo una captura de esta configuración en el firefox.



Ahora simplemente navegamos al sitio de nuestro interés.

Como la línea para ejecutar ratproxy es muy larga hice un mini script bash para que simplemente introduzcamos como parámetro el sitio que deseamos explorar, si no especificamos un sitio ratproxy examinará todo lo que salga a su paso. El script tiene que ser copiado a un editor de textos y guardado en la misma carpeta que ratproxy, luego darle permisos de ejecución con:
Código:
chmod +x escuchar

Y ahora simplemente se ejecuta

Código:
./escuchar elsitioaexplorar.com

Así ya  no hay que aprenderse la pinche instrucción.
Si quieren ver los resultados del análisis en una página html en lugar de interpretar los resultados del txt ejecutamos
Código:
./ratproxy-report.sh log.txt > resultados.html

Script Bash
Citar
#!/bin/bash
echo $1
./ratproxy -v /tmp/ -w log.txt -d $1 -lfscm


5  Programación / .NET (C#, VB.NET, ASP) / Source Firma Digital C# 2010 en: 15 Junio 2010, 10:54 am
Hola como les va no se si recuerdan hace tiempo pregunte como implementar un algoritmo de firma digital bueno investigando pude terminar el programa y aqui les doy el source lo programe en C# 2010 aver espero sus comentarios.

Muy bien he terminado una aplicación en c# express 2010, este conjunto de aplicaciones fue implementado con el fin de entender mejor el uso de la firma electrónica.
La aplicación cuenta con ejemplos de:
Criptografía simétrica
      Data Encryption Standard (DES)
      Advanced Encryption Standard (AES)
Criptografía asimétrica
      Sistema criptográfico con clave pública (RSA)
      Digital Signature Algorithm (DSA)
Hasing
Firma electrónica


Descarga:

Código:
http://www.mediafire.com/?mmkzgolyjzz

Cualquier duda del Codigo me dicen





6  Programación / Desarrollo Web / El hacker.net cumple con estandares en: 15 Junio 2010, 10:07 am
Bueno miren estoy haciendo una auditoria de una web de servicio movil de mi pais y se me ocurrio hacer uso de un poco de los cat´s que es la guia 3 en Cobit e hice la revision de la web en W3C  y miren lo que me dio son 14 errores,y con respecto al css, 16 errores los cuales los pongo para conocimiento de todos abajo esta con lo que es hedra
W3C Markup Validation Service
[/color][/size]
Código:
W3C Markup Validation Service

Check the markup (HTML, XHTML, …) of Web documents

    * Jump To:
    * Validation Output

Errors found while checking this document as XHTML 1.0 Transitional!
Result: 14 Errors
Address:
Encoding: iso-8859-1
Doctype: XHTML 1.0 Transitional
Root Element: html
Root Namespace: http://www.w3.org/1999/xhtml
Validators Donation Program LogoThe W3C validators rely on community support for hosting and development.
Donate and help us build better tools for a better web.
Options
Show Source Show Outline List Messages Sequentially Group Error Messages by Type
Validate error pages Verbose Output Clean up Markup with HTML Tidy

Help on the options is available.

↑ Top
Validation Output: 14 Errors

   1. Error Line 2, Column 74: syntax of attribute value does not conform to declared value

      <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es" xml:lang="">

      ✉

      The value of an attribute contained something that is not allowed by the specified syntax for that type of attribute. For instance, the “selected” attribute must be either minimized as “selected” or spelled out in full as “selected="selected"”; the variant “selected=""” is not allowed.
   2. Error Line 217, Column 125: required attribute "alt" not specified

      …inclusiones/plantillas/006/images/PostHeaderIcon.png" width="29" height="29" />

      ✉

      The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.

      Typical values for type are type="text/css" for <style> and type="text/javascript" for <script>.
   3. Error Line 221, Column 142: document type does not allow element "link" here

      …er.net/inclusiones/modulos/portada/style.css" type="text/css" media="screen" />

      ✉

      The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

      One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).
   4. Error Line 695, Column 10: end tag for element "div" which is not open

          </div>

      ✉

      The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

      If this error occurred in a script section of your document, you should probably read this FAQ entry.
   5. Error Line 696, Column 9: end tag for element "div" which is not open

         </div>

      ✉

      The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

      If this error occurred in a script section of your document, you should probably read this FAQ entry.
   6. Error Line 699, Column 8: end tag for element "div" which is not open

        </div>

      ✉

      The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

      If this error occurred in a script section of your document, you should probably read this FAQ entry.
   7. Error Line 46, Column 64: attributes construct error

      …><li><a href="http://www.elhacker.net/"class="active"><span><span>Portada</spa…

      ✉
   8. Error Line 46, Column 64: Couldn't find end of Start Tag a line 46

      …><li><a href="http://www.elhacker.net/"class="active"><span><span>Portada</spa…

      ✉
   9. Error Line 46, Column 80: Opening and ending tag mismatch: li line 46 and a

      …tp://www.elhacker.net/"class="active"><span><span>Portada</span></span></a></l…

      ✉
  10. Error Line 46, Column 80: Opening and ending tag mismatch: ul line 46 and li

      …tp://www.elhacker.net/"class="active"><span><span>Portada</span></span></a></l…

      ✉
  11. Error Line 46, Column 80: Opening and ending tag mismatch: div line 45 and ul

      …tp://www.elhacker.net/"class="active"><span><span>Portada</span></span></a></l…

      ✉
  12. Error Line 678, Column 11: Opening and ending tag mismatch: body line 28 and div

           </div>

      ✉
  13. Error Line 695, Column 10: Opening and ending tag mismatch: html line 2 and div

          </div>

      ✉
  14. Error Line 696, Column 3: Extra content at the end of the document

         </div>[/code
[size=10pt][color=red][center]Resultados del Validador CSS del W3C[/center][/color][/size]

[code]Resultados del Validador CSS del W3C para http://www.elhacker.net (CSS versión 2.1)
Disculpas! Hemos encontrado las siguientes errores (16)
URI : http://www.elhacker.net/inclusiones/plantillas/006/style.css
275 .logo Propiedad no válida : left Error de análisis sintáctico : {LogoLeft}px
276 .logo Propiedad no válida : top Error de análisis sintáctico : {LogoTop}px
277 .logo Propiedad no válida : width Error de análisis sintáctico : {LogoWidth}px
283 h1.logo-name Propiedad no válida : text-align Error de análisis sintáctico : {HorizontalAlign}
288 h1.logo-name, h1.logo-name a, h1.logo-name a:link, h1.logo-name a:visited, h1.logo-name a:hover Error de análisis sintáctico { {LogoNameFont}
291 Error de análisis sintáctico [:0; margin:0; color:]
291 Error de análisis sintáctico !important;
292 Error de análisis sintáctico }
297 .logo-text Propiedad no válida : text-align Error de análisis sintáctico : {HorizontalAlign}
302 .logo-text, .logo-text a Error de análisis sintáctico { {LogoSloganFont}
305 Error de análisis sintáctico [:0; margin:0; color:]
305 Error de análisis sintáctico !important;
306 Error de análisis sintáctico }
552 .artmenu ul a Propiedad no válida : border-color Error de análisis sintáctico : {PassiveBorderColor}
587 .artmenu ul li a:hover Propiedad no válida : border-color Error de análisis sintáctico : {HoveredBorderColor}
594 .artmenu ul li:hover > a Propiedad no válida : border-color Error de análisis sintáctico : {HoveredBorderColor}

↑ Top
HP LogoThe W3C validators are hosted on server technology donated by HP, and supported by community donations.
Donate and help us build better tools for a better web.
Información de CSS válida
body {
margin : 0 auto;
padding : 0;
background-color : #dbe5eb;
background-image : url('images/Page-BgTexture.jpg');
background-repeat : repeat;
background-attachment : scroll;
background-position : left top;
}
.Main {
position : absolute;
width : 100%;
left : 0;
top : 0;
}
.cleared {
float : none;
clear : both;
margin : 0;
padding : 0;
border : none;
font-size : 1px;
}
.Sheet {
overflow : hidden;
min-width : 35px;
min-height : 35px;
margin : 0 auto;
position : relative;
z-index : 0;
width : 1000px;
}
.Sheet-body {
position : relative;
z-index : 0;
margin : 13px;
}
.Sheet-tl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 0;
width : 17px;
height : 17px;
background-image : url('images/Sheet-s.png');
}
.Sheet-tr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
right : 0;
width : 17px;
height : 17px;
}
.Sheet-tr div {
position : absolute;
z-index : -1;
top : 0;
left : -17px;
width : 34px;
height : 34px;
background-image : url('images/Sheet-s.png');
}
.Sheet-bl {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 0;
width : 17px;
height : 17px;
}
.Sheet-bl div {
position : absolute;
z-index : -1;
top : -17px;
left : 0;
width : 34px;
height : 34px;
background-image : url('images/Sheet-s.png');
}
.Sheet-br {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
right : 0;
width : 17px;
height : 17px;
}
.Sheet-br div {
position : absolute;
z-index : -1;
top : -17px;
left : -17px;
width : 34px;
height : 34px;
background-image : url('images/Sheet-s.png');
}
.Sheet-tc {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 17px;
right : 17px;
height : 17px;
}
.Sheet-tc div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 100%;
height : 34px;
background-image : url('images/Sheet-h.png');
}
.Sheet-bc {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 17px;
right : 17px;
height : 17px;
}
.Sheet-bc div {
position : absolute;
z-index : -1;
top : -17px;
left : 0;
width : 100%;
height : 34px;
background-image : url('images/Sheet-h.png');
}
.Sheet-cl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 17px;
left : 0;
width : 17px;
bottom : 17px;
}
.Sheet-cl div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 34px;
height : 100%;
background-image : url('images/Sheet-v.png');
}
.Sheet-cr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 17px;
right : 0;
width : 17px;
bottom : 17px;
}
.Sheet-cr div {
position : absolute;
z-index : -1;
top : 0;
left : -17px;
width : 34px;
height : 100%;
background-image : url('images/Sheet-v.png');
}
.Sheet-cc {
position : absolute;
overflow : hidden;
z-index : -2;
top : 17px;
left : 17px;
right : 17px;
bottom : 17px;
background-image : url('images/Sheet-c.png');
}
.Sheet {
margin-top : -13px !important ;
}
div.Header {
margin : 0 auto;
position : relative;
z-index : 0;
width : 974px;
height : 125px;
}
div.Header-jpeg {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 974px;
height : 125px;
background-image : url('images/Header.jpg');
background-repeat : no-repeat;
background-position : center center;
}
.logo {
display : block;
position : absolute;
}
h1.logo-name {
display : block;
}
.logo-text {
display : block;
}
.artmenu a, .artmenu a:link, .artmenu a:visited, .artmenu a:hover {
text-align : left;
text-decoration : none;
outline : none;
letter-spacing : normal;
word-spacing : normal;
}
.artmenu, .artmenu ul {
margin : 0;
padding : 0;
border : 0;
list-style-type : none;
display : block;
}
.artmenu li {
margin : 0;
padding : 0;
border : 0;
display : block;
float : left;
position : relative;
z-index : 5;
background : none;
}
.artmenu li:hover {
z-index : 10000;
white-space : normal;
}
.artmenu li li {
float : none;
}
.artmenu ul {
visibility : hidden;
position : absolute;
z-index : 10;
left : 0;
top : 0;
background : none;
}
.artmenu li:hover > ul {
visibility : visible;
top : 100%;
}
.artmenu li li:hover > ul {
top : 0;
left : 100%;
}
.artmenu:after, .artmenu ul:after {
content : ".";
height : 0;
display : block;
visibility : hidden;
overflow : hidden;
clear : both;
}
.artmenu, .artmenu ul {
min-height : 0;
}
.artmenu ul {
background-image : url(images/spacer.gif);
padding : 10px 30px 30px 30px;
margin : -10px 0 0 -30px;
}
.artmenu ul ul {
padding : 30px 30px 30px 10px;
margin : -30px 0 0 -10px;
}
.nav {
position : relative;
margin : 0 auto;
width : 974px;
height : 25px;
z-index : 100;
}
.artmenu {
padding : 0 0 0 0;
}
.nav .l, .nav .r, .nav .r div {
top : 0;
position : absolute;
z-index : -1;
overflow : hidden;
height : 25px;
}
.nav .l {
left : 0;
right : 0;
}
.nav .r {
right : 0;
width : 0;
}
.nav .r div {
width : 974px;
right : 0;
}
.nav .l, .nav .r div {
background-position : left top;
background-repeat : no-repeat;
background-image : url('images/nav.png');
}
.artmenu ul li {
clear : both;
}
.artmenu a, .artmenu a span {
height : 25px;
display : block;
}
.artmenu a {
cursor : pointer;
text-decoration : none;
margin-right : 0;
margin-left : 0;
}
.artmenu a span span {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
color : #ecf3f9;
padding : 0 12px;
margin : 0 0;
line-height : 25px;
text-align : center;
background-image : url('images/item-center.png');
background-position : left top;
background-repeat : repeat-x;
}
.artmenu a:hover span span {
color : #27333a;
background-position : left -25px;
}
.artmenu li:hover a span span {
color : #27333a;
background-position : left -25px;
}
.artmenu a.active span span {
color : #c3d4df;
background-position : left -50px;
}
.nav .separator {
display : block;
width : 2px;
height : 25px;
background-image : url('images/item-separator.png');
}
.artmenu ul a {
display : block;
text-align : center;
white-space : nowrap;
height : 21px;
width : 176px;
overflow : hidden;
line-height : 21px;
margin-right : auto;
background-image : url('images/subitem-bg.png');
background-position : left top;
background-repeat : repeat-x;
border-width : 0;
border-style : solid;
}
.nav ul.artmenu ul span, .nav ul.artmenu ul span span {
display : inline;
float : none;
margin : inherit;
padding : inherit;
background-image : none;
text-align : inherit;
text-decoration : inherit;
}
.artmenu ul a, .artmenu ul a:link, .artmenu ul a:visited, .artmenu ul a:hover, .artmenu ul a:active, .nav ul.artmenu ul span, .nav ul.artmenu ul span span {
text-align : left;
text-indent : 12px;
text-decoration : none;
line-height : 21px;
color : #214763;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
}
.artmenu ul ul a {
margin-left : auto;
}
.artmenu ul li a:hover {
color : #000000;
background-position : 0% -21px;
}
.artmenu ul li:hover > a {
color : #000000;
background-position : 0% -21px;
}
.nav .artmenu ul li a:hover span, .nav .artmenu ul li a:hover span span {
color : #000000;
}
.nav .artmenu ul li:hover > a span, .nav .artmenu ul li:hover > a span span {
color : #000000;
}
.contentLayout {
margin-bottom : 1px;
width : 974px;
position : relative;
}
.Block {
overflow : hidden;
min-width : 15px;
min-height : 15px;
margin : 0 auto;
position : relative;
z-index : 0;
}
.Block-body {
position : relative;
z-index : 0;
margin : 7px;
}
.Block-tl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 0;
width : 7px;
height : 7px;
background-image : url('images/Block-s.png');
}
.Block-tr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
right : 0;
width : 7px;
height : 7px;
}
.Block-tr div {
position : absolute;
z-index : -1;
top : 0;
left : -7px;
width : 14px;
height : 14px;
background-image : url('images/Block-s.png');
}
.Block-bl {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 0;
width : 7px;
height : 7px;
}
.Block-bl div {
position : absolute;
z-index : -1;
top : -7px;
left : 0;
width : 14px;
height : 14px;
background-image : url('images/Block-s.png');
}
.Block-br {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
right : 0;
width : 7px;
height : 7px;
}
.Block-br div {
position : absolute;
z-index : -1;
top : -7px;
left : -7px;
width : 14px;
height : 14px;
background-image : url('images/Block-s.png');
}
.Block-tc {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 7px;
right : 7px;
height : 7px;
}
.Block-tc div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 100%;
height : 14px;
background-image : url('images/Block-h.png');
}
.Block-bc {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 7px;
right : 7px;
height : 7px;
}
.Block-bc div {
position : absolute;
z-index : -1;
top : -7px;
left : 0;
width : 100%;
height : 14px;
background-image : url('images/Block-h.png');
}
.Block-cl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 7px;
left : 0;
width : 7px;
bottom : 7px;
}
.Block-cl div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 14px;
height : 100%;
background-image : url('images/Block-v.png');
}
.Block-cr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 7px;
right : 0;
width : 7px;
bottom : 7px;
}
.Block-cr div {
position : absolute;
z-index : -1;
top : 0;
left : -7px;
width : 14px;
height : 100%;
background-image : url('images/Block-v.png');
}
.Block-cc {
position : absolute;
overflow : hidden;
z-index : -2;
top : 7px;
left : 7px;
right : 7px;
bottom : 7px;
background-image : url('images/Block-c.png');
}
.Block {
margin : 7px;
}
.BlockHeader {
position : relative;
overflow : hidden;
height : 30px;
z-index : 0;
line-height : 30px;
padding : 0 7px;
margin-bottom : 7px;
}
.BlockHeader-text {
white-space : nowrap;
color : #000000;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : bold;
line-height : 30px;
}
.BlockHeader .l, .BlockHeader .r, .BlockHeader .r div {
top : 0;
position : absolute;
z-index : -1;
overflow : hidden;
height : 30px;
}
.BlockHeader .l {
left : 0;
right : 6px;
}
.BlockHeader .r {
right : 0;
width : 6px;
}
.BlockHeader .r div {
width : 994px;
right : 0;
}
.BlockHeader .l, .BlockHeader .r div {
background-position : left top;
background-repeat : no-repeat;
background-image : url('images/BlockHeader.png');
}
.header-tag-icon {
display : inline-block;
background-position : left top;
background-image : url('images/BlockHeaderIcon.png');
padding : 0 0 0 24px;
background-repeat : no-repeat;
min-height : 17px;
margin : 0 0 0 5px;
}
.BlockContent {
overflow : hidden;
min-width : 1px;
min-height : 1px;
margin : 0 auto;
position : relative;
z-index : 0;
}
.BlockContent-body {
position : relative;
z-index : 0;
margin : 8px;
}
.BlockContent-body {
color : #1d262a;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
}
.BlockContent-body a:link {
color : #29577a;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
}
.BlockContent-body a:visited, .BlockContent-body a.visited {
color : #29577a;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
}
.BlockContent-body a:hover, .BlockContent-body a.hover {
color : #3672a1;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
}
.BlockContent-body ul {
list-style-type : none;
color : #4c6370;
margin : 0;
padding : 0;
}
.BlockContent-body li {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
text-decoration : none;
}
.BlockContent-body ul li {
padding : 0 0 0 13px;
background-image : url('images/BlockContentBullets.png');
background-repeat : no-repeat;
margin : 0.5em 0 0.5em 0;
line-height : 1.2em;
}
.Post {
overflow : hidden;
min-width : 15px;
min-height : 15px;
margin : 0 auto;
position : relative;
z-index : 0;
}
.Post-body {
position : relative;
z-index : 0;
margin : 11px;
}
.Post-tl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 0;
width : 7px;
height : 7px;
background-image : url('images/Post-s.png');
}
.Post-tr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
right : 0;
width : 7px;
height : 7px;
}
.Post-tr div {
position : absolute;
z-index : -1;
top : 0;
left : -7px;
width : 14px;
height : 14px;
background-image : url('images/Post-s.png');
}
.Post-bl {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 0;
width : 7px;
height : 7px;
}
.Post-bl div {
position : absolute;
z-index : -1;
top : -7px;
left : 0;
width : 14px;
height : 14px;
background-image : url('images/Post-s.png');
}
.Post-br {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
right : 0;
width : 7px;
height : 7px;
}
.Post-br div {
position : absolute;
z-index : -1;
top : -7px;
left : -7px;
width : 14px;
height : 14px;
background-image : url('images/Post-s.png');
}
.Post-tc {
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 7px;
right : 7px;
height : 7px;
}
.Post-tc div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 100%;
height : 14px;
background-image : url('images/Post-h.png');
}
.Post-bc {
position : absolute;
overflow : hidden;
z-index : -1;
bottom : 0;
left : 7px;
right : 7px;
height : 7px;
}
.Post-bc div {
position : absolute;
z-index : -1;
top : -7px;
left : 0;
width : 100%;
height : 14px;
background-image : url('images/Post-h.png');
}
.Post-cl {
position : absolute;
overflow : hidden;
z-index : -1;
top : 7px;
left : 0;
width : 7px;
bottom : 7px;
}
.Post-cl div {
position : absolute;
z-index : -1;
top : 0;
left : 0;
width : 14px;
height : 100%;
background-image : url('images/Post-v.png');
}
.Post-cr {
position : absolute;
overflow : hidden;
z-index : -1;
top : 7px;
right : 0;
width : 7px;
bottom : 7px;
}
.Post-cr div {
position : absolute;
z-index : -1;
top : 0;
left : -7px;
width : 14px;
height : 100%;
background-image : url('images/Post-v.png');
}
.Post-cc {
position : absolute;
overflow : hidden;
z-index : -2;
top : 7px;
left : 7px;
right : 7px;
bottom : 7px;
background-image : url('images/Post-c.png');
}
.Post {
margin : 10px;
}
a img {
border : 0;
}
.article img, img.article {
border-style : solid;
border-width : 1px;
border-color : #afc6d4;
margin : 1em;
}
.metadata-icons img {
border : none;
vertical-align : middle;
margin : 2px;
}
.article table, table.article {
border-collapse : collapse;
margin : 1px;
width : auto;
}
.article table, table.article .article tr, .article th, .article td {
background-color : transparent;
}
.article th, .article td {
padding : 2px;
border : 1px solid #608da9;
vertical-align : top;
text-align : left;
}
.article th {
text-align : center;
vertical-align : middle;
padding : 7px;
}
.PostHeaderIcon-wrapper {
text-decoration : none;
margin : 0.2em 0;
padding : 0;
font-weight : normal;
font-style : normal;
letter-spacing : normal;
word-spacing : normal;
font-variant : normal;
text-decoration : none;
font-variant : normal;
text-transform : none;
text-align : left;
text-indent : 0;
line-height : inherit;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 22px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #1c3c54;
}
.PostHeaderIcon-wrapper, .PostHeaderIcon-wrapper a, .PostHeaderIcon-wrapper a:link, .PostHeaderIcon-wrapper a:visited, .PostHeaderIcon-wrapper a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 22px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #1c3c54;
}
.PostHeaderIcon-wrapper img {
border : none;
vertical-align : middle;
margin : 0;
}
.PostHeader a:link {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
text-align : left;
color : #224967;
}
.PostHeader a:visited, .PostHeader a.visited {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
text-align : left;
color : #384852;
}
.PostHeader a:hover, .PostHeader a.hovered {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
text-align : left;
color : #1b3950;
}
body {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
color : #3c4e58;
}
.PostContent {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
text-align : justify;
color : #3c4e58;
min-height : 500px;
}
a {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
color : #3672a1;
}
a:link {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
color : #3672a1;
}
a:visited, a.visited {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
color : #2b3840;
}
a:hover, a.hover {
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
color : #1b3950;
}
h1, h2, h3, h4, h5, h6, h1 a, h2 a, h3 a, h4 a, h5 a, h6 a h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
font-weight : normal;
font-style : normal;
text-decoration : none;
}
h1, h1 a, h1 a:link, h1 a:visited, h1 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 28px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #29577a;
}
h2, h2 a, h2 a:link, h2 a:visited, h2 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 22px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #29577a;
}
h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 18px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #39576a;
}
h4, h4 a, h4 a:link, h4 a:visited, h4 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 16px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #1d262a;
}
h5, h5 a, h5 a:link, h5 a:visited, h5 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 14px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #1d262a;
}
h6, h6 a, h6 a:link, h6 a:visited, h6 a:hover {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 14px;
font-style : normal;
font-weight : bold;
text-align : left;
color : #1d262a;
}
ul {
list-style-type : none;
color : #0e1315;
margin : 0;
padding : 0;
}
li {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
}
.Post ul li {
padding : 0 0 0 16px;
background-image : url('images/PostBullets.png');
background-repeat : no-repeat;
margin : 0.5em 0 0.5em 0;
line-height : 1.2em;
}
blockquote p {
color : #0b1014;
font-family : Arial, Helvetica, Sans-Serif;
font-style : italic;
font-weight : normal;
text-align : left;
}
blockquote {
border-color : #afc6d4;
border-width : 1px;
border-style : solid;
margin : 10px 10px 10px 50px;
padding : 5px 5px 5px 41px;
background-color : #d4e0e8;
background-image : url('images/PostQuote.png');
background-position : left top;
background-repeat : no-repeat;
}
button.Button, a.Button {
position : relative;
display : inline-block;
width : auto;
outline : none;
border : none;
background : none;
line-height : 34px;
margin : 0;
padding : 0;
overflow : visible;
cursor : default;
text-decoration : none !important ;
}
*:first-child + html button.Button, *:first-child + html a.Button {
display : list-item;
list-style-type : none;
float : left;
}
.Button .btn {
position : relative;
overflow : hidden;
display : block;
width : auto;
z-index : 0;
height : 34px;
color : #224967;
white-space : nowrap;
float : left;
}
.Button .t {
height : 34px;
white-space : normal;
padding : 0 21px;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
text-align : left;
line-height : 34px;
text-decoration : none !important ;
}
input, select {
font-family : Arial, Helvetica, Sans-Serif;
font-size : 12px;
font-style : normal;
font-weight : normal;
}
.Button .active {
color : #f0f3f5;
}
.Button .hover, a.Button:hover {
color : #eef3f6;
text-decoration : none !important ;
}
.Button .active .r {
top : -68px;
}
.Button .hover .r {
top : -34px;
}
.Button .r {
display : block;
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
right : 0;
width : 11px;
height : 102px;
}
.Button .r span {
display : block;
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
right : 0;
width : 411px;
height : 102px;
}
.Button .active .l {
top : -68px;
}
.Button .hover .l {
top : -34px;
}
.Button .l {
display : block;
position : absolute;
overflow : hidden;
z-index : -1;
top : 0;
left : 0;
right : 11px;
height : 102px;
}
.Button .l, .Button .r span {
background-image : url('images/Button.png');
}
.Footer {
position : relative;
z-index : 0;
overflow : hidden;
width : 974px;
margin : 5px auto 0 auto;
}
.Footer .Footer-inner {
height : 1%;
position : relative;
z-index : 0;
padding : 8px;
text-align : center;
}
.Footer .Footer-background {
position : absolute;
z-index : -1;
background-repeat : no-repeat;
background-image : url('images/Footer.png');
width : 974px;
height : 100px;
bottom : 0;
left : 0;
}
.rss-tag-icon {
position : relative;
display : block;
float : left;
background-image : url('images/rssIcon.png');
background-position : right center;
background-repeat : no-repeat;
margin : 0 5px 0 0;
height : 32px;
width : 32px;
}
.Footer .Footer-text p {
margin : 0;
}
.Footer .Footer-text {
display : inline-block;
color : #1a364d;
font-family : Arial, Helvetica, Sans-Serif;
font-size : 11px;
}
.Footer .Footer-text a:link {
text-decoration : none;
color : #265273;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
}
.Footer .Footer-text a:visited {
text-decoration : none;
color : #536b79;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : underline;
}
.Footer .Footer-text a:hover {
text-decoration : none;
color : #336d99;
font-family : Arial, Helvetica, Sans-Serif;
text-decoration : none;
}
.page-footer, .page-footer a, .page-footer a:link, .page-footer a:visited, .page-footer a:hover {
font-family : Arial;
font-size : 10px;
letter-spacing : normal;
word-spacing : normal;
font-style : normal;
font-weight : normal;
text-decoration : underline;
color : #7daed4;
}
.page-footer {
margin : 1em;
text-align : center;
text-decoration : none;
color : #98adb9;
}
.contentLayout .sidebar1 {
position : relative;
margin : 0;
padding : 0;
border : 0;
float : left;
overflow : hidden;
width : 191px;
}
.contentLayout .content {
position : relative;
margin : 0;
padding : 0;
border : 0;
float : left;
overflow : hidden;
width : 585px;
}
.Novedades {
display : inline-block;
background-position : left top;
background-image : url('novedades.png');
padding : 0 0 0 24px;
background-repeat : no-repeat;
min-height : 17px;
margin : 0 0 0 5px;
}
.Noticias {
display : inline-block;
background-position : left top;
background-image : url('noticias.png');
padding : 0 0 0 24px;
background-repeat : no-repeat;
min-height : 17px;
margin : 0 0 0 5px;
}
.Rss {
display : inline-block;
background-position : left top;
background-image : url('rss.png');
padding : 0 0 0 24px;
background-repeat : no-repeat;
min-height : 17px;
margin : 0 0 0 5px;
}
.novedad {
font-size : 12px;
}
HERA
Código:
Aviso. Tenga en cuenta, al revisar cada punto, que los scripts pueden generar contenidos dinámicos que merecen las mismas consideraciones que los contenidos estáticos.
Hera. Sumario

    * URL: http://www.elhacker.net
    * Fecha/hora: 15/06/2010 - 7:43 GMT
    * Total: 630 elementos
    * Análisis automático: 2 segundos
    * Errores: 10 errores
    * A verificar manualmente: 40 puntos
    * Revisor: (desconocido)
    * Navegador: Mozilla Firefox 3.6.3 (Windows XP)

[/code]
7  Programación / Desarrollo Web / Auditoria Web - Estandares en: 13 Junio 2010, 18:22 pm


Bueno como estan esta es la primera vez que escribo algo tan grande como lo que hare, espero criticas constructivas como destructivas.

(NOTA? Post en Construccion..... )
1. INTRODUCCIÓN
2. AUDITORÍA DE ACCESIBILIDAD WEB. DESIGN FOR ALL (Para todos)
2.1. Auditoría de accesibilidad
2.2. Auditoría de usabilidad
3. LEGISLACIÓN SOBRE ACCESIBILIDAD
4. VENTAJAS DE LA ACCESIBILIDAD
5. WAI, INICIATIVA DE ACCESIBILIDAD A LA WEB
6. ACCESO WEB PARA DISCAPACITADOS
4.1. Clasificación de las discapacidades
7. PROBLEMAS TÉCNICOS DEL ACCESO WEB
8. AUDITORÍA DE ACCESIBILIDAD WEB
8.1. La revisión preliminar.
8.2. Evaluación de la accesibilidad conforme a las pautas WAI (WCAG 1.0)
8.3. Monitorización constante
9. GLOSARIO

1. INTRODUCCIÓN
Código:
“El poder de la Web está en su universalidad. El acceso de todo el mundo con
independencia de su discapacidad es un aspecto esencial."
Citar
Tim Berners-Lee Creador de la “World Wide Web” (www)

La accesibilidad busca la igualdad de acceso a la web para todas las personas,
para afianzar la universalidad de la WWW.
Una página web accesible se presenta tanto al usuario medio de la www como a
los grupos minoritarios de personas que sufren distintos tipos de discapacidades y
para los que no todas las páginas web están pensadas, pero también a los grupos
minoritarios de usuarios que no tienen el software más avanzado ni ayudas
técnicas que muchos sitios web requieren para su correcta visualización y
lectura.
En definitiva, tomar medidas para asegurar la accesibilidad a una página web
permitiría a un conjunto creciente de personas formar parte de la sociedad de la
información.
Una página o sitio web es accesible cuando está diseñado y codificado de forma
que sus contenidos y servicios estén disponibles para cualquier persona, con
independencia de su contexto de navegación.

2. AUDITORÍA DE ACCESIBILIDAD WEB. DESIGN FOR ALL

Para que todos se puedan beneficiar de Internet existe el referente internacional
de las pautas WAI (siglas de la Web Accessibility Initiative), que permiten
alcanzar diferentes grados de accesibilidad en un sitio web.
El servicio de consultoría de accesibilidad web de adaptación al Design for All
consta de dos partes que se integran en un solo estudio: por un lado, auditar una
web existente o supervisar un desarrollo para cumplir las pautas de accesibilidad
WCAG 1.0 establecidas por la WAI. Por otro lado, auditar una web existente o
supervisar un desarrollo para aplicar las directrices de usabilidad establecidas por
Jakob Nielsen y otros expertos reconocidos internacionalmente.

2.1. AUDITORÍA DE ACCESIBILIDAD

El servicio de auditoría de accesibilidad está diseñada para que su web pueda ser
visitada por usuarios discapacitados y sea correctamente visualizada en diferentes
soportes: teléfonos móviles, PDA, ordenadores... De esta manera su web cumplirá
la legislación establecida sobre accesibilidad web en la Ley 34/2002, relativa a
Servicios de la Sociedad de la Información y Comercio Electrónico (LSSICE).
La auditoría de accesibilidad consta de las siguientes fases:

- Estudio del estado de accesibilidad de su web.

- Generación de un informe del estado actual.

- Supervisión de los cambios y monitorización constante.



2.2. AUDITORÍA DE USABILIDAD


Gracias a la auditoría de usabilidad podrá ayudar a sus visitantes a encontrar lo
que buscan de manera rápida y eficiente en su web. El servicio de auditoría de
accesibilidad que ofrecemos consta de las siguientes fases o etapas:

- Revisión inicial de la usabilidad.

- Evaluación de usabilidad: Permite descubrir los problemas que sus
visitantes pueden estar encontrando al utilizar su web.

- Diseño orientado al usuario (User-centered design).

- Optimización web.

3. LEGISLACIÓN SOBRE ACCESIBILIDAD

3.1. LEGISLACIÓN EUROPEA

La Comisión Europea junto con el Consejo Europeo esta promoviendo el
desarrollo de una Internet accesible para todos, con la Iniciativa eEurope. Esta
iniciativa se puso en marcha en diciembre de 1999 y uno de sus objetivos
fundamentales es garantizar una sociedad de la información para todos, sin
exclusiones.
Dentro de su plan de acción, se pretende que las administraciones públicas de los
estados miembros mejoren el nivel de accesibilidad en sus páginas. Asimismo las
organizaciones que reciban fondos públicos deberán hacer que sus sitios web
sean accesibles, considerando que un sitio web es accesible siempre que satisfaga
el nivel doble A y que se aplique en su totalidad la prioridad 2 de las pautas WAI.

3.2. LEGISLACIÓN ESPAÑOLA

España ha adoptado las directivas comunitarias con la Ley 34/2002, relativa a
Servicios de la Sociedad de la Información y Comercio Electrónico (LSSICE), en la
que se establece que "las Administraciones Públicas adoptarán las medidas
necesarias para que la información disponible en sus respectivas páginas de
Internet pueda ser accesible a personas con discapacidad y de edad avanzada de
acuerdo a los criterios de accesibilidad al contenido generalmente reconocidos
antes del 31 de diciembre de 2005".
Además esta ley obliga a todas aquellas empresas que aspiren a contratos o
convenios con organismos públicos, a tener en cuenta que con la entrada en
vigor de la ley, se podrá “exigir que las páginas de Internet cuyo diseño o
mantenimiento financien, apliquen los criterios de accesibilidad”.


4. VENTAJAS DE LA ACCESIBILIDAD

La accesibilidad web no sólo permite ampliar de forma radical el público de los
sitios web, además, al cumplirse las pautas de accesibilidad, las web se adecuan
a los estándares, lo que las hace más rápidas y de mejor acceso.
Directamente relacionado con la accesibilidad, se enumeran otras acciones que
pueden contribuir a mejorar el posicionamiento del sitio web en buscadores, esto
es, el lugar por importancia en que los buscadores colocan a los sitios webs al
hacer una búsqueda.
Además, al cumplir con los estándares todo trabajo ulterior en la web se
simplifica y así un rediseño, un cambio, una modificación se hace más rápido y
por tanto menos costoso.
Las páginas serán más accesibles. Los motores automatizados de los buscadores
(robots) podrán acceder a todo el contenido del sitio web mejorando su
calificación. Los archivos son menos pesados con lo que será menor el tiempo
de descarga, menor el consumo de ancho de banda y menor espacio en el
servidor.
Un mismo documento puede adoptar diseños radicalmente distintos en diferentes
aparatos, pudiendo incluso escogerse entre varios diseños para un mismo medio.

5. WAI, INICIATIVA DE ACCESIBILIDAD A LA WEB

La Iniciativa de Accesibilidad a la Web (WAI) del W3C (World Wide Web
Consortium) fue fundada en 1997, recibe el apoyo de los principales actores de la
industria y los gobiernos del mundo, se dedica a promover soluciones de
accesibilidad en la web para personas con discapacidades. Esta iniciativa trabaja
en definitiva para el desarrollo del potencial de la web.
La WAI actúa principalmente sobre cinco áreas de trabajo:

- Asegurar que las tecnologías web den soporte a la accesibilidad

- Desarrollo de pautas de accesibilidad

- Creación de herramientas de evaluación y corrección de la accesibilidad
   web

- Desarrollo de materiales para la educación y difusión

- Coordinación de proyectos de investigación y desarrollo
La WAI ha propuesto para cada una de estas necesidades unas pautas a seguir: La
propuesta de la WAI sobre la accesibilidad de contenidos, se recoge en las Pautas
de Accesibilidad de Contenidos Web, WCAG 1.0. La primera recomendación fue
en 1999 y actualmente se esta desarrollando la versión 2.0 de estas pautas.
Son las pautas establecidas a través de esta iniciativa en las que nos basamos a la
hora de revisar y evaluar la accesibilidad de las páginas web.


6. ACCESO WEB PARA DISCAPACITADOS

Al hablar de accesibilidad se presupone que ésta está dirigida al grupo de los
discapacitados, pero no únicamente a ellos.
La accesibilidad no sólo afecta a los discapacitados, sino a un gran número de
usuarios, que quedan apartados de gran número de páginas web que no están
preparadas o pensadas para llegar a ellos.

6.1. CLASIFICACIÓN DE LAS DISCAPACIDADES

La clasificación propuesta por la WAI (Web Accessibility Initiative) agrupa las
discapacidades en función de cómo afectan al acceso a un ordenador y en
definitiva como afectan al uso de la web.
La clasificación engloba la ceguera, la baja visión, la falta de sensibilidad a los
colores, sordera, sordera severa, discapacidad motora y las discapacidades
cognitivas y neurológicas, teniendo en cuenta que cada tipo de discapacidad
tiene asociados una serie de problemas para acceder a los contenidos web.
Sin embargo, no sólo las personas mencionadas anteriormente tienen problemas
de acceso a la web.
Aunque no se consideren discapacitadas, algunas personas pueden tener
limitaciones de funcionalidad sensorial, física o cognitiva que afectan a su acceso
a la web. Estas incluyen situaciones relacionadas con lesiones (por ejemplo una
persona con una fractura que reduzca la movilidad de un brazo) o con el
envejecimiento, y por su duración en el tiempo, pueden ser crónicas o
transitorias.

En el caso de lesiones puntuales, se podría beneficiar de los diseños accesibles
que faciliten la navegación por teclado así como otras pautas relacionadas con la
discapacidad motora.

El número y la severidad de las limitaciones tienden a aumentar con la edad, y
pueden incluir alteraciones en la visión, oído, memoria o funcionalidad motriz,
por lo que tomar medidas que mejoren la accesibilidad de los sitios web,
permitirían a un conjunto cada vez mayor de personas mayores formar parte de la
sociedad de la información.
Esto incrementa el número de personas con problemas de acceso a la web
exponencialmente, ya que el porcentaje de la población que abarca a las
personas de mediana edad y de edad avanzada es creciente.
Es por eso que la necesidad de implementar la accesibilidad en los sitios web no
es no sólo una mejora social, sino una inversión dado el público potencial que
apreciará los esfuerzos por hacer una web accesible.

7. PROBLEMAS TÉCNICOS DEL ACCESO WEB

También existen unas limitaciones relacionadas con los equipos de acceso a
Internet. Muchos de los usuarios que se conectan a la red de Internet lo hacen
mediante conexiones lentas u ordenadores antiguos.
Hoy en día el acceso a Internet se puede realizar desde distintos lugares,
cybercafés, salas comunes, bibliotecas, redes wifi en aeropuertos, etcétera. Esto
puede dificultar e incluso imposibilitar el acceso a webs con contenidos pesados,
o contenidos que requieran de determinadas herramientas.
Pero también la accesibilidad se refiere a el acceso al contenido de las páginas
desde diferentes dispositivos como PDA o teléfonos móviles.
Además muchos usuarios eligen libremente bloquear determinado tipo de
contenido por razones de seguridad, y, de este modo, muchas webs se les
presentan prácticamente vacías.

8. AUDITORÍA DE ACCESIBILIDAD WEB

La evaluación de la accesibilidad web consta de diversas etapas, y cada etapa
tiene distintos objetivos:

1. Una revisión preliminar, para identificar las barreras de acceso
generales al sitio web.

2. La evaluación de la accesibilidad conforme con las pautas de la WAI
que trata de:
       
       a. Detectar problemas importantes de accesibilidad durante la fase
           de desarrollo.

       b. Determinar el nivel de conformidad respecto a la WACG 1.0
           (Web Content Accesibility Guide o pautas de acceso) de un sitio
           web existente.

3. Tras una revisión de la conformidad de un sitio a las normas de la WAI,
una monitorización constante del sitio ayuda a asegurar que
permanecerá con dicho nivel de conformidad en el futuro.

En cada una de estas etapas se llevará a cabo una revisión para garantizar que los
resultados son correctos. Se validarán de forma manual un subconjunto
representativo de las páginas que permitan detectar problemas de usabilidad,
navegación, contenidos de apoyo incompletos, etc.
En la siguiente ilustración se resume a modo gráfico el proceso de auditoría de
accesibilidad para un sitio web.

8.1. LA REVISIÓN PRELIMINAR

Esto ayuda a identificar rápidamente el alcance de los problemas de accesibilidad
de un sitio web, aunque su ámbito es general, y no puede usarse para determinar
niveles de conformidad.

Este punto requiere del uso combinado de técnicas manuales sobre las páginas
como el uso de herramientas semi-automatizadas de chequeo de accesibilidad.
La revisión preliminar de un sitio consta de tres pasos:

1. Seleccionar una muestra de las páginas del sitio web. Debe incluir las
páginas con más acceso por parte del usuario (página inicial, etc.).


Especial observación requieren las páginas donde el contenido es
generado dinámicamente.

2. Uso de diferente software para la revisión general y evaluación de la
accesibilidad.

3. Resumen de los resultados, de los tipos de problemas encontrados, así
como las buenas formas a seguir o a ampliar en el sitio y recomendación
de los pasos a seguir.

8.2. EVALUACIÓN DE LA ACCESIBILIDAD CONFORME A LAS PAUTAS WAI (WCAG
1.0)

Esta evaluación de la accesibilidad combina evaluaciones y pruebas con los
usuarios con discapacidad.

1. Identificar el nivel de conformidad de accesibilidad que se quiere
comprobar en el sitio web objeto de la evaluación:
   
     a. Identificar el nivel de adecuación de la WAI que se quiere
         comprobar.

     b. Identificar una selección de páginas del sitio para los tests
         manuales y de usuario que incluya al menos una de las diferentes
         páginas que conformen el sitio, y de todas las páginas con más
         visitas por parte de los usuarios.

    c. Identificar todas las páginas del sitio web para la evaluación.

2. Realizar evaluaciones:

    a. Validación el lenguaje de marcas, incluyendo la sintaxis y las
        hojas de estilo sobre la selección de páginas obtenida en el punto
        anterior.

    b. Uso de herramientas de evaluación de la accesibilidad en la
        selección de páginas del sitio web, indicando las incidencias
        detectadas.

3. Realizar evaluaciones manuales:
    a. Examinar la selección de páginas del sitio para confirmar que
        cumple todos los puntos de verificación del nivel de adecuación
        que se quiere comprobar.

    b. Examinar la selección de páginas con un navegador gráfico,
         jugando con las posibles configuraciones y haciendo especial
         hincapié en los siguientes aspectos: diferentes navegadores;
         diferentes versiones; diferentes plataformas, haciendo las
         diferentes comprobaciones, de la misma forma en que se hicieron
         en la revisión preliminar.
    c. Usar un navegador de voz y un navegador de texto,
         profundizando en la revisión.

   d. Lectura de las páginas, confirmando que el lenguaje usado en
       ellas es claro, sencillo y apropiado para el propósito de la página.

4. Tests de usabilidad de las características de accesibilidad
implementadas. Se realizarán pruebas con personas con diferentes
discapacidades, diferente nivel de experiencia técnica y diferente grado de
familiaridad con el sitio web.

5. Resumen y propuesta de soluciones:

     a. Resumen de cualquier problema y posible mejora encontrados       
         para cada tipo de página o URL concreta.

    b. Recomendaciones de acciones de mejora, para la reparación de
        las barreras de accesibilidad encontradas mediante el proceso de
        evaluación del nivel de adecuación, propuestas para posibles
        mejoras en la accesibilidad y para el mantenimiento continuo y
        monitorización del sitio.

8.3. MONITORIZACIÓN CONSTANTE

Para garantizar que un sitio web mantendrá su nivel de adecuación de
accesibilidad en el futuro, deberán tenerse en cuenta los siguientes apuntes:
 
- Clara definición del nivel de conformidad esperado.

- Clara identificación de los individuos responsables de la monitorización
  del sitio, y procedimientos rápidos que puedan usar para devolver una
  página web a su estado accesible, en caso de que éste se pierda.

- Especificaciones claras sobre la frecuencia, método y ámbito de las
  evaluaciones.

- Procedimientos para la validación y evaluación de los nuevos tipos de
  página que se vayan a añadir o que se hayan modificado, antes de
  subirlas al sitio web.

- Incorporación en el sitio web de direcciones para el feed-back sobre la
  accesibilidad del sitio.







9. GLOSARIO

A continuación se detallan algunos de los términos relacionados con
accesibilidad a los que se hace referencia en cualquiera de los epígrafes de este
documento.

- Accesibilidad. Separar forma y contenido permite hacer llegar la
  información a diferentes dispositivos, navegadores, lectores de pantalla…
  Posibilitando en buena medida el acceso a personas con discapacidad.

- Ancho de banda. Para sitios con muchas visitas trabajar con estándares
  puede representar un ahorro muy grande. Reduciendo costes con el envío
  de información innecesaria al usuario. Páginas construidas con XHTML y
  CSS pueden llegar a reducir un 50% el tamaño de la página original.

 - Tiempos de carga. Menos código hace que las páginas tarden menos en
   cargar mejorando la experiencia de usuario. La cualidad más apreciada
   por los usuarios en un site es la velocidad de descarga. Un usuario medio
   tarda 10 segundos en perder la atención en la máquina.

- Buscadores. Una página diseñada con estándares aparecerá en mejor
  posición en los resultados de búsqueda debido a que el código es más
  limpio, las páginas sólo llevan contenido (no diseño), semánticamente es
  más correcto. La accesibilidad está ligada al posicionamiento en
  buscadores, quee navegan como si fuesen “ciegos”.

- Independencia del dispositivo. El uso de estándares facilita el acceso al
  contenido de las páginas Web a través de diferentes navegadores y
  dispositivos. Por lo tanto el mismo sitio Web puede usarse tanto en un
  teléfono móvil como en el PC, TV, impresora… cambiando sólo un
  archivo (CSS). Utilizar estándares puede significar llegar al 100% de los
  usuarios que visitan la red.

- Mantenimiento. Al separar estructura y presentación se permite realizar
  cambios en todo el sitio editando un único archivo. Cuando se requiera un
  cambio de aspecto, tiempo y coste serán muy reducidos. No es necesario
  hacer modificaciones en las páginas desarrolladas ni cambiar contenido
  del sitio.

- Control por parte del usuario. El usuario del sitio tiene el control sobre la
  página, independientemente del dispositivo con el que se conecte. La
  personalización de su navegador le será útil para visitar el sitio. El usuario
  puede modificar a su antojo tamaños de letra, colores, botones…

- Adaptación al futuro. Los Navegadores se están adaptando a los
  estándares, de esta forma se garantiza la viabilidad de los proyectos a largo
  plazo. Un sitio web adaptado es compatible con el 99% de los
  navegadores y, si se usa bien, sirve para cualquier plataforma. Un sitio
  desarrollado con estándares utiliza una tecnología fácilmente compatible
  con otros productos.


Validar Accesibilidad Web Online
A continuación muestro algunas de las herramientas online más usadas para validar la accesibilidad web, estos validadores de la accesibilidad web  evalúan todos y cada uno de los elementos y páginas que las componen de forma automátizada e informan de si se encuentran errores y qué puntos de verificación de las pautas deben ser revisados manualmente.

Validar Accesibilidad Web Online


   

 
   

La accesibilidad web se encuentra estrechamente ligada con el cumplimiento de los estándares web de la W3C, de este modo recomiendo validar en un primer momento el cumplimiento de estos estándares (ver artículo Validar XHTML y CSS) y una vez cumplidos pasar a la validación de la accesibilidad web de nuestros sitios.


Bueno esto es todo si falta algo o modifico solo diganme para poder corregirlo y mejorarlo gracias.

Código:
Fuente: Internet. 
            Posteriormente pondre las fuentes por ahora no porque tengo que organizarlo gracias
8  Programación / PHP / Ayuda con catalogo web! en: 11 Junio 2010, 18:12 pm

Bueno miren estoy implementando una web con un catalogo virtual, y al realizarla me tope con el siguiente problema me aparece el siguiente error, lo revise y no te que falta o sobra una llave lo revise y nada, aver si alguien me ayuda a encontrarlo gracias..
Código:
Parse error: parse error in C:\wamp\www\sistema-catalogo\index.php  on line 273


El codigo del index.php

Código
  1. <?php
  2. //Carga de datos de Conexion
  3. require("conexion.php");
  4.  
  5.  
  6. //Conexion a base de Datos SQL
  7. $link;
  8. mysql_select_db($sql_database);
  9.  
  10. //Buscando informacion del sistema de forma General
  11. $buscando_infoweb = mysql_query("select * FROM infoweb where id_infoweb=1");
  12. $infoweb = mysql_fetch_array($buscando_infoweb);
  13.  
  14. //Buscando informacion de la EMPRESA
  15. $buscando_empresa = mysql_query("select * FROM empresa where id_empresa=1");
  16. $empresa = mysql_fetch_array($buscando_empresa);
  17.  
  18. //CAPTURA DEL FORMULARIO
  19. $form_categoria = $_POST['form_categoria'];
  20. $form_producto = $_POST['form_producto'];
  21.  
  22. if($form_categoria == "si"){
  23. $enviado = "no";
  24. }else{
  25. $enviado = "si";
  26. }
  27.  
  28. ?>
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml">
  31. <head>
  32. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  33. <title><?php echo $infoweb['titulo']; ?></title>
  34. <link href="catalogo.css" rel="stylesheet" type="text/css" />
  35. </head>
  36.  
  37. <body>
  38. <div class="texto_blanco" id="cuerpo_superior">
  39. <span class="titulo_superior"><?php echo $empresa['nombre']; ?></span><br />
  40. <?php echo $infoweb['titulo']." V.".$infoweb['version'].".0"; ?><br />
  41. <br />
  42. <?php
  43. //informacion de la emrpsa
  44. echo $empresa['direccion']."<br>";
  45. echo "Telefono: ".$empresa['telefono']."<br>";
  46. echo "Fax: ".$empresa['fax']."<br>";
  47. echo $empresa['mail']."<br>";
  48. ?>
  49.  
  50. <br />
  51. </div>
  52. <div class="texto_blanco" id="cuerpo_info">
  53.  <table width="100%" border="0" cellspacing="0" cellpadding="2">
  54.    <tr>
  55.      <td width="5%"><img src="imagenes/usuarios.jpg" width="16" height="16" /></td>
  56.      <td width="42%">
  57. <?php
  58. //Sistema de Contador
  59. include("sist_contador.php");
  60. ?></td>
  61.      <td width="47%">
  62.        <div align="right">
  63.          <?php
  64. //Sistema de Contador
  65. echo date("d-m-Y");
  66. ?>
  67.      </div></td>
  68.      <td width="1%">&nbsp;</td>
  69.      <td width="5%"><div align="right"><img src="imagenes/calendar02.gif" alt="" width="16" height="16" /></div></td>
  70.    </tr>
  71.  </table>
  72. </div>
  73. <div id="cuerpo_general">
  74. <div class="texto_Negro" id="cuerpo_interior">
  75.  <form id="form1" name="form1" method="post" action="index.php"><div align="center">
  76.    <table width="100%" border="0" cellspacing="0" cellpadding="4">
  77.  
  78.        <tr>
  79.          <td colspan="2"><div align="left"><strong>BUSQUEDA DE PRODUCTOS</strong></div></td>
  80.          <td>&nbsp;</td>
  81.          <td><div align="left"><strong>Informacion General</strong></div></td>
  82.        </tr>
  83.        <tr>
  84.          <td width="16%"><div align="left">Categoria</div></td>
  85.          <td width="28%"><label>
  86.            <div align="left">
  87.              <table width="100%" border="0" cellspacing="0" cellpadding="0">
  88.                <tr>
  89.                  <td width="72%"><select name="form_categoria" class="texto_Negro" id="form_categoria">
  90.                    <option value="si" >Ofertas</option>
  91.                    <?php
  92. //Visulizando el listado del personal
  93. $buscando_cetegorias = mysql_query("select * FROM categorias order by nombre asc");
  94. while($categorias = mysql_fetch_array($buscando_cetegorias)){
  95. ?>
  96.                    <option value="<?php echo $categorias['id_categorias']; ?>" ><?php echo $categorias['nombre']; ?></option>
  97.                    <?php
  98. }
  99. ?>
  100.                  </select></td>
  101.                  <td width="28%"><div align="center"><img src="imagenes/serch.gif" width="14" height="14" /></div></td>
  102.                </tr>
  103.              </table>
  104.            </div>
  105.          </label></td>
  106.          <td width="4%">&nbsp;</td>
  107.          <td width="52%" rowspan="3" align="left" valign="top"><div align="left">En este sistema usted podra encontrar cualquier informaicon de nuestros productos ofrecidos por nuestra emrpesa.</div></td>
  108.        </tr>
  109.        <tr>
  110.          <td><div align="left">Producto</div></td>
  111.          <td><div align="left">
  112.            <label>
  113.            <input name="form_producto" type="text" class="texto_Negro" id="form_producto" size="16" />
  114.            </label>
  115.          </div></td>
  116.          <td>&nbsp;</td>
  117.          </tr>
  118.        <tr>
  119.          <td colspan="2"><div align="right">
  120.            <input name="enviado" type="hidden" id="enviado" value="si" />
  121.            <input name="button" type="submit" class="texto_Negro" id="button" value="Buscar" />
  122.          </div></td>
  123.          <td>&nbsp;</td>
  124.          </tr>
  125.      </table>
  126.    </div>
  127.  </form>
  128.  </div>
  129. <?php
  130. if($enviado == 'si'){
  131. ?>
  132. <table width="408" border="1" cellpadding="4" cellspacing="0" bordercolor="#CCCCCC">
  133.  <tr>
  134.    <td>Busqueda de Productos</td>
  135.  </tr>
  136. </table>
  137.  
  138. <br />
  139. <?
  140. //Cuerpo BUSQUEDA
  141. $buscando_productos = mysql_query("select * FROM productos where nombre like '%$form_producto%' and categoria_id like '%$form_categoria%' order by precio asc");
  142. while($productos = mysql_fetch_array($buscando_productos)){
  143. ?>
  144. <table width="408" border="1" cellpadding="4" cellspacing="0" bordercolor="#CCCCCC">
  145.  <tr>
  146.    <td width="29%">
  147.  
  148.  
  149.        <?php
  150. if($productos['mime'] == ""){?>
  151.    <div align="center">
  152.      Sin Imagen
  153.      </div>
  154.        <?php
  155. }else{
  156. ?>
  157.        <img src="<?php echo "ver.php?id_imagen=$productos[idproductos]"; ?>">
  158.        <?php
  159. }
  160. ?>
  161.  
  162.  
  163.      </td>
  164.    <td width="71%"><p>    <span class="texto_MiniTitulo"><strong>Producto: <?php echo $productos['nombre']; ?></strong></span><br />
  165.    Categoria:
  166. <?php
  167. $buscando_cetegorias2 = mysql_query("select * FROM categorias where id_categorias = '$productos[categoria_id]'");
  168. $categorias2 = mysql_fetch_array($buscando_cetegorias2);
  169. if($categorias2['nombre'] == ""){
  170. echo "Categoria Eliminada";
  171. }else{
  172. echo $categorias2['nombre'];
  173. }
  174. ?>
  175.          <br />
  176.        Informacion: <?php echo $productos['info']; ?><br />
  177.        <span class="texto_verde"><strong>
  178.       <?php
  179.  if($productos['precio'] != 0){
  180.  echo "Precio: $ ".$productos['precio'];
  181.  }
  182.  if($productos['precio'] != 0 && $productos['cantidad'] != 0){
  183.  echo " - ";
  184.  }
  185.  if($productos['cantidad'] != 0){
  186.  echo "Cantidad: ".$productos['cantidad'];
  187.  }
  188.  ?></strong></span></p>
  189.      </td>
  190.  </tr>
  191. </table>
  192. <br />
  193. <?
  194. }
  195.  
  196.  
  197. }else{
  198. ?>
  199. <table width="408" border="1" cellpadding="4" cellspacing="0" bordercolor="#CCCCCC">
  200.  <tr>
  201.    <td>Ofertas de Productos</td>
  202.  </tr>
  203. </table>
  204.  
  205. <br />
  206. <?php
  207. //Busqueda de productos
  208. $buscando_productos = mysql_query("select * FROM productos where oferta like '1' and nombre like '%$form_producto%' order by precio asc");
  209. while($productos = mysql_fetch_array($buscando_productos)){
  210. ?>
  211.  
  212. <table width="408" border="1" cellpadding="4" cellspacing="0" bordercolor="#CCCCCC">
  213.  <tr>
  214.    <td width="29%">
  215.  
  216.        <?php
  217. if($productos['mime'] == ""){?>
  218.    <div align="center">
  219.      Sin Imagen
  220.      </div>
  221.        <?php
  222. }else{
  223. ?>
  224.        <img src="<?php echo "ver.php?id_imagen=$productos[idproductos]"; ?>">
  225.        <?php
  226. }
  227. ?>
  228.  
  229.    </td>
  230.    <td width="71%"><p>    <span class="texto_MiniTitulo"><strong>Producto: <?php echo $productos['nombre']; ?></strong></span><br />
  231.    Categoria:
  232.        <?php
  233. $buscando_cetegorias2 = mysql_query("select * FROM categorias where id_categorias = '$productos[categoria_id]'");
  234. $categorias2 = mysql_fetch_array($buscando_cetegorias2);
  235. if($categorias2['nombre'] == ""){
  236. echo "Categoria Eliminada";
  237. }else{
  238. echo $categorias2['nombre'];
  239. }
  240. ?>
  241.          <br />
  242.        Informacion: <?php echo $productos['info']; ?><br />
  243.        <span class="texto_verde">
  244.        <strong>
  245.        <?php
  246.  if($productos['precio'] != 0){
  247.  echo "Precio: $ ".$productos['precio'];
  248.  }
  249.  if($productos['precio'] != 0 && $productos['cantidad'] != 0){
  250.  echo " - ";
  251.  }
  252.  if($productos['cantidad'] != 0){
  253.  echo "Cantidad: ".$productos['cantidad'];
  254.  }
  255.  ?>
  256.        </strong></span></p>
  257.      </td>
  258.  </tr>
  259. </table>
  260. <br />
  261. <?
  262. }//fin busqueda de productos
  263.  
  264.  
  265. }
  266. ?>
  267. <br />
  268. </div>
  269. <?php
  270. mysql_close($link);
  271. ?>}
  272. </body>
  273. </html>
  274.  
9  Programación / Programación Visual Basic / Software de certificados y Firmas digitales(Solucionado) en: 29 Mayo 2010, 00:02 am
Hola como estan miren tengo una duda como puedo hacer un software que pueda hacer certificados y firmas digitales.
Hasta lo que se deberia de usar.

PROTOCOLOS DE CERTIFICACIÓN

    *

      SET (Secure Electronic Transaction)
    *

      PGP (Enterprice Security)
    *

      SSL (Secure Socket Layout)

Mi duda es la siguiente si se crea un chat con ssl usando un a encriptacion estaria validado ?¿?¿?

Edito : Solucionado el problema lo hice y postee la solucion saludos

Código:
http://foro.elhacker.net/vbnet/source_firma_digital_c_2010-t296750.0.html
10  Programación / Programación Visual Basic / Una ayuda en llamadas a Exe en: 5 Mayo 2010, 17:25 pm
Código
  1. Private Sub Command2_Click()
  2. End
  3. End Sub
  4.  
  5. Private Sub Form_Load()
  6. Skin1.LoadSkin App.Path & "\skins\Droid.skn" 'cargando el skin para el fondo
  7. Skin1.ApplySkin hWnd 'aplicando el skin
  8. End Sub
  9.  
  10.  
  11. Private Sub SkinLabel3_DragDrop(Source As Control, x As Single, y As Single)
  12.  
  13. End Sub
  14.  
  15. Private Sub Start_Click()
  16. 'En este punto como puedo hacer para llamar a un ejecutable que tengo ya hecho.
  17. 'el cual se llama simulacion.exe
  18. End Sub

Bueno mi problema es que no puedo llamar o mejor dicho no se como hacer para llamar a un exe revisando pude darle la pinta de un skin pero el otro no me ubico porfavor
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines