Tag Archives: programación

Ejecutando un Flash con PHP en forma remota

7 Oct

Bueno, hace un tiempo tuve el siguiente problema: un cliente tenía servidor windows, y quería desarrollar una aplicacioncita para manejar sus contenidos. PHP no corría en el servidor. El workaround que encontramos fue ejecutar un flash en “forma remota” (sí! es una chanchada! pero bueno, es lo que hay, y soluciona el problema):

1. En nuestro HTML ponemos un Flash que va a desplegar el contenido que querramos.

2. Programamos el flash para que acceda a un PHP que nos va a traer los datos que querramos.

3. En el servidor Windows subimos el HTML, y en un servidor Linux (otro que tengamos) subimos el Flash y el PHP. El HTML levanta el flash que está en el servidor Linux (para eso ponemos la ruta absoluta donde está el flash en el HTML ej: http://www.midominiolinux.com/flashito.swf).

ATENCIÓN: (y esto es el punto importante de este post) para que el flashito levante las cosas del PHP y funcione correctamente, hay que poner la ruta absoluta del php dentro del flash (ej. no alcanza con poner load (miphp.php) por más que el swf esté en la misma carpeta que el php.. hay que poner “load (http://www.midominiolinux.com/miphp.php).

Orden de tabulación en Flash

7 Ago

Para cambiar el orden de tabulación en Flash (es decir, el orden de los campos a los que vamos cuando apretamos la tecla tab), hay que utilizar el botón de Accesibilidad.

Este botón está bastante escondido, pero lo encontramos en la parte de “Propiedades”. Allí, un botoncito azul con una personita “Editar Configuración de Acceso” nos permite, seleccionando un objeto (por ejemplo un campo de texto), y haciendo click en ese botón, indicar el orden de tabulación.

Si todo quedó correcto, aparecerá una imágen azul con un número en la parte superior izquierda del elemento al que le hayamos seteado el orden de tabulación. En caso de que los nros. no aparezcan, ir a “Ver”, y seleccionar la opción “Mostrar orden de tabulación”.

Orden de Tabulación

Orden de Tabulación

Creación de PDFs – Joomla 1.5.2

1 Jun

En Joomla 1.5.2 hay un problema con la creación de PDFs (al menos si nuestro servidor utiliza php 4.x). Joomla utiliza el paquete tcpdf para la creación de los pdfs. La solución al problema está detallada en: http://forum.joomla.org/viewtopic.php?f=430&t=278117

1.) Entrar a: http://sourceforge.net/projects/tcpdf/
2.) Bajar el paquete para PDF 4.x
3.) Borrar (o renombrar) la carpeta original de tcpdf que viene con la instalación de Joomla (/libraries/tcpdf/)
4.) Descomprimir y subir los archivos que bajamos en nuestra instalación de Joomla (/libraries/tcpdf/)

Eventualmente, puede ser necesario editar el archivo tcpdf_config.php en /libraries/tcpdf/config/ poniendo el root path y el URL path apuntando al directorio /tcpdf/.

Buscador dentro de una página

23 May

Este código está muy bueno. Salió de: http://www.dynamicdrive.com/dynamicindex11/findpage.htm Ahí se lo puede ver funcionando también. Nosotros lo usamos para Tarjeta Fútbol, en el buscador de Locales Adheridos.

Permite buscar dentro de una página web (igual a como si hicieras CTRL+F o CTRL+B). Lo mejor que tiene, es que funciona tanto en Mozilla como en IE.

<script>
<!– Hide from old browsers

/******************************************
* Find In Page Script — Submitted/revised by Alan Koontz (alankoontz@REMOVETHISyahoo.com)
* Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
* This notice must stay intact for use
******************************************/

//  revised by Alan Koontz — May 2003

var TRange = null;
var dupeRange = null;
var TestRange = null;
var win = null;
//  SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
//  http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

var nom = navigator.appName.toLowerCase();
var agt = navigator.userAgent.toLowerCase();
var is_major   = parseInt(navigator.appVersion);
var is_minor   = parseFloat(navigator.appVersion);
var is_ie      = (agt.indexOf(“msie”) != -1);
var is_ie4up   = (is_ie && (is_major >= 4));
var is_not_moz = (agt.indexOf(‘netscape’)!=-1)
var is_nav     = (nom.indexOf(‘netscape’)!=-1);
var is_nav4    = (is_nav && (is_major == 4));
var is_mac     = (agt.indexOf(“mac”)!=-1);
var is_gecko   = (agt.indexOf(‘gecko’) != -1);
var is_opera   = (agt.indexOf(“opera”) != -1);
//  GECKO REVISION

var is_rev=0
if (is_gecko) {
temp = agt.split(“rv:”)
is_rev = parseFloat(temp[1])
}
//  USE THE FOLLOWING VARIABLE TO CONFIGURE FRAMES TO SEARCH
//  (SELF OR CHILD FRAME)

//  If you want to search another frame, change from “self” to
//  the name of the target frame:
//  e.g., var frametosearch = ‘main’

//var frametosearch = ‘main’;
var frametosearch = self;
function search(whichform, whichframe) {

//  TEST FOR IE5 FOR MAC (NO DOCUMENTATION)

if (is_ie4up && is_mac) return;

//  TEST FOR NAV 6 (NO DOCUMENTATION)

if (is_gecko && (is_rev <1)) return;

//  TEST FOR Opera (NO DOCUMENTATION)

if (is_opera) return;

//  INITIALIZATIONS FOR FIND-IN-PAGE SEARCHES

if(whichform.findthis.value!=null && whichform.findthis.value!=”) {

       str = whichform.findthis.value;
       win = whichframe;
       var frameval=false;
       if(win!=self)
{

       frameval=true;  // this will enable Nav7 to search child frame
       win = parent.frames[whichframe];

}

   
}

else return;  //  i.e., no search string was entered

var strFound;

//  NAVIGATOR 4 SPECIFIC CODE

if(is_nav4 && (is_minor < 5)) {
  
  strFound=win.find(str); // case insensitive, forward search by default

//  There are 3 arguments available:
//  searchString: type string and it’s the item to be searched
//  caseSensitive: boolean — is search case sensitive?
//  backwards: boolean –should we also search backwards?
//  strFound=win.find(str, false, false) is the explicit
//  version of the above
//  The Mac version of Nav4 has wrapAround, but
//  cannot be specified in JS

 
        }

//  NAVIGATOR 7 and Mozilla rev 1+ SPECIFIC CODE (WILL NOT WORK WITH NAVIGATOR 6)

if (is_gecko && (is_rev >= 1)) {
  
    if(frameval!=false) win.focus(); // force search in specified child frame
    strFound=win.find(str, false, false, true, false, frameval, false);

//  The following statement enables reversion of focus
//  back to the search box after each search event
//  allowing the user to press the ENTER key instead
//  of clicking the search button to continue search.
//  Note: tends to be buggy in Mozilla as of 1.3.1
//  (see www.mozilla.org) so is excluded from users
//  of that browser.

    if (is_not_moz)  whichform.findthis.focus();

//  There are 7 arguments available:
//  searchString: type string and it’s the item to be searched
//  caseSensitive: boolean — is search case sensitive?
//  backwards: boolean –should we also search backwards?
//  wrapAround: boolean — should we wrap the search?
//  wholeWord: boolean: should we search only for whole words
//  searchInFrames: boolean — should we search in frames?
//  showDialog: boolean — should we show the Find Dialog?
}

 if (is_ie4up) {

  // EXPLORER-SPECIFIC CODE revised 5/21/03

  if (TRange!=null) {
  
   TestRange=win.document.body.createTextRange();

   if (dupeRange.inRange(TestRange)) {

   TRange.collapse(false);
   strFound=TRange.findText(str);
    if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = win.document.body.scrollTop + TRange.offsetTop;
        TRange.select();
        }

   }
   else {

     TRange=win.document.body.createTextRange();
     TRange.collapse(false);
     strFound=TRange.findText(str);
     if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = TRange.offsetTop;
        TRange.select();
        }
   }
  }
 
   if (TRange==null || strFound==0) {
   TRange=win.document.body.createTextRange();
   dupeRange = TRange.duplicate();
   strFound=TRange.findText(str);
    if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = TRange.offsetTop;
        TRange.select();
        } 
   }
 }

 if (!strFound) alert (“String ‘”+str+”‘ not found!”) // string not found       
}
// –>
</script>

<!–  EXAMPLE FORM OF FIND-IN-PAGE SEARCH USING SUBMIT (ALLOWING ‘ENTER/RETURN’ KEY PRESS EVENT) –>
<form name=”form1″ onSubmit=”search(document.form1, frametosearch); return false”><input type=”text” name=”findthis” size=”15″ title=”Press ‘ALT s’ after clicking submit to repeatedly search page”> <input type=”submit” value=”Find in Page” ACCESSKEY=”s”></form>

 

Descarga de Archivo Automática

9 May

Para hacer que un archivo se descargue automáticamente cuando el usuario entra a una página, se debe utilizar el siguiente META-TAG:

<META HTTP-EQUIV=”Refresh” CONTENT=”5;URL=descarga.zip”>

5 es la cantidad de segundos que se va a demorar antes de empezar la descarga.

Refresh Automático de una página

6 May

Al trabajar con cookies, muchas veces puede ser necesario que la página que contiene un formulario se refresque. Esto se logra a través de la etiqueta body:

<body onLoad=”if (location.href.indexOf(‘reload’)==-1) location.replace(location.href+’?reload’)”>

También puede hacerse que de un HTML se vaya a otro a través de un meta tag:

<meta http-equiv=”refresh” content=”5; url=formulario.php”>

El 5, es la cantidad de segundos que se va a esperar antes de hacer el redireccionamiento.

 

Cookies

30 Abr

¿Qué son las cookies, y cómo las utilizo?

Básicamente, las cookies permiten guardar información del usuario que entra a nuestro sitio en su navegador. Esa información se mantiene almacenada durante un tiempo que nosotros determinaremos. Para que funcione, el usuario tiene que tener habilitadas las cookies en su navegador.

Para enviar una cookie al navegador del usuario utilizaremos la función setcookie(). Dicha función tiene la siguiente sintaxis en PHP:

bool setcookie ( string nombre [, string valor [, int expirar [, string ruta [, string dominio [, bool segura [, bool solohttp ]]]]]] )

A modo de ejemplo:

<?php
   setcookie(“usuario”, “Rosario”, time()+3600,”/”,”midominio.com”);
?>

Luego podríamos obtener la información de esa cookie de esta manera:

<?php
   $_COOKIE[“usuario”];
?>

Algunos datos interesantes y errores comunes:

  1. Las cookies no se ven hasta que se refresca la página
  2. Las cookies se borran seteandolas con los mismos parámetros con que se setearon originalmente, pero poniendo FALSE en el contenido (ejemplo: setcookie(“usuario”, FALSE, time()+3600,”/”,”midominio.com”);

Un link con una explicación más completa es:

 

 

 

A %d blogueros les gusta esto: