domingo, 28 de julio de 2013

Activar mod_rewrite en appServer

Si trabajas regularmente con webs en PHP teniendo en cuenta el SEO utilizarás urls amigables.
Para poder trabajar con ellas con el AppServ es necesario activar el módulo rewrite de la siguiente manera:

1.- Abrir el archivo de configuración httpd.conf (se puede acceder a él desde C:\AppServ\Apache2.2\conf)

2.- Abrir para editar el archivo httpd.conf , Descomentar (quitar #) la línea #LoadModule rewrite_module modules/mod_rewrite.so

4.- Reiniciar el servidor web local.

5.- ¡Listo! Ya solo quedará configurar el archivo .htaccess a con la sintaxis de las urls que quieras construir.

Poner comentarios en un fichero .htaccess

Para poner comentarios en los ficheros .htaccess es necesario poner lo que queremos comentar con #, aqui vemos un ejemplo:

#RewriteEngine On
#RewriteBase /
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ /index.php?/$1 [L]


RewriteEngine On
RewriteBase /ci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /ci/index.php/$1 [L]


Las lineas que tienen # son las líneas comentadas por lo tanto el fichero no se ejecutarán al leer el archivo.

miércoles, 24 de julio de 2013

Error pagina en blanco al loguearte en el administrador de joomla

Hoy vamos con un problema un tanto peculiar, no sé si alguno de vosotros ha instalado alguna vez un cms, por ejemplo joomla, drupal, wordpress, el que lo haya hecho le ha podido pasar dos cosas, o que funcione todo perfecto y sea todo maravilloso o que al tocar alguna opción todo deje de funcionar... Esto segundo me pasó a mí y tardé la de dios para solucionarlo ja ja.

Dicho esto, cuanto tocas los permisos de usuarios de joomla puede que sin querer cambies el permiso de super administrador y al loguearte en tu panel de control www.tuweb.com/administrator, te aparezca la pantalla en blanco,  vease en la imagen:

.

La solución es más fácil de lo que parece:

Entras al ftp al directorio raiz de tu página web, y abres para modificar el fichero configuration.php:
Le añades la siguiente linea:

          public $root_user='tunombredeusuario';

Guardas los cambios, ahora solamente queda loguearte, una vez logueado solo tienes que volver a modificar el fichero configuration.php y borrar la linea que has puesto, lo guardas y ya tendrás funcionando tu joomla perfectamente :D

Espero que os haya servido, un saludo.

sábado, 13 de julio de 2013

Problema internal error 500 con codeigniter, problema de urls amigables en un servidor de internet

Cuando trabajamos con un framework como codeigniter que trabaja con url amigables tendremos alguna vez el problema de que en tu propio servidor local funcionará correctamente pero al subirlo a tu servidor compartido no te funcionará ninguna url, este problema me llevó a tirarme de los pelos hasta que al final di con la solución, espero que os sirva, yo ya pensaba cambiarme de framework.

Configuración fichero htaccess local:


RewriteEngine On
RewriteBase /ci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /ci/index.php/$1 [L]


Configuración del fichero htaccess en un servidor de internet:



RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]


Espero que os sirva un saludo, y a programar con codeigniter!!

miércoles, 10 de julio de 2013

Select con todas las horas del día en html

Aqui veremos un select con todas las horas del día:

<select id="busqueda_hora">
        <option value="00:00">00:00</option>
        <option value="00:30">00:30</option>
        <option value="01:00">01:00</option>
        <option value="01:30">01:30</option>
        <option value="02:00">02:00</option>
        <option value="02:30">02:30</option>
        <option value="03:00">03:00</option>
        <option value="03:30">03:30</option>
        <option value="04:00">04:00</option>
        <option value="04:30">04:30</option>
        <option value="05:00">05:00</option>
        <option value="05:30">05:30</option>
        <option value="06:00">06:00</option>
        <option value="06:30">06:30</option>
        <option value="07:00">07:00</option>
        <option value="07:30">07:30</option>
        <option value="08:00">08:00</option>
        <option value="08:30">08:30</option>
        <option value="09:00">09:00</option>
        <option value="09:30">09:30</option>
        <option value="10:00">10:00</option>
        <option value="10:30">10:30</option>
        <option value="11:00">11:00</option>
        <option value="11:30">11:30</option>
        <option value="12:00">12:00</option>
        <option value="12:30">12:30</option>
        <option value="13:00">13:00</option>
        <option value="13:30">13:30</option>
        <option value="14:00">14:00</option>
        <option value="14:30">14:30</option>
        <option value="15:00">15:00</option>
        <option value="15:30">15:30</option>
        <option value="16:00">16:00</option>
        <option value="16:30">16:30</option>
        <option value="17:00">17:00</option>
        <option value="17:30">17:30</option>
        <option value="18:00">18:00</option>
        <option value="18:30">18:30</option>
        <option value="19:00">19:00</option>
        <option value="19:30">19:30</option>
        <option value="20:00">20:00</option>
        <option value="20:30">20:30</option>
        <option value="21:00">21:00</option>
        <option value="21:30">21:30</option>
        <option value="22:00">22:00</option>
        <option value="22:30">22:30</option>
        <option value="23:00">23:00</option>
        <option value="23:30">23:30</option>
           
        </select>

martes, 9 de julio de 2013

Select de provincias de España

Muchas veces hemos necesitado un select en html con todas las provincias de España. Aquí os lo dejamos para que no tengáis que hacerlo, os ahorrara mucho tiempo :).


Expresiones regulares en php

Hemos dicho que las expresiones regulares son uno de los instrumentos mas útiles en cualquier lenguaje de programación. ¿Para que podemos usarlas?. Uno de sus usos mas típicos es el de validar entradas de datos que los visitantes de una página puedan mandarnos a través de formularios html.
El ejemplo mas corriente es el de una dirección email. Imaginemos que queremos filtrar las direcciones introducidas por los visitantes, para evitar introducir en la base de datos la típica dirección basura ghghghghghghg. Todos sabemos la estructura de una dirección email, formada por la cadena nombreusuario, el signo @ y la cadena nombredominio. Tambien sabemos que nombredominio esta formado por dos subcadenas, 'nombredomino', un '.' y un sufijo 'com', 'net', 'es' o similar.
Por tanto la solución a nuestro problema es idear una expresión regular que identifique una dirección email valida típica, y confrontarla con la cadena (dirección email) pasada por el visitante
Por ejemplo:

<?
^[^@ ]+@[^@ ]+.[^@ .]+$
?>


Vamos a diseccionar nuestra expresión regular:

<?
^ // queremos decir que el primer carácter que buscamos
// debe estar al principio de la cadena a comparar.

[^@ ] // ese primer signo no debe ser ni el signo @
// ni un espacio

+ // y se repite una o mas veces
@ // luego buscamos el signo @

[^@ ]+ // Seguido de otro signo que no es un @ ni un
// espacio y se repite una o mas veces

. // Seguido de un .

[^@ .] // Seguido de un carácter que no sea ni @,
// ni espacio ni punto

+$ // Que se repite una o mas veces y el último esta
// al final de la cadena
?>


Y para comprobarlo en la práctica, usamos una de las funciones de php relacionadas con las expresiones regulares:ereg().
Acudiendo al manual php, podemos averiguar que esta función tiene la siguiente sintaxis:
ereg (string pattern, string string)
Busca en string las coincidencias con la expresión regular pattern. La búsqueda diferencia entre mayúsculas y minúsculas.
Devuelve un valor verdadero si se encontró alguna coincidencia, o falso in no se encontraron coincidencias u ocurrió algún error. Podríamos usar esta funcion para un validador email con algo asi como:

<?

// establecemos una secuencia condicional: si la variable $op no existe y
// es igual a "ds", se muestra un formulario

if ($op != "ds") { ?>
<form>
<input type=hidden name="op" value="ds">
<strong>Tu email:</strong><br />
<input type=text name="email" value="" size="25" />
<input type=submit name="submit" value="Enviar" />
</form>
<?
}

// Si $op existe y es igual a "ds"m, se ejecuta la función ereg buscando
// nuestra cadena dentro del patrón $email que es la direccion enviada por
// el usuario desde el formulario anterior

else if ($op == "ds")
{
    if (ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $email ) )
    {
      print "<BR>Esta dirección es correcta: $email"; }
    else {echo "$email no es una dirección valida";}
   }

?>


No hace falta advertir que se trata de un ejemplo muy elemental, que dará por válida cualquier dirección email que tenga una mínima apariencia de normalidad (por ejemplo, daria por valida 'midireccionnn@noteimporta.commm')

jueves, 4 de julio de 2013

Como poner fondo a un div/section desde css

Para poner un fondo en este caso una imagen de fondo a un elemento div debemos tener en cuenta
que la llamada a la imagen debe ser realizada desde el nivel del arhivo .css que se esta importando
en la determinada pagina .html, alguna veces este es un error comun el colocar la ruta de la imagen
en el archivo .css pero teniendo en cuenta el nivel de la pagina .html en la cual se esta importanto dicho archivo
.css para poder mostrar la imagen de fondo.
ejemplo:
si tienes una carpeta con tu pagina web llamada miweb dentro de ésta carpeta tienes un archivo index.html
y dos carpetas una llamada estilos y la otra imagenes y dentro de estilos tienes estilo1.css y dentro de
imagenes tienes imagen1.jpg y dentro de la pagina index.html incluyes el archivo estilos1.css, para ponder
la imagen imagen1.jpg de fondo a una etiqueta div con id=”barnner1″; entonces en el archivo estilo1.css debe
haber algo como esto:
#barnner1{
width:800px;  //ancho del div
height:100px; // alto del div
position:relative; // posicion de la imagen
background-image:url(“../imagenes/imagen1.jpg”); // ruta de la imagen, como pueden ver se pone ../ porque se toma el nivel del archivo estilo1.css y no desde el nivel index.html
background-repeat: no-repeat; // para que la imagen no se repita
}