Posts Tagged ‘Programming’

Facebook Dev: You CAN use your localhost as test server

07/01/2009

This might be obvious, but if you don’t want to have a test server online because Facebook doesn’t seem to allow “localhost”, all you need to do is edit your hosts file.

Yep, it’s THAT simple. Here are the locations of the hosts file on different systems.

All you need to do is add an entry:

127.0.0.1      http://www.myfbappwebsite.com

This should only be used for the very first stages of your site development, as it doesn’t allow any other users. It also might not be team-friendly. In that case, you can use a dynamic DNS service and use a temporary URL in the App’s settings.

Note: It’s possible that if you’re behind a router and you use a dynamic DNS service, *you* will be shown your router’s control panel. Confirm this with a trusted friend before giving away the temporary URL. Once you’re sure only you can see your router’s control panel, correct this issue locally by using the hosts file solution above.

Advertisements

PHP y VB.Net: más trucos de línea de comando

08/04/2008

Tenía ganas de hacer las cosas cortas y rápidas.

Así que con un poco de investigación de la mano del amigo Google, encontré una interesante forma de abrir mis scripts con Visual Basic .Net.

Lo primero es lo primero. Localizar los archivos php.exe y php5ts.dll y copiarlos en C:\Windows.

Luego, abrimos Visual Studio .Net y creamos una nueva aplicación de consola. No se preocupen, no necesitamos mucho para tener un script andando. La consola servirá para formar los comandos interactivamente. Esto es ideal si quieren usar argumentos con los scripts PHP, de los que hablé anteriormente.

Lo que deben tener en cuenta es que para leer lo que el usuario coloca en la línea de comando necesitan usar Console.ReadLine()

Dim nombre As String
Console.WriteLine("Tu nombre de usuario? (sin espacios)")
nombre = Console.ReadLine()

De esta forma, podrán pedir cualquier información y para ejecutar el script necesitarán esto:

Dim startInfo As New ProcessStartInfo()
startInfo.FileName = "php"
startInfo.Arguments = "C:\carpeta\al\script.php -- -usuario " & nombre
startInfo.WindowStyle = ProcessWindowStyle.Hidden

Process.Start(startInfo)

No olviden hacer los Imports necesarios:

Imports System
Imports System.Diagnostics
Imports System.ComponentModel

Nota: Aclaro que sé más de VB3-VB6 que de VB.Net, por lo que algunas cosas podrán parecer obvias o ridículas.

Apache: mod_rewrite, dos puntos (colon) en la URL… ¿Error 403?

29/02/2008

Si estás tratando de usar una dirección como esta: http://www.migransitio.com/amigo-http://www.misitioamigo.com/ y te preguntás por qué no te anda a vos, pero a otra gente sí, no te calentés más…

Sucede que en Windows, Apache no puede trabajar con una URL que tenga los dos puntos (en inglés es colon) en la URL.

Pero, estamos hablando de una URL “compuesta”… O sea, una URL y no los parámetros de la URL. ¡OJO! Este: http://www.migransitio.com/amigo?http://www.misitioamigo.com/ funciona perfectamente en Windows porque la dirección está en la parte del “string query”.

Para probar esta estrategia, vas a tener que hacerlo en un servidor Apache en Linux/Unix o cualquier cosa que no sea Windows…

Saludos!

Apache: Redireccionamiento con mod_rewrite

01/12/2007

Esta es una funcionalidad que puede ser de utilidad a la hora de redireccionar basándonos en subdominios… En estos casos, Redirect y RedirectMatch no son muy flexibles.

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^subdominio\.midominio\.com$ [NC]
RewriteRule ^(.*)$ http://subdominio.midominio.com/$1 [R=301,NC]

Con esto, buscamos la dirección del sitio que está accediendo nuestro visitante… Si no es nuestro subdominio (por ende, el signo de exclamación en el patrón de RewriteCond) redireccionamos al visitante hacia nuestro subdominio, y agregamos cualquier cosa que haya sido accedida…

El RewriteBase tal vez no sea necesario, pero evita que se tenga que tener en cuenta el / en el RewriteRule (en algunos casos, al menos, no especificar RewriteBase / puede entorpecer un patrón como ^index$ ya que no se correspondería con /index. Espero que se entienda…)

Obviamente, la verificación del HOST puede servir para muchas otras cosas…

PHP: Usando scripts como Tareas Programadas en Windows XP

09/11/2007

Hay ciertas cosas que valen la pena saber. Ya sea para no cargar un servidor remoto o simplemente para trabajar en nuestra PC, correr scripts PHP como Tareas Programadas es muy conveniente y eficaz.

Simplemente programen su script, y luego creen un archivo Batch de Windows (.bat):

C:\servidor\php\php -f C:\servidor\scripts\miscript.php

Guarden el archivo donde quieran, y luego vayan a Inicio > Accesorios > Herramientas del sistema > Tareas programadas. Creen una nueva tarea programada, y usen el archivo que crearon anteriormente. Configuren la frecuencia que deseen, y listo.

Batch + aMSN: Launching multiple accounts automatically

15/09/2007

Have you ever wondered how to open multiple aMSN accounts with one click? Well, this is what I’ve done with some Batch and a hack found at the aMSN forums:

  1. Open the amsn file (it has no extension) with NotePad++ or a similar text editor.
  2. Add the following code before the line that has “vwait events”:
 proc auto_login_argv { user } {
if { [winfo exists .main.loginscreen] } {
.main.loginscreen.user delete 0 end
.main.loginscreen.user insert 0 $user
.main.loginscreen UsernameEdited
after 1000 “::MSN::connect”
}
}

if { $argv != “” } {
after idle [list auto_login_argv $argv]
}
  1. Save the changes and go to the beginning of the file. Replace the first lines for the following:
#!/bin/sh
# \
exec wish $0 $@
  1. Save changes again.
  2. Now we create the batch file (.bat). Open a text editor and save an empty file as aMSN.bat, and save it on the Desktop or somewhere else. Add the following to it:
@echo off

echo Open mymail1@hotmail.com? [Y / N]
set /P open1=
if /i “%open1%” == “Y” start “” “C:\Program Files\aMSN\bin\wish.exe” “C:\Program Files\aMSN\scripts\amsn” mymail1@hotmail.com

echo Open mymail2@hotmail.com? [Y / N]
set /P open2=
if /i “%open2%” == “Y” start “” “C:\Program Files\aMSN\bin\wish.exe” “C:\Program Files\aMSN\scripts\amsn” mymail2@hotmail.com

echo Open mymail3@hotmail.com? [Y / N]
set /P open3=
if /i “%open3%” == “Y” start “” “C:\Program Files\aMSN\bin\wish.exe” “C:\Program Files\aMSN\scripts\amsn” mymail3@hotmail.com

echo Open mymail4@hotmail.com? [Y / N]
set /P open4=
if /i “%open4%” == “Y” start “” “C:\Program Files\aMSN\bin\wish.exe” “C:\Program Files\aMSN\scripts\amsn” mymail4@hotmail.com
  1. Save the changes. Now double-click on the aMSN.bat file and make sure it works.

There are probably better ways to code it, but I’m rather new to Batch. I only use small bits of code from time to time.

The only downside I see is that aMSN eventually takes up more memory than WLM. But still, I like its less cluttered interface.

Batch + aMSN: Abriendo múltiples cuentas al mismo tiempo

08/09/2007

aMSN es un programa completamente gratuito y de código abierto, que imita al MSN Messenger (ahora conocido como Windows Live Messenger).

Algunos se deben preguntar cómo hacer para abrir múltiples cuentas automáticamente… Pues aquí tengo la solución…

  1. Abrir el archivo amsn (sin extensión) con un programa de edición de texto como el Bloc de Notas (Notepad) de Windows o con NotePad++
  2. Agregar el siguiente código antes de la línea “vwait events”:
 proc auto_login_argv { user } {
if { [winfo exists .main.loginscreen] } {
.main.loginscreen.user delete 0 end
.main.loginscreen.user insert 0 $user
.main.loginscreen UsernameEdited
after 1000 "::MSN::connect"
}
}

if { $argv != "" } {
after idle [list auto_login_argv $argv]
}
  1. Guardar los cambios. Cambiar las primeras líneas por:
#!/bin/sh
#
exec wish $0 $@
  1. Guardar los cambios.
  2. Ahora crearemos el archivo batch para poder abrir las cuentas. Elige crear un nuevo archivo vacío y llámalo aMSN.bat, y guárdalo al escritorio. Ábrelo para editar y coloca el siguiente código:
@echo off

echo Abrir micuenta1@hotmail.com? [Y / N]
set /P open1=
if /i "%open1%" == "Y" start "" "C:Archivos de programaaMSNbinwish.exe" "C:Archivos de programaaMSNscriptsamsn" micuenta1@hotmail.com

echo Abrir micuenta2@hotmail.com? [Y / N]
set /P open2=
if /i "%open2%" == "Y" start "" "C:Archivos de programaaMSNbinwish.exe" "C:Archivos de programaaMSNscriptsamsn" micuenta2@hotmail.com

echo Abrir micuenta3@hotmail.com? [Y / N]
set /P open3=
if /i "%open3%" == "Y" start "" "C:Archivos de programaaMSNbinwish.exe" "C:Archivos de programaaMSNscriptsamsn" micuenta3@hotmail.com

echo Abrir micuenta4@hotmail.com? [Y / N]
set /P open4=
if /i "%open4%" == "Y" start "" "C:Archivos de programaaMSNbinwish.exe" "C:Archivos de programaaMSNscriptsamsn" micuenta4@hotmail.com
  1. Guarda los cambios. Ahora haz doble click sobre aMSN.bat y prueba si todo ha sido correctamente configurado. Deberías poder elegir cuáles cuentas abrir.

Seguramente el archivo batch puede ser programado mejor, pero sólo sé lo básico del lenguaje. Si tienes más de cuatro cuentas, simplemente agrégalas, y aumenta el número de las variables.

PHP: Pasando datos en forma de array

08/09/2007

Tenemos un formulario o una URL con campos o parámetros en una matriz (o array).

modo=perro&color[]=marron&color[]=blanco&tam=toy

¿Cómo llamarle desde nuestro código PHP? Muy sencillo. Lo que debemos hacer es revisar la variable correspondiente al método usado:

<?php
echo "Busco ".$_GET['modo'].". De los siguientes colores:\n";
	if(is_array($_GET['color']))
	{
		for($i = 0; $i 

Este ejemplo sirve para los métodos GET y POST. Simplemente cambia la variable $_GET por $_POST y usa un formulario o el objeto XmlHttpRequest de JavaScript para enviar los datos.

PHP: Links como directorios, Parte 2

30/08/2007

El mejor método requiere del mod_rewrite de Apache, que es un módulo que muchos hostings gratuitos no ofrecen.

La ventaja es que no hay que quitarle la extensión al archivo, ni hacer demasiado para parsear las URLs.

Por ejemplo, supongamos que quiero que mis páginas .php sean vistas como .htm (u otro) y que además se cargue el diseño dinámicamente.

¿Suena complicado? ¡Pues no lo es! Simplemente escribes las reglas con expresiones regulares en el .htaccess:

RewriteEngine on
RewriteRule ^(.+)\.htm$ /index.php?id=$1

Sí­, ¡es como preg_match()! Te explico: “RewriteEngine on” es el comando que se usa para habilitar esta herramienta. En algunos casos, dicen que no es necesario pero nunca viene mal asegurarse. :)

La regla consiste en: RewriteRule patrón reemplazo

En ningún momento se va a ver que tu página remates.htm es en realidad index.php?id=remates (tenés que poner algún verificador en index.php para evitar la vista directa de esa página).

Nota: Este es el último artículo que pude recuperar del viejo sitio de PHP que solía tener. A partir de aquí puede que publique nuevos artículos.

Puede que la información esté desactualizada. Hasta este artículo, se trataba solamente con PHP 4.

PHP: Links como directorios, Parte 1

30/08/2007

El primer modo de ocultar PHP es utilizando un archivo sin extensión. Como index, a secas. Tal vez para editarlo tengan que ponerle .txt hasta subirlo al servidor.

En un .htaccess pueden colocar lo siguiente:

ForceType application/x-httpd-php

De esta forma, index será tratado como index.php, y se podrá parsear la dirección que le den.

Si querés usarlo como index?var1=valor1, se usa como si tuviera la extensión. Pero para acceder a cosas como index/valor1, tenés que usar expresiones regulares al llamar la variable: $_SERVER[‘REQUEST_URI’]