Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas

3/3/14

Script para detectar dispositivos moviles

JAN29

Detect Mobile Browsers es una colección de script para diferentes lenguajes de programación (ASP, C#, JSP, jQuery, Perl, etc) que nos permite detectar si el visitante a nuestra web hace uso de un dispositivo móvil, de ser así permite redireccionar este a otra página que se adapte al dispositivo.
¿Como usarlo?
Es muy sencillo, tomemos por ejemplo el lenguaje javascript, solo debes:
1. Bajar el script correspondiente, este se descargar con extensión TXT, debes cambiarlo a JS para colocarlo en tu proyecto.
(function (a, b)
{
 if (
  /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i
  .test(a) ||
  /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i
  .test(a.substr(0, 4))) window.location =
  b
})(navigator.userAgent || navigator.vendor ||
 window.opera,
 'http://detectmobilebrowser.com/mobile'
);

2. Abre el archivo y al final veras una cadena de texto "http://detectmobilebrowser.com/mobile", esta es la URL a la que se re direccionara la web si detecta que el visitante usa un dispositivo movil.
3. Para agregar este script a tu pagina, lo debes colocar entre las etiquetas HEAD, osea:
<head>
  <script type="text/javascript" src="tu_carpeta_javasctipt/detectmobilebrowser.js"></script>
</head>

Listo :)

Web: Detect Mobile Browsers

continue reading

14/2/14

Editor on-line para PHP

JAN29

PHPFiddle es un editor de textos online para lenguaje PHP bastante completo.


Con PHPFiddle podrás escribir y probar tu código desde cualquier computadora con conexión a internet, soporta también los smartphone.

Cuenta con coloreado de código, soporte para base de datos, HTML, css, javascript, etc, es decir un completo editor gratuito.
<h1>Test</h1>
<?php
 $count = 0 ; 
 $f1 = 0; $f2 = 1; 
 echo $f1." , "; 
 echo $f2." , ";
 while ($count < 20 ) 
 {
  $f3 = $f2 + $f1 ; 
  echo $f3." , ";
  $f1 = $f2 ; 
  $f2 = $f3 ; 
  $count = $count + 1; 
 }
?>
Resultado


Enlace: http://phpfiddle.org/

continue reading

3/3/13

HideMyPHP Ofuscador de código PHP

JAN29


HideMyPHP es una aplicación desarrollada en .NET que permite ofuscar código PHP, según la página del autor:

"Actualmente se tiene soporte para PHP 5.4 en estilo procedural en un 100%, se han realizado pruebas con mutiples proyectos orientados a objeto y se espera tener un 100% de compatibilidad pronto con los diferentes estilos o forma de programación utilizadas por desarrolladores."

Entre las funciones principales realizadas al momento de la ofuscación se encuentran las siguientes:

- Eliminación de comentarios en los 3 tipos permitidos en PHP(C++ One-Line, Multi-Line, Shell-Style)
- Eliminación de espacios y saltos de linea
- Renombrado de clases
- Renombrado de funciones
- Renombrado de variables
- Compresión con Zlib
- Codificación a Base64

Lo interesante de este aplicación es que te permite cargar y ofuscar todo un proyecto, por ejemplo, la siguiente clase que hace parte de un proyecto MVC:

<?php
/**
 * CLASE WEB
 */
class webMDL {
     
    private $data = array();
    
    /**
     * Constructor de clase
     */
    function __construct() {}

    /**
     * Asigna valor a propiedad de clase
     */
    public function __set($name, $value)
    {        
        $this->data[$name] = $value;
    }
    
    /**
     * Retorna vaior de propiedad de clase
     */ 
    public function __get( $name )
    {        
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }      
        return null;
    }
}

?>

Nombres de variables, funciones, métodos, son renombrados, comentarios, salto de linea y tabulaciones son eliminados.

<?php
class webMDL {

   private $CBA0ZALTQF57VHD9KYKHBIJ1LOI = array( );
   
   function __construct( ) {}

   public function DDGLEOW0PERATBXQLSWUKSDM( $WT2HG2XWKNO63OOBLUNGJUZHJKC, $YW1SVYJUJRPQRD3NTHPRGW8O ) {
      $this->CBA0ZALTQF57VHD9KYKHBIJ1LOI[$WT2HG2XWKNO63OOBLUNGJUZHJKC] = $YW1SVYJUJRPQRD3NTHPRGW8O;
   }

   public function QA5T7ZWDKJGBAMK1UN7TIDBCQRQ( $WT2HG2XWKNO63OOBLUNGJUZHJKC ) {
     if( array_key_exists( $WT2HG2XWKNO63OOBLUNGJUZHJKC, $this->CBA0ZALTQF57VHD9KYKHBIJ1LOI ) ) {
       return $this->CBA0ZALTQF57VHD9KYKHBIJ1LOI[$WT2HG2XWKNO63OOBLUNGJUZHJKC];
     }
    return null;
   }
}
?>

Por último el archivo es comprimido con ZLIB.

<?php /* This script has been encripted with HideMyPHP v.1.0.0, 
for more information please visit http://www.zeusafk.net/ */ ?>
<?php eval(gzuncompress(base64_decode("eNoNwduSY0AAANBfmZqnmcqDJLRLzc5MBS0IISJEv2y5tEsQ
LXSIr9895/fnzy8pyRt+xs1HsdB72rXkgYfhI4kHzHN/M5x2Gf54x+brWGsbd7rtLiWVjqsdo5cG9airlZocwgR
O7DjA1dYsC1Vub6WNUPNAt+65Z+gM/WT2x+A68iJZFve5wSOQ6KUqnTs826eIDw0pVDJOuXANC2Fw0qvxFb1A8m
Sb1ZoIhE9SYF+9OvbTAU/VBjYQCV0WEZioztle5maQKxiKJrecLRooqsQxagK6Ec4zc+TbHo0silIHiFsvx1dlP
HtVBNlLHUCHISEdS2mXbkF+H/tNNAXFUjwa2hr20tuCAtoTb0+Wmm5m1/UYgdIj4VCQqYbRs9tdK3XCwOiVzTSn
ekWueYGkhboHjQW83rdNV92mVyvuOeEkBQjL/KNQdVLvgR1wlsxhCwle3mm57bijNZkiil9hZBDgiR1DuXVy2Gh
iV1eBuTpPa0kfTw5ucVVZnOyByNf1Q+TZc6iYcGdq6i5eFzM7qU7Dl+tM8PSsNP24Lo8pKJ7xdRr6i2ErLbUkXU
ZmX1SKHv1n7Z2c+MkWA+G+Lm9G+EBiU9yLzLO0q5PXELH+uSq+v98/Pz+/3n5//gH8UL1B"))); ?>

EL proyecto se encuentra en fase beta, es gratuito y necesitas ZLIB activado para que funcione correctamente.

Página del autor: http://www.zeusafk.net/
Descarga directa de HideMyPHP
Proyecto completo utilizado en este post para testear HideMyPHP

continue reading

18/9/11

Drag and Drop con jQuery (Ejercicio Resuelto)

JAN29

Problema: Se desea desarrollar una aplicacion web utilizando JavaScript y el plugin JQuery UI para seleccionar nombres de una lista de alumnos y arrastrarlos en una nueva lista los nombres de la lista vienen de una base de datos y cada uno de ellos tiene un identificador único (ID) ademas del nombre del alumnos (texto), los valores seleccionados seran utilizados para el registro de estos en una nueva tabla, asi que se necesitan recuperar los ID unicos asi como los nombres de los alumnos
Restricción: La cantidad maxima de nombres seleccionables son 3, la aplicación no debe
permitir que se añadan más nombres a la nueva lista, debe avisar de ello al usuario

Solucion:
Para este problema se utilizaran el plugin de JQuery  v1.6.2 y JQuery UI 1.6rc6, estos se añaden a la pagina web:



<script language="javascript" src="jquery.js"></script>
<script language="javascript" src="jquery-ui-personalized-1.6rc6.min.js"></script>

Se crea la estructura de las listas utilizando DIV, Ul, IL, se añade tambien un Button



<div id="div_box">
<span>Lista de Alumnos</span>
<ul id="lista1">
 <li id="76"><a href="#">Emiliano Salido del Pozo</a></li>
    <li id="200"><a href="#">Rosa Malpartida</a></li>
    <li id="41"><a href="#">Rosa Melcacho</a></li>
    <li id="7"><a href="#">Miren Amiano</a></li>
</ul>
</div>
<div style="float:left; margin-top:80px;"><input name="boton" id="boton" type="button" value="Seleccionar" /></div>
<div id="div_box">
<span>Alumnos Seleccionados</span>
<ul id="lista2">
 <li id="11"><a href="#">Debora Vergara</a></li>
    <li id="12"><a href="#">Benito Camela Suavecito</a></li>
</ul>
</div>

Para organizar y formatear las listas y los contenedores se utiliza estilos CSS


#div_box{
 overflow: auto; 
 float:left; height: 160px; 
 width:220px;
 margin:10px 10px 0 10px;
 padding:5px 10px 5px 10px; 
 background: none repeat scroll 0% 0% rgb(255, 255, 255);
    border: 1px solid #E5E5E5;
}

ul {
 list-style: none;
 height:auto;
 width:200px; 
 margin: 0;
 padding: 0;
}

li a {
 text-decoration: none;
 height: 32px;
   voice-family: "\"}\""; 
   voice-family: inherit;
   height: 24px;
}
 
li a:link, li a:visited {
 color: #777;
 display: block;
 background: url(bg.gif);
 padding: 8px 0 0 20px;
}
 
li a:hover {
 color: #257EB7;
 background: url(bg.gif) 0 -32px;
 padding: 8px 0 0 25px;
}
 
li a:active {
 color: #fff;
 background: url(bg.gif) 0 -64px;
 padding: 8px 0 0 25px;
}

Se utiliza una imagen de fondo para los items de laas listas (Archivo: bg.gif)
Aplicando la hoja de estilos a la pagina web, tenemos:
Para agregar la interactivadad a la pagina se debe añadir el codigo JavaScript, el codigo completo de la pagina es:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Drag and Drop</title>
<link rel="stylesheet" href="style.css">
<script language="javascript" src="jquery.js"></script>
<script language="javascript" src="jquery-ui-personalized-1.6rc6.min.js"></script>
<script language="javascript">
$(document).ready(function(){
 // lista 1
 $('li',$('#lista1')).draggable({
  helper: 'clone',  
 });
 $('#lista1').droppable({
  accept: '#lista2 li',
  drop: function(ev, ui) {
   $(ui.draggable).fadeOut(function() {
    $(ui.draggable).appendTo($('#lista1')).fadeIn();     
    });
   $(ui.draggable).fadeIn();
  }
 });
 // lista2 
 $('li',$('#lista2')).draggable({
  helper: 'clone', 
 });
 $('#lista2').droppable({
  accept: '#lista1 li',
  drop: function(ev, ui) {
   $(ui.draggable).fadeOut(function() {
    if(  $('#lista2 li').size()==3 )
     alert ('No se puede agregar mas de 3 nombres');
    else
     $(ui.draggable).appendTo($('#lista2')).fadeIn();     
    });
   $(ui.draggable).fadeIn();      
  }  
 }); 
 //Si cualquiera de los contenedores no tiene elementos, muestra un espacio vacio de color #E1F0FA
 $("#div_box").hover(function(){
  if( $('#lista1 li').size()==0){
    $("#lista1").css({ border: "1px solid #9D9D9D" , background:"#E1F0FA", height:"28px",  "border-radius":"3px 3px 3px 3px"});
   }   
   else{
    $("#lista1").css({ border: "none", height:"auto", background:"#fff" });
  }
  if( $('#lista2 li').size()==0){
    $("#lista2").css({ border: "1px solid #9D9D9D" , background:"#E1F0FA", height:"28px",  "border-radius":"3px 3px 3px 3px"});
   }   
   else{
    $("#lista2").css({ border: "none", height:"auto", background:"#fff" });
  }
 }); 

 // evento para el boton
 $("#boton").click(function () {  
  var salida = "  ALUMNOS SELECCIONADOS \n \n";
   $('#lista2 li').each(function () {
   var id_ =  $(this).attr('id');
   salida +="id: " +  id_ + " - Nombre: " + $('#'+id_).text() + "\n";
   });
   alert (salida);
 }); 
 
});
</script>
</head>
<body>
<div id="div_box">
<span>Lista de Alumnos</span>
<ul id="lista1">
 <li id="76"><a href="#">Emiliano Salido del Pozo</a></li>
    <li id="200"><a href="#">Rosa Malpartida</a></li>
    <li id="41"><a href="#">Rosa Melcacho</a></li>
    <li id="7"><a href="#">Miren Amiano</a></li>
</ul>
</div>
<div style="float:left; margin-top:80px;"><input name="boton" id="boton" type="button" value="Seleccionar" /></div>
<div id="div_box">
<span>Alumnos Seleccionados</span>
<ul id="lista2">
 <li id="11"><a href="#">Debora Vergara</a></li>
    <li id="12"><a href="#">Benito Camela Suavecito</a></li>
</ul>
</div>
</body>
</html>

El resultado:

continue reading

1/9/10

Proyecto pagina web "Contáme!"

JAN29


Me encontre con un tipo de web en donde uno tiene que "contar sus secretos" y si bien la web no tiene ningúna utilidad más que hacer perder el tiempo, es bastante entretenida leer los "secretos"  de las demas personas ;)

Asi que busque un clon script de ese tipo de web y la encontre en una web argentina bastante conocida! (asi que no le hago publidad gratis XD ) estudie un poco el script en cuestión y aunque tiene algunos errores y no esta del todo completa, me anime a hacer algunos cambios para hacer la interfaz mas agradable pero preservando el estilo original de la web.

El resultado me deja satisfecho por el momento, aunque aun tiene algunos errores que se me pasaron:
  1. Al introducir el "secreto"  solo acepta letras y numeros, no signos de puntacion ni caracteres extraños.
  2. Al introducir el CAPTCHA, si se comete un error muestra una pagina en blanco
  3. y otros errores que no me acuerdo.
Pero en fin, creo que la web esta bastante aceptable, asi que invito a quienes quieran perder el tiempo unos minutos a darse una vuelta por el sitio y dejar su más oscuro secreto mejor si son pecados, estan cordialmente invitados, se que no es ético mostrar un proyecto a medias, pero estoy ocupado asi que si no lo pongo ahora se me olvida para despues


la url es: http://www.contame.webcindario.com/

agradesco mucho sus  opiniones del sitio, nadie es perfecto, pero solo equivocandose se aprende

[Actualizado]
corregi la mayoria de los errores XD

continue reading

29/5/10

Convertir HTML a PDF con DOMPDF

JAN29


Buscando alternativas para un trabajo que tenia, me encontre con la libreria DOMPDF, esta libreria te permite convertir archivos HTML a PDF facilmente utilizando PHP, aunque aun se encuentra en fase beta y acepta hojas de estillo (CSS) asi como tablas con formato e imagenes, no es del todo compatible con el lenguaje HTML y CSS ademas de que requiere mucho uso de RAM y Micro, pero sirve para realizar trabajos sencillos.

Lo primero, descargate la libreria desde este enlace en code google. Se encuentra en la version 0.6.0 beta y es la que utilizaremos.
Puedes tambien descargarte la documentacion y ver algunos ejemplos desde se web.

Manos a la obra

El codigo necesario para convertir HTML a PDF es :




<?php
//se incluye la libreria de dompdf
require_once("dompdf/dompdf_config.inc.php");
$code = '<html><head><title>Hola</title></head>
<body><h1>Hola Mundo</h1></body></html>';    
//se crea una nueva instancia al DOMPDF
$dompdf = new DOMPDF();
//se carga el codigo html
$dompdf->load_html($code);
//aumentamos memoria del servidor si es necesario
ini_set("memory_limit","32M"); 
//lanzamos a render
$dompdf->render();
//guardamos a PDF
$dompdf->stream("mipdf.pdf");
?>



Explicacion:

En la primera linea de codigo incluimos la libreria con la palabra reservada REQUIRE_ONCE
En la variable CODE se coloca como un string, el codigo HTML a convertir.
Luego se crea una nueva instancia al objeto dompdf y se carga el codigo HTML
Con ini_set, aumentamos la memoria del servidor que en mi caso, utilizo appserver y tiene 8M de memoria limite, esto no siempre es necesario y depende del serrvidor que utilices.
Por ultimo lanzamos a render y guardamos el PDF

El codigo de prueba utilizado es este, la Oración del Geek:


<html><head>
<title>Oracion del Geek</title>
<style type="text/css">
body{
margin: 15px 40px;
}
table{
text-align:center;
}
p{
text-align:center;
font-style:italic;
font-family:"Times New Roman", Times, serif;
font-size:20px;
}
h1{
color:#0033CC;
text-align:center;
font-style:italic;
font-weight:bold;
border-bottom:#003366 solid 3px;
}
</style>
</head>
<body>
<h1>Oración del Geek</h1>
<table width="563" align="center">
  <tr>
    <td>
    <p><img src="imagen/nerd.jpg" width="450" height="305"></p>
    <p>Padre Nuestro…  </p>
    <p>Santificado sea tu server, </p>
<p>venga a nosotros tu freeware  </p>
<p>Hágase tu downloading así en el http como en el ftp  </p>
<p>Danos hoy nuestro surfing de cada día,  </p>
<p>Perdona nuestros bugs  como nosotros también perdonamos a Microsoft.  </p>
<p>No nos dejes caer en un Mac y líbranos de todo Spyware.  </p>
<p>Enter…</p>
<p><img src="imagen/i-love-geeks.jpg" width="500" height="375"></p></td>
  </tr>
</table>
</body>
</html>

Y me da como resultado:

Lo bueno: Su uso es realmente facil y cuenta con una documentacion amplia
Lo malo: Esta en fase beta y no totalmente compatible
Lo feo: Tarda horrores al procesar tablas complejas y requiere mucha memoria

Aqui te dejo el ejemplo que yo utilice
Click para descargar
enlace actualizado abril 2012

No soy antisocial; Simplemente no soy amistoso al usuario.

continue reading

27/10/09

Consultas a Base de Datos con php

JAN29

Partiremos primero con una pequeña base de datos:

mi_tabla(id, nombre, sexo, pais, mail)

Para realizar una consulta a una Base de Datos desde la web al servidor usando PHP se utiliza la funcion interna mysql_query(QUERY, ENLACE), esta funcion envia una consulta a MySql, tiene como parametros a QUERY que es la consulta sql en si, representada mediante una cadena STRING, ENLACE, que es un identificador de enlace a la conexion establecida con el servidor, este parametro es opcional, si se lo omite, se estable una conexion al ultimo enlace abierto. Si no se ha abierto enlace, la función intenta establecer uno tal y como si se hubiera llamado a mysql_connect() sin argumentos, y lo usará. El resultado de la consulta es puesto en la memoria intermedia (buffer).

Valores retornados
 
Para las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() regresa un resource en caso exitoso, y FALSE en error.

Para otro tipo de sentencia SQL, UPDATE, DELETE, DROP, etc, mysql_query() regresa TRUE en caso exitoso y FALSE en error.

El resultado obtenido debe ser pasado a mysql_fetch_array(), y otras funciones para el manejo de las tablas del resultado, para accesar los datos regresados.

Use mysql_num_rows() para encontrar cuantas filas fueron regresadas para una sentencia SELECT o mysql_affected_rows() para encontrar cuantas filas fueron afectadas por una sentencia DELETE, INSERT, REPLACE, o UPDATE.

mysql_query() también fallará y regresará FALSE si el usuario no tiene permiso de accesar la o las tablas referenciadas por la consulta.

Ejemplo:


Fuente: http://www.opencontent.org/openpub/.

continue reading

Conexion a Base de Datos

JAN29

Para conectar una web dinamica con una base de datos, en este caso mysql, utilizando PHP, la forma mas sencilla es mediante la creacion de una funciona en la cual especificaremos nuestro SERVIDOR, USUARIO Y PASSWORD, al igual que nuestra BASE DE DATOS.

Ahora explicaremos en que consiste esta funcion:

La linea de codigo 4 consiste en hacer uso de la funcion interna de PHP, mysql_connect, a la cual le pasamos como parametros, el nombre del SERVIDOR al cual nos conectaremos, el nombre de USUARIO y el respectivo PASSWORD. Si se pudo o no se pudo abrir una conexion, esta la devuelve en la variable $link, el cual es un identificador positivo si tuvo exito o falso si fracaso en el intento.

mysql_connect(): establece una conexión a un servidor MySQL. Todos los argumentos son opcionales, y si no hay, se asumen los valores por defecto ('localhost', usuario propietario del proceso del servidor, password vacío).

El hostname puede incluir tambien un número de puerto . ej. "hostname:puerto" o un camino al socket ej. ":/camino/al/socket" para localhost.

Nota: Siempre que específicque "localhost" o "localhost:port" como servidor, la libreria cliente de MySQL evitará esto y tratará de conectarse a socket local (nombrado pipe en Windows). Si quiere usar TCP/IP, use "127.0.0.1" en vez de "localhost". Si las librerias cliente de MySQL intentan conectarse a un socket local ñocado, debe fijar la trayectoria como mysql.default_host en el archivo de configuración PHP y dejar el campo del servidor en blanco.

Soporte para ":puerto" fue añadido en PHP 3.0B4.

Soporte para ":/camino/al/socket" fue añadido en PHP 3.0.10.

Puede suprimir el mensaje de error en caso de falla anteponiendo una @ al nombre de la función.

Si se hace una segunda llamada a mysql_connect() con los mismos argumentos, no se abrirá nuevo enlace, en lugar de eso, se regresa el identificador de enlace ya abierto. El parámetro new_link modifica este comportamiento y hace que mysql_connect() siempre abrir un nuevo enlace, aún si mysql_connect() había sido llamado antes con los mismos parámetros.

Otra forma de conexion, en la cual, ademas podemos observar el tipo de error que se produce, es esta.


Tenga en cuenta que el enlace con el servidor se cerrara en cuanto se termine con el script php, a menos que se lo cierre mediante mysql_close($link). Laughing

continue reading

26/10/09

Instalacion del servidor AppServ 2.5.9

JAN29

¿que es appserver? 


Es una herrramienta OpenSource para Windows que facilita la instalación de Apache, MySQL y PHP en una sola herramienta, esta característica facilita la tarea al usuario ya que se configuran las aplicaciones de forma automática.
Una vez instalado AppServ, dispondremos de un servidor web y otro de base de datos propio, configurado de manera local, y que nos permitirá realizar todas las pruebas necesarias en nuestra web antes de lanzarla a la red.

NOTA: el nombre de usuario predeterminado en phpMyAdmin suele ser " root " mas el password que hayan colocado durante la instalación del programa

Para instalar correctamente este servidor, tenemos que:
1. ejecutar el archivo appserv-win32_2.5.9.exe, que podremos bajar gratis, de su pagina oficial. Clic en NEXT y aceptamos haciendo clic en I agree.

2. En esta ventana nos muestra la ruta de instalacion por defecto "c:\appserv", o si preferimos podremos cambiar a otra unidad o carpeta. Embarassed Presionamos NEXT.

3. En la siguiente ventana escogeremos los componentes que queremos instalar, por el momento dejaremos todo seleccionado y presionamos NEXT 

4. En esta ventana se inserta la informacion del servidor, para este caso, instalamos este servidor como "localhost", colocamos nuestro correo de administrador y dejamos el puerto por defecto: 80. Presionamos NEXT.

5. Esta ventana, es una de las mas importantes, ya que aqui ingresaremos el password, con el cual conectaremos nuestro servidor. Cuidado con olvidarse Smile como cierta persona. Y presionamos INSTALL.

6. esperamos a que termine la instalacion.

7. Una vez que termino de instalar todos los componentes, te presenta las opciones Star Apache y Start MySQL, dejalas marcadas y presiona FINISH. Te aparecera por unos egundos una pantalla negra, no asustarse, es normal, luego desaparece y ya tienes tu appserv instalado.



Despues de la instalacion
Para probar que tienes todo correctamente instalado, abre un navegador web, y escribe http://localhost, debe aparecerte algo asi.

 Para ingresar al administrador de la base de datos, presionamos el enlace phpMyAdmin Database Manager Version 2.10.2, nos sale una ventanita preguntando el usuario y el password, colocamos el usuario por defecto Root, y el password que nosotros colocamos durante la instalacion.



Pagina web: http://www.appservnetwork.com/index.php?newlang=spanish





continue reading

Post recomendado