JavaScript — Sin comentarios
26
Abr 10
Actualmente todos los navegadores (a excepción de Internet Explorer, como siempre) acepta añadir a la barra de marcadores funciones javascript que nos pueden facilitar la vida.
En esta ocasión traigo cómo hacer que se envíen datos a una página en función de un texto seleccionado en la página actual, así al pinchar en la barra de marcadoes haría lo que le dijéramos con ese texto.
Lo primero que hay que tener en cuenta es cómo se añade el javascript a la barra de marcadores. Siempre hay que empezar con
javascript:
Después hay que añadir lo que queremos que haga. Aquí teneis un ejemplo para comprobar el whois de un dominio en el caso de seleccionarlo:
javascript:location.href='http://www.who.is/' + encodeURIComponent(document.getSelection());
Si lo que queremos es comprobar el dominio donde estamos podemos emplear:
javascript:location.href='http://www.who.is/' + encodeURIComponent(document.location.href);
PHP — Sin comentarios
26
Abr 10
Nos es muy útil, en muchas ocasiones, almacenar la ip del visitante, por ejemplo cuando queremos controlar los mensajes de spam para bloquearles, almacenar la ip para un tracking de afiliados o para infinidad de cosas.
Con esta pequeña función podemos obtenerla saltando los proxies.
function user_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
return( $ip );
}
PHP — Sin comentarios
26
Abr 10
Uno de los peligros de implementar formularios en nuestros proyectos, formularios que pueda rellenar el público, como comentarios o mensajes de correo, es que se presta fácilmente a la inyección de código en función de su labor. Por ejemplo, si tenemos un formulario para añadir un comentario y cuando lo mostramos lo ejecutamos directamente puede incluir código de javascript o php que robe información o estropee nuestro server.
El siguiente código nos permite limitar este peligro limpiando la variable post, añadiendo barras de literal cuando sea necesario.
$_POST = (get_magic_quotes_gpc() ? array_map('stripslashes', $_POST) : $_POST);
Sin categoría — Sin comentarios
22
Abr 10
Hay muchas situaciones en las que tenemos que decidir si poner las “www” o quitarlas del dominio. En ocasiones va en gusto, en otras por no perder links, en otras por estética, en otras por SEO, pero casi siempre terminamos poniéndolas a mano dominio por dominio.
Aquí traigo una forma de dejarlo para cualquier dominio con las www o sin ellas.
Siempre con www:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
En el caso de no querer poner las www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
JavaScript — Un comentario
11
Abr 10
En muchos formularios nos puede venid bien que tengan un formato inline al estilo del login de facebook, es decir, que el contenido del campo nos indique qué hay que introducir y cuando vayamos a ese campo eliminemos el contenido para que el usuario lo rellene. Con esto nos ahorraríamos poner “label” para cada campo.
<input type="text" name="mi_variable"
onfocus="if( this.value == 'etiqueta' ) { this.value = ''; }"
onblur="if( this.value == '' ) { this.value = 'etiqueta'; }"
value="etiqueta" />
Siendo ‘etiqueta’ el nombre del contenido. En el caso de las contraseñas se podría hacer igual pero solamente veríamos asteriscos, así que habría que cambiar el type también. Como añadido podríamos cambiar el color según es onfocus u onblur a través de this.style.color.
Aquí va otro ejemplo:
<input type="text" name="Password"
onfocus="
if( this.value == 'Password' ) {
this.value = ''; // Borramos el contenido para dejarlo limpio para el usuario
this.style.color = '#000000'; // Lo ponemos en negro
this.type = 'password'; // Lo convertimos en password para que muestre asteriscos
}"
onblur="
if( this.value == '' ) {
this.value = 'Password'; // Volvemos a ponerle el texto en caso de no haber añadido una password
this.style.color = '#CCCCCC'; // Lo ponemos en gris
this.type = 'text'; // Lo pasamos a texto si no ha introducido password
}"
value="Password" />