miércoles, 23 de diciembre de 2020

Javascript Generate PDF from div content with JQuery

 Usar la librería: jsPDF

Usar en el HTML cualquier div de donde vamos a gerar el PDF: 

 

<div id="content">
     <h3>Hello, this is a H3 tag</h3>

    <p>A paragraph</p>
</div>
<div id="editor"></div>
<button id="cmd">generate PDF</button>

Y el JavaScript:

var doc = new jsPDF();
var specialElementHandlers = {
    '#editor': function (element, renderer) {
        return true;
    }
};

$('#cmd').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});

martes, 29 de enero de 2019

[Corregido] 500 Error: File is writeable by group

Casos en los que se presenta:
  • Cuando ingresas a tu script en PHP y aunque sólo tengas la linea de Hola mundo, aparece este mensaje.
  • Otros mensajes similares de diagnóstico es que siempre obtienes un error 500, cuando el código nunca ha tenido problemas.
  • Ingresas al cPanel y de repente tienes una cola de mensajes de error con el mensaje:
[Day Mon 31 16:34:12 2011] [error] [client 11.111.111.111] SoftException in Application.cpp:256: File "/home/username/public_html/index.php" is writeable by group
 
Causas?

Realmente pueden ser varias cosas:
  • Aumentaste la versión de PHP de manera general en tu servidor, o al menos en la carpeta donde tienes tu proyecto.
  • El servidor hizo una actualización e PHP por una nueva versión.
  • Hiciste cambios en los permisos de tus archivos y carpetas.
  • Algún script hizo cambios en los permisos de tus archivos y carpetas.

La solución es muy simple.

Ya sea con tu cliente de FTP o por el administrador de archivos, debes configurar las carpetas con los permisos chmod 755 y dentro de esa carpeta a todos tus archivos  con los permisos chmod 644.

Listo! Ingresa de nuevo a tu script.

jueves, 26 de octubre de 2017

Anti-DDoS PHP Script (Prevenir ataques DDoS en PHP)

Las soluciones contra un ataque DDoS son más bien del lado de la configuración del servidor y el firewall que tenemos allí instalado.

No obstante, es posible a nivel de código tener un pequeño control, que si no evita el ataque completamente, al menos lo puede mitigar en una gran medida. Manos a la obra...

miércoles, 20 de septiembre de 2017

Cómo redimensionar imagenes en PHP

Hay varias alternativas ya disponibles en el medio.  Antes de poner en funcionamiento el que yo propongo, pueden probar algunos de los que ya existen en el medio.

Código de la función para hacer la redimensión:

  public function redimensionar_imagen($nombreimg, $rutaimg, $xmax, $ymax){  
        $ext = explode(".", $nombreimg);  
        $ext = $ext[count($ext)-1]; 

    if($ext == "jpg" || $ext == "jpeg")  
        $imagen = imagecreatefromjpeg($rutaimg);  
    elseif($ext == "png")  
        $imagen = imagecreatefrompng($rutaimg);  
    elseif($ext == "gif")  
        $imagen = imagecreatefromgif($rutaimg);  

    $x = imagesx($imagen);  
    $y = imagesy($imagen);  

    if($x <= $xmax && $y <= $ymax){
        //return "<center>Esta imagen ya esta optimizada para los maximos que deseas.<center>";
        return $imagen;  
    }

    if($x >= $y) {  
        $nuevax = $xmax;  
        $nuevay = $nuevax * $y / $x;  
    }  
    else {  
        $nuevay = $ymax;  
        $nuevax = $x / $y * $nuevay;  
    }  

    $img2 = imagecreatetruecolor($nuevax, $nuevay);  
    imagecopyresized($img2, $imagen, 0, 0, 0, 0, floor($nuevax), floor($nuevay), $x, $y);  
    //return "<center>La imagen se ha optimizado correctamente.</center>";
    return $img2;   
}

Y para llamar la función:

$nombre='imagen1';
$Path='img/section/immagen.jpg';
$alto=450;
$ancho=450;
$imagen_optimizada = $f->redimensionar_imagen($nombre, $Path, $alto, $ancho);

Sólo es llamar la función y pasarle los parámetros de Nombre, ruta física del archivo en el servidor, alto y ancho deseados al final.

martes, 14 de junio de 2016

¿Cómo listar todas las variables de Session en ASP.NET?

Cuando queremos listar todos las variables y sus valores en una Sesión en ASP.NET, podemos hacer uso del siguiente ejercicio:

En VB.NET

For i As Integer = 0 To Session.Count - 1
   Response.Write(Session.Keys(i).ToString() & ": " & Session(i).ToString() & "<br>")
Next

En C#.NET

for (int i = 0; i <= Session.Count - 1; i++) {
    Response.Write(Session.Keys[i].ToString() + ": " + Session[i].ToString() + "<br>");
}

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...