Error HTTP 500.0 – Internal Server Error en PHP sobre IIS7

Error HTTP 500.0 – Internal Server Error
No se puede mostrar la página. Error interno en el servidor.

Error detallado de IIS 7.5 - 500.0 - Internal Server Error
Error detallado de IIS 7.5 - 500.0 - Internal Server Error

¿Te topaste con este mismo error al probar tu página PHP sobre IIS7 o 7.5?

Todo iba bien, hasta que esta página de error me sacó de cuadro.

Después de revisar en todo internet y aplicar lo que recomendaban, no solucionó el problema.

Lo que causa el problema es simplemente por error de código en la página PHP, se produce un error en el código PHP y el IIS muestra ese mensaje, pero no especifíca la naturaleza del error para poder depurarlo.

Pero, ¿como habilitar las páginas tradicionales de error como si se tratara de un servidor Apache?

Simplemente debemos editar el php.ini y verificamos que la línea del display_errors esté en on, de la siguiente manera:

display_errors = On

Verifique que no esté antecedida del símbolo ; (punto y coma) sino se considera un comentario.

Espero les haya servido esta experiencia compartida.

Saludos.

Etiquetado: / / / / /

Problemas con phpMyAdmin en IIS 7

[Solucionado] Este post podría titularse: El famoso error de phpMyAdmin en IIS 7: #2002 El servidor MySQL no autorizó su ingreso.

Considero que este problema es muy común, sin embargo no está muy documentado.

¿Quién no ha trabajado con phpMyAdmin, de manera practica y sencilla?

Quise levantar PHP 5.3.3; MySQL 5.1.51-community y phpMyAdmin en IIS 7 sobre Windows 7 Professional.

Todo anduvo bien, excepto el phpMyAdmin, luego de colocar el usuario ya la contraseña, después de un largo tiempo sale:

Error phpMyAdmin #2002 El servidor MySQL no autorizó su ingreso
#2002 El servidor MySQL no autorizó su ingreso

Después de seguir tantas alternativas erroneas, la solución no pudo ser tan sencilla que basarse en la simple lógica de equivalencias de dirección IP y el localhost en la configuracion del config.inc.php, solamente hay que reemplazar ‘localhost’ por ‘127.0.0.1’ quedando la de esta manera:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

Eso es todo.

Etiquetado: / / / /

Prioritarios, lo nuevo de Gmail

Esta última semana Gmail incorporó en su versión beta el servicio llamado Prioritarios, se trata de la clasificación de los correos entrantes como relevantes o importantes basándose en los mensajes leídos, los contestados, la frecuencia de comunicación, con quién se chateó más, las palabras claves de los mensajes más leídos, etc. Es un sistema de clasificación dinámica.
La bandeja «Prioritarios», a su vez, agrupa los mensajes en tres secciones: «Importante no leído», «Destacado» y «Todo lo demás».
En caso de que Prioritarios categorice un correo electrónico como importante de forma incorrecta o de que no marque algún correo que tú consideres importante, puedes enseñar al sistema a que haga mejores selecciones. Lo único que tienes que hacer es seleccionar el mensaje en cuestión y hacer clic en el botón «Marcar como importante» o «Marcar como irrelevante»; estos botones se encuentran representados con los iconos más y menos justo a la izquierda de los menús desplegables Mover a y Etiquetas.
Al marcar un mensaje como irrelevante, éste desaparecerá de la sección «Importante». Con el tiempo, Prioritarios sabrá lo que es importante para ti e incorporará el comentario que proporciones a través de estos botones.

Complementando la Clase ManejoObj (Archivos)

En el artículo anterior publiqué, a manera de ejemplo, la clase ManejoObj para ser utilizada en el manejo de archivos de acceso aleatorio con objetos.

En esa clase, existe un método llamado Eliminar(String Cod), el cual marca el registro como eliminado, sin procesar la eliminación física del archivo. Seguir leyendo «Complementando la Clase ManejoObj (Archivos)»

Etiquetado: / /

Clase para manipular Flujos (Archivos) en Java

La Clase ManejoObj, nos permitirá manejar los flujos y las acciones sobre los registros (con objetos) y archivos. Usa instancias de la Clase CProducto como estructuras de registros.

import java.io.*;
import javax.swing.*;

public class ManejoObj {
private RandomAccessFile FES; //flujo
private int nregs; //numero de registros
private int TamañoReg=140; //tamaño del registro en bytes
private File ArchivoActual;

public ManejoObj(File Archivo) throws IOException
{
if(Archivo.exists() && !Archivo.isFile())
throw new IOException(Archivo.getName() + "no es un Archivo Válido");
ArchivoActual=Archivo;
FES=new RandomAccessFile(Archivo,"rw");
nregs=(int)Math.ceil((double) FES.length()/(double)TamañoReg);
}
public void Cerrar() throws IOException {FES.close();}
public int NRegristros(){this.Mensaje(String.valueOf(nregs) + " registros"); return nregs; }

public boolean PonerValorEn(int i,CProducto Obj) throws IOException
{
if(i >= 0 && i <= nregs)
{
if(Obj.Tamaño() + 4 > TamañoReg)
this.Mensaje("Tamaño de registro Excedido");
else
{
FES.seek(i* TamañoReg);
FES.writeUTF(Obj.getCodigo());
FES.writeUTF(Obj.getDescripcion());
FES.writeFloat(Obj.getPrecio());
return true;
}
}
else
this.Mensaje("Número de registro fuera de limites");
return false;
}

public CProducto ValorEn(int i) throws IOException
{
if(i >= 0 && i < nregs)
{
FES.seek(i*TamañoReg);
String Cod=FES.readUTF();
String Des=FES.readUTF();
float Pre=FES.readFloat();

return new CProducto(Cod,Des,Pre);
}
else
{
this.Mensaje("Número de registro fuera de limites");
return null;
}
}

public void Añadir(CProducto Obj) throws IOException
{
if(PonerValorEn(nregs,Obj)) nregs++;
}

public boolean Eliminar(String Cod) throws IOException
{
CProducto Obj;
for(int reg_i = 0; reg_i < nregs; reg_i++)
{
Obj=this.ValorEn(reg_i);
if(Obj.getCodigo().compareToIgnoreCase(Cod)==0)
{
Obj.setCodigo("");
this.PonerValorEn(reg_i, Obj);
return true;
}
}
return false;
}

public int Buscar(String Str, int Pos) throws IOException
{
CProducto Obj;
String Cod;
if(Str == null) return -1;
if(Pos < 0) Pos = 0;
for(int reg_i = Pos; reg_i < nregs; reg_i++)
{
Obj = this.ValorEn(reg_i);
Cod = Obj.getCodigo();
if(Cod.indexOf(Str) > -1)
return reg_i;
}
return -1;
}
public void Mensaje(String msj)
{
JOptionPane.showMessageDialog(null, msj, "Mensaje al Usuario", JOptionPane.INFORMATION_MESSAGE);
}
}
Etiquetado: / /

Clase CProducto

Esta es la clase CProducto con la cual trabajaremos los objetos para la manipulación de registros sobre archivos.

import java.io.*;
/**
 * @author Daniel F
 */
public class CProducto implements Serializable {
    String Codigo;
    String Descripcion;
    float Precio;
    public CProducto(){}
    public CProducto(String C, String D, float P)
    {
        Codigo=C;
        Descripcion=D;
        Precio=P;
    }
    public void setCodigo(String Cod)
    {
        Codigo=Cod;
    }
    public void setDescripcion(String Des)
    {
        Descripcion=Des;
    }
    public void setPrecio(float Pre)
    {
        Precio=Pre;
    }
    public String getCodigo()
    {
        return Codigo;
    }
    public String getDescripcion()
    {
        return Descripcion;
    }
    public float getPrecio()
    {
        return Precio;
    }
    public int Tamaño()
    {
        return Codigo.length()*2+Descripcion.length()*2+4;
    }
}
Etiquetado: / /

Mi bendición

Dicen que la vida está formada de instantes, y que cada instante es una bendición, cada instante es una razón de sentir. Que solo los seres humanos somos capaces de experimentar.

Hay momentos que son una bendición, como presenciar un amanecer, un atardecer, la sonrisa de un niño, las olas del mar, las aves, sentir el aroma de lluvia, la brisa del mar, una mirada tierna, un abrazo intenso, un suspiro irresistible, tantos otros momentos, sin olvidar, el placer de contemplarte y admirarte.

Mi Bendición – Juan Luis Guerra.

Etiquetado: / / / / /