Mostrando entradas con la etiqueta scripts. Mostrar todas las entradas
Mostrando entradas con la etiqueta scripts. Mostrar todas las entradas

SyntaxHighlighter formata tus códigos de forma sencilla.

Hace ya mucho me vi en la obligación de crear un pequeño script para formatar correctamente códigos y así poder publicarlos en blogger.

Hace uno o dos días, hablando con yoyahack me explicó que existia una alternativa para "colorear" los códigos en tu blog o web independientemente del cms o la distribución.

Su nombre es SyntaxHighlighter

Su instalación es simple, solo debemos agregar estos códigos js en nuestras cabeceras:

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeRDark.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>

<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>


y a la hora de redactar encerraremos nuestro códgio entre:
<pre class="brush: js">

</pre>

o

<pre class="brush: php">

</pre>

Hay más lenguajes que estos dos, solo son los que yo uso más... también podemos omitir los scripts js de los lenguajes que no vayamos a utilizar.

El único inconveniente es que aún necesitamos un pequeño script para hacer la función htmlentities() y así no tener problemas con los símbolos < >.

El script que yo uso es:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" style="margin-bottom:40px">

<div id="formulario">

<textarea rows="20" cols="80" name="codigo"></textarea> <br />
<input type="submit" name="enviar" value="Formatear" /></div>

</form>

<?php

if (!empty($_POST['codigo'])) {

$codigo = $_POST['codigo'];
$codigo = str_replace("t", " ", $codigo);
$codigo = htmlentities(stripslashes($codigo));

$file = fopen("tmp.txt", "w");
fwrite($file, $codigo);
fclose($file);

$lineas = file('tmp.txt');
unlink('tmp.txt');

for ($i = 0; $i < count($lineas); $i++)
$resultado = $resultado.htmlentities($lineas[$i])."<br />";

echo '<h3> Inserta ste codigo en tu site: </h3>' .$resultado.'</div>';
}

?>

Eso es todo.

nax

Sistema de coordenadas y representación de puntos en esta [PHP y 1/2 Ajax]

pantallazo de coordenadas y ejes


El script nace con la idea de crear una representación de rectas según una equación tipo: y = 5x+2

La idea era generar dinámicamente una gráfica donde se representara dicha recta y se calcularan diversos valores como su pendiente y una tabla de valores.

También incluía un sistema ajax con un panel bastante completo para representar puntos, rectas y vectores y poder trabajar con los mismos en tiempo real, es decir, cada ves que se modifica un valor la imagen se actualiza.

El problema surge cuando me entero que js no puede convertir el binario de mi php a una imagen.. ahí se arruina la idea, al menos de momento.

Ideo una segunda forma, guardar el .png y cargarlo en el mismo script y devolver el string listo para insertar en el html. Perfecto! se carga la imagen sin problemas, pero no se actualiza al enviar las coordenadas... así que el sistema ajax a la porra hasta que encuentre un método eficaz para actualizar la imagen...

Así que de momento el script se queda en un simple sistema de coordenadas al cual hay que hacer un 'refresh' cada vez que se quiere modificar la imagen, eso si, la primera ves la carga con ajax o.O"

El script:

- Geometria.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Graficas by Nax</title>
<script language="javascript" src="ajax.js"></script>
</head>

<body>

<div id="opciones">
<b>Puntos:</b><br />
Inserta los puntos (0,0):<br />
<textarea name="puntos" id="puntos" cols="10" rows="5">0,0</textarea><br /><br />
<input type="button" id="enviar" value="Crear" />
</div>

<br />
<br />
<div id="grafica">Aqui va la grafica</div>
</body>
</html> 

- ajax.js
addEvent(window,'load',cargar,false);

function cargar() {
var but = document.getElementById('enviar');
addEvent(but, 'click', creargrafica,false);
}

function enviarcomentario(e) {

if(window.event)
window.event.returnValue = false;
else
if (e)
e.preventDefault();
enviarFormulario();
}

var conexion;
function creargrafica() {
var points = document.getElementById('puntos');
var ran = Math.random();
conexion=crearXMLHttpRequest();
conexion.onreadystatechange = procesarEventos;
conexion.open('GET','grafica.php?points=' + encodeURIComponent(points.value) + '&'+ ran + '=' + ran, true);
conexion.send();

}

function procesarEventos() {
var graf = document.getElementById('grafica');
if (conexion.readyState == 4) {
graf.innerHTML = conexion.responseText;
} else{
graf.innerHTML = "wait";
}

}

//Funciones comunes de ajax
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}

function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}

- grafica.php
<?php
@unlink('test.png');

$points = explode(' ',preg_replace('/rn|r|n/',' ',$_GET['points']));

$y = 400; $y0 = $y / 2; //coordenadas 0,0
$x = 500; $x0 = $x / 2;

$cm = 10; //1 cm = 10 px

//basic
$img = imagecreate($x,$y);
$background = imagecolorallocate($img, 0, 0 , 0);
$color = imagecolorallocate($img, 255, 255, 255);
$green = imagecolorallocate($img, 50, 255, 0);
$red = imagecolorallocate($img, 255, 50, 0);

imagestring($img, 2, 10 ,$y-50, "http://nax-syntaxerror.blogspot.com/", $red);
//ejes basicos
imageline($img, $x0, 0, $x0, $y, $color);
imageline($img, 0, $y0, $x, $y0, $color);

// Lineas de X
for ($i = 0; $i <= $x; $i +=10)
imageline($img, 0+$i,$y0+5,0+$i, $y0-5, $color);

//Lineas de Y
for ($i = 0; $i <= $y; $i += 10)
imageline($img, $x0+5, 0+$i, $x0-5, 0+$i, $color);

//puntos
foreach ($points as $key => $value) {
$ejes = explode(',', $value);
$ejes[0] = $ejes[0] * $cm; $ejes[1] = $ejes[1] * $cm;
imageline($img, $x0+$ejes[0], $y0+(-$ejes[1]), $x0+$ejes[0], $y0+(-$ejes[1])+3, $green);
}

imagepng($img,"test.png");
echo '<img src="test.png" />';
imagedestroy($img);
?>

Cualquier duda o aporte es bien recibido
nax

Criptografía escalar [ PHP ]

Sería muy osado por mi parte decir que el método es mío, aunque quizá lo sea, la verdad se me ocurrió en clase de matemáticas.

El método se basa en el cálculo del producto escalar mediante dos vectores y me atrevo a decir, sin demasiado convencimiento, que es de vía única pero que los expertos comenten…

Un ejemplo:

Teniendo los vectores v(1,3) y w(2,1).

El producto escalar se calcula de la siguiente forma:
v*w = (1*2) + (3*1) = 2 + 3 = 5

Esta fórmula de vectores y puntos la aplicamos a una serie de símbolos siguiendo estructuras de vectores.

Es decir, a cada símbolo le asignamos un valor y dos símbolos representan un vector.

La cadena de símbolos es la siguiente:

!"#$%&'()*+-./0123456789:;<=>
?@ABCDEFGHIJKLMNOPQRSTUVWX
YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Siguiendo el orden de la tabla ascci y quitando algún que otro carácter.

Así en la cadena “Programmers Team

Los 2 primeros vectores son:
v = (p,r)
w= (o,g)

Los substituimos por su correspondiente valor numérico v=(78,80), w=(77,69) {si no me equivoqué} y se aplica la fórmula.

v *w = (78*77) + (80*69) = 6006 + 5520 = 11526

La conversión toma de dos en dos números. 11 (-), 52 (V), 6 (')

siendo su conversión a string -V'
En definitiva, la encriptación escalar de Prog es -V’
De Programmers team |`!+j&-(T;!
De Latino Hack q3!oI!!
De Bl4ck-P0rtal Wx!C\!-+)
de CUH .X!
y para finalizar de ~ Syntax - Error ~ -j)oO!{^!!

Ahora solo resta dejar el código:

<?php
form
();
$cad explode(' ',"! \" # $ % & ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~");
$men str_replace(' ','',$_POST['message']);

for (
$i 0$i strlen($men); $i += 4) {
   
$cod substr($men$i4);

   for (
$x 0$x <= 3$x ++) {
      if (! 
$cod[$x]) {
         
$cod[$x] = "!";
      }
   }

   
$v1 explode(',',array_search($cod[0], $cad).','.array_search($cod[1], $cad));
   
$v2 explode(',',array_search($cod[2], $cad).','.array_search($cod[3], $cad));
   
   
$escalar $v1[0] * $v2[0] + $v1[1] * $v2[1];

   for (
$y 0$y <= strlen($escalar); $y += 2)
      
$final .= $cad[substr($escalar$y2)];

}

echo 
'<b>Resultado encriptado:</b><br />'.$final;

function 
form() {
   echo 
'<form action="'.$_SERVER['PHP_SELF'].'" method="post">
         Mensaje: <input type="text" name="message" value="'
.$_POST['message'].'" />
         <input type="submit" name="send" value="Enviar">
        </form>
   '
;   
}
?>


Cualquier duda, sugerencia o comentario es bien recibido

Previsualizar un formulario mediante JavaScript

Hoy me pidieron ayuda con este código y lo dejo por si a alguien le es de utilidad.

Lo que hace es mostrar un "preview" de los datos de un formulario usando la propiedad .innerHTML

<html>
<head>
</head>
<script language="javascript">

function preview() {
   div = document.getElementById('previewform')
   text = "----------------" + 
         "<br /> Formulario <br />" +
         "Nombre: " + document.forms.form1.nomb.value +
         "<br />Apellido: " + document.forms.form1.apell.value +
         "<br />----------------";
   div.innerHTML = text;

}
</script>

<body>

<form id="form1" name="form1" method="get" action="pagina.php">
 <p><strong>Tú Nombre:</strong><input type="text" name="n" id="nomb"></p>
<p><strong>Tú Apellido:</strong><input type="text" name="a" id="apell"></p>
<input type="submit" value="Enviar" style="font-family: Verdana; font-size: 12px; text-align: center; width: 80; height: 25; font-weight: bold"><br>
<input type="reset" value="Borrar" style="font-family: Verdana; font-size: 12px; text-align: center; width: 80; height: 25; font-weight: bold">
<input type="button" value="Preview" style="font-family: Verdana; font-size: 12px; text-align: center; width: 80; height: 25; font-weight: bold" onclick="javascript:preview()" />
</center>
</form>

<div id="previewform"> </div>
</body>

</html>

Obtener la dirección IP [PHP]

Hoy vamos a comentar una función con la que me topé por internet para obtener una ip


<?php
function getIP() {
    if (isset(
$_SERVER)) {
    if (isset(
$_SERVER['HTTP_X_FORWARDED_FOR'])) {
    return 
$_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
    return 
$_SERVER['REMOTE_ADDR'];
    }
    } else {
    if (isset(
$GLOBALS['HTTP_SERVER_VARS']['HTTP_X_FORWARDER_FOR'])) {
    return 
$GLOBALS['HTTP_SERVER_VARS']['HTTP_X_FORWARDED_FOR'];
    } else {
    return 
$GLOBALS['HTTP_SERVER_VARS']['REMOTE_ADDR'];
    }
    }
}
 
$ip getIP();  
?>


Es una función muy simple, primero comprueba si existe el array global $_SERVER en caso de que no exista intenta hacerlo lo mismo pero mediante el array $GLOBALS.
Algunos proxyes dejan la ip del usuario en HTTP_X_FORWARDED_FOR, por esta razón primero comprobamos si exsite, en caso de que exista esa es la IP real.
Sino tomamos el valor REMOTE_ADDR.

Este script, como todos los de GETIP, no garantiza que la ip tomada sea la verdadera pero tienes mas probabilidades que con otros que he visto en la red

Rotación de imagenes con JavaScript

Hoy es domingo y he tenido un día ajetreado así que a diferencia de otros días les dejo un code muy sencillo en javascript del cual pedian una ayuda en LH

Hace una rotación de X imágenes cada Y segundos durante un tiempo indefinido.

<html>
<head>
<title>Secuencia</title>

<script language="javascript">

var SecuenciaEjecutandose = false
var SecuenciaID = null
var imagen = 4
var duracion = 1000

if ( CompruebaVersion() ) {
imagenes = new CreaArray( 4 )
imagenes[1].src = "imagen1.jpg"
imagenes[2].src = "imagen2.jpg"
imagenes[3].src = "imagen3.jpg"
imagenes[4].src = "imagen4.jpg"
}

function CompruebaVersion() {
if (navigator.appVersion.charAt(0) >= 3 && document.images) 

return true
else return false
}

function CreaArray(n) {
this.length = n
for (var i = 1; i<=n; i++) {
this[i] = new Image()
}
return this
}

function DetenerSecuencia () {
if( SecuenciaEjecutandose )
clearTimeout(SecuenciaID)
SecuenciaEjecutandose = false
imagen = 0
}

function MostrarSecuencia () {
if (CompruebaVersion()) {
document.images["secuencia"].src = imagenes[imagen].src
imagen++
if ( imagen == 5 )
imagen = 1
}
SecuenciaID = setTimeout(" MostrarSecuencia() ", duracion)
SecuenciaEjecutandose = true
}

function IniciarSecuencia () {
DetenerSecuencia()
imagen = 1
MostrarSecuencia()
}

</script>

</head>

<body onLoad="IniciarSecuencia()">
<img src="imagen1.jpg" width="100" height="100" alt="Secuencia" 

name="secuencia"> 

</body>
</html>

 

Como se aprecia en el code el script carga 4 imágenes en un array y esas imágenes las va pasando por una etiqueta llamada secuencia.

saludos
nax

Cifrado vigenère [code PHP]

Hoy os presento un code sencillo que se comentó por DragonJAR y como estaba aburrido decidí crear un cifrador.

El cifrado es vigenerè y es, básicamente, el cifrado cesar un poco mas avanzado.

Como yo no soy bueno comentado la historia me centro en las matemáticas:

El cifrado recive 3 parámetros:

- Mensaje a cifrar
- Clave
- Cantidad de letras del abecedario (este 3er parámetro es una constante)

La fórmula del cifrado vigenère es:

Yi = (Xi + Zi) mod T

Donde:

Xi = letra original
Zi = letra clave

T = 26 (letras alfabeto -1 , ya que empezamos de 0)

Un ejemplo:

Xi = A
Zi = B

Yi = (A + B) mod 26
Yi = (0 + 1) mod 26

Yi = 1 = B

Siendo:
A = 0
Z = 26

El código es:

<?php

form
();
$message strtolower(str_replace("n"," ",$_POST['message'])); $clavestrtolower($_POST['clave']); $final "";
$letters explode(' ',"a b c d e f g h i j k l m n o p 

q r s t u v w x y z"); $saltar explode(' ''º Âª  ! | " @ Â· # $ ~ % 
â�¬ & Â¬ / ( ) = ? ' Â¿ Â¡ ^ ` [ ] + * Â¨ Â´ { } Ã§ - _ . : , ;');

for (
$i = 0, $x = 0 ; $i < strlen($message); $i++, $x++) {
   
   if (
$x >= strlen($clave))
      
$x = 0;
   
   if (in_array(
$message[$i],$saltar) || $message[$i] === ' ') {
      
$final .= $message[$i];
      
$x--;
   }else {
      
      
$vigenere = (array_search($message[$i],$letters) + 

array_search($clave[$x],$letters) ) % 26 ;

      
$final .= $letters[$vigenere];

   }
}

echo '<b>Resultado encriptado:</b><br />'.strtoupper(
$final);

function form() {
   echo '<form action="'.
$_SERVER['PHP_SELF'].'" method="post">
         Mensaje: <br /> 
            <textarea name="message">'.
$_POST['message'].'</textarea><br />
         Clave: <input type="text" name="clave" value="'

.$_POST['clave'].'" />
         <input type="submit" name="send" value="Enviar">
        </form>
   ';   
}

?>


La cadena $saltar se ha desformatado al convertir el código así que la dejo aparte:

$saltar = explode(' ', 'º ª \ ! | " @ · # $ ~ % € & ¬ / ( ) = ? \' ¿ ¡ ^ ` [ ] + * ¨ ´ { } ç - _ . : , ;');


Explicación:

Básicamente lo que hacemos es crear un array del abecedario, para asignar de forma rápida el 0 = a y z = 26.
Después de eso tomamos un bucle donde usaremos 2 contadores, $i para el mensaje y $x para la clave.

La variable que hará salir del bucle es $i, ya que cuando se acabe el mensaje se acabará el bucle.
$x sin embargo se repetirá cada vez que se termine.

La variable $saltar nos permite saltarnos ciertos carácteres que no forman parte del abecedario y disminuimos $x en 1 ya que no usamos la letra clave para encriptar.

Luego ya solo es cuestión de buscar la letra del mensaje en el array y tomar el valor de la key sumarlo al valor de la letra clave y hacer mod entre 26.

Ejemplo de uso:


Espero que les guste y quizá con mas tiempo hago el decrypter.

Rainbow Login con JQuery y PHP

Login Rainbow es un efecto del borde con varios colores simulando un arcoiris.

Me parece muy bueno estéticamente y se le puede sacar gran partido.

El código no estaba al acceso público (los JS si pero la parte php no..)

Pero un usuario a simulado los PHP y nos ha dejado este gran efecto con JQuery.

Source code

forgot.php script: http://www.manifestinteractive.com/usenet/login...
checklogin.php script: http://www.manifestinteractive.com/usenet/login...

Demo

Página de Dragon Labs

Blend: Efecto con Jquery

Este también me topé buscando sobre lightbox

Se trata de efectos de botones y fondos.

Están muy interesantes y bonitos


La demo

La descarga

En la demo vemos varios efectos, el primero es solo css

El segundo es css y jquery con el efecto blend

El tercero es css y jquery con blend y pulse (como si se encendiera y se apagara)

El cuarto es css y jquery con reverse (el mismo efecto pero al revés)

espero les guste

ColorBox un LightBox con JQuery

Cuando estaba escribiendo sobre Lightbox 2 topé con esta biblioteca que me pareció muy atractiva.

Funciona de forma similar a Lightbox 2 aunque en mi opinión es más rápida y estética.

La demo

La descarga

Para más información visiten su página web.

web: www.colorpowered.com

LightBox 2 expandir imágenes con JavaScript

Lightbox 2 es una de esas aplicaciones para poder ver la imagen en grande a partir de una miniatura en la misma página web sin necesidad de cargar un pop-up y de una forma elegante.

Lightbox 2 utiliza el framewor Prototype y Scriptaculous Effects Library.

La demo

la descarga

Un ejemplo de código:

<html>
<head> </head>
<body>
<script type=\"text/javascript\" src=\"js/prototype.js\"></script>
<script type=\"text/javascript\" src=\"js/scriptaculous.js?load=effects,builder\"></script>
<script type=\"text/javascript\" src=\"js/lightbox.js\"></script>
<link rel=\"stylesheet\" href=\"css/lightbox.css\" type=\"text/css\" media=\"screen\" />

<a href=\"images/image-1.jpg\" rel=\"lightbox\" title=\"my caption\">image #1</a>

<a href=\"images/image-1.jpg\" rel=\"lightbox[roadtrip]\">image #1</a>
<a href=\"images/image-2.jpg\" rel=\"lightbox[roadtrip]\">image #2</a>
<a href=\"images/image-3.jpg\" rel=\"lightbox[roadtrip]\">image #3</a>

</body></html>


Nota: el primer <a href=""> hace referencia a una imagen unica

los siguientes lo hacen a un grupo de imagenes (por lo cual tenemos un botón next y prev.

Web del autor

PHP 5 stars un rating con estilo

PHP 5 stars es una aplicación del tipico "rate me" con 5 estrellas.

Es algo diferente a las demás y me gusta el toque que deja

Para usarlo se necesita sqlite en el apartado PDO de nuestro hosting.

Saberlo es muy simple, simplemente creamos un script

<?php phpinfo(); ?>

lo subimos al hosting y buscamos sqli en el apartado PDO

Click here to enlarge

Ejemplo de uso:

Agregamos esto al head:



<link rel="stylesheet" type="text/css" href="rating/rating.css" media="screen"/>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" >google.load("jquery","1.3.2");</script>
<script type="text/javascript" src="rating/rating.js"></script>
<?php include('rating/rating.php'); ?>


y agregamos esto a cada objeto que queremos que tenga las estrellas:

<?php rating_form("unique_table_name"); ?> a cada elemento que queramos tener las estrellas.

donde unique_table_name es el nombre de la tabla en slqi

Demo, descarga y web del autor

saludos

Sistema de comentarios simple con captcha

Bueno he avierto otro post porque en el otro hay muchos comentarios de todo tipo, no se si aún lo necesias pero como hace poco me pidieron lo mismo te dejo el trabajo:

El sistema de comentarios estaba pensado para funcionar igual en diferentes secciones de la web... compartiendo tablas de la DB y solo modificando un campo entre las diferentes secciones.

SQL: 


CREATE TABLE IF NOT EXISTS `web_michelmin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`autor` varchar(50) NOT NULL,
`hora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`comentario` text NOT NULL,
`seccion` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;



<?php

#~~ Connect.php
$host 'localhost';
$user 'root';
$pass '';
$db 'z_test'//nombre de la bd
$tabla 'web_michelmin'//nombre de la tabla a usar

$con mysql_connect($host$user$pass) or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());

?> 



Parte que se agrega a la página:


<?php 
session_start
();
#~~ Comentarios a final de página; 

include_once('conect.php');

$seccion 'index'//Nombre que le quieras dar a ala seccion 

$comentarios mysql_query("SELECT comentario, autor FROM ".$tabla." WHERE seccion = '".$seccion."' "$con) or die(mysql_error());

echo 
'<table border="1">';

 

    while (
$coments mysql_fetch_array($comentarios)) { 

 

       echo 
'<tr><td colspan="2"><sub><strong>'.$coments['autor'] .'</strong></sub></td></tr> 

               <tr><td colspan="2">'
nl2br(htmlentities($coments['comentario'])) . '</td></tr>'

    } 

 

echo 
'<tr><td colspan="2"></td> 

      </tr><tr><td colspan="2">Escribe tu comentario: </td></tr> 

      <tr><td colspan="2"> 

          <form method="post" action="update.php"> 

            Autor: <input type="text" name="autor" size="31" maxlength="50" value="" /> 

        </td>
    </tr>
    <tr> 

        <td colspan="2"> 

            Comentario: <br /> 

            <textarea name="coment" cols="31"></textarea>  

            <input name="seccion" type="hidden" value="'
.$seccion.'" />
            
        </td>
    <tr>
        <td>
            Captcha:
        </td>
        <td>
            <img src="captcha.php" /> <br />
            <input type="text" name="captcha" size="10" maxlength="7" value="" />
            </div>
            <br /> 

            

        </td>
    </tr>

        <td colspan="2" align="center">
            <input name="Enviar" type="submit" /> 
        </td>
    </tr> 

        </form> 

    </table>'
;
    
    if (
$_GET['err'])
        echo 
"<b>Ha introducido un captcha incorrecto</b>";

?> 



se modifica la variable $seccion dandole el nombre de la página donde se incrustara el código sin el .php de esta forma separamos las diferentes páginas que tendrán un comentario y a la vez redirijimos en el update.php

update.php:
por errores con los headers no hago un include a conect.php...

<?php
session_start
();


$coment $_POST['coment'];
$seccion $_POST['seccion'];
$autor $_POST['autor'];

if (
$_POST['captcha'] && $_POST['captcha'] == $_SESSION['rand'])
{


$host 'localhost';
$user 'root';
$pass '';
$db 'z_test';
$tabla 'web_michelmin';
$con mysql_connect($host$user$pass) or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());


$update mysql_query("INSERT INTO " $tabla " (id, autor, hora, comentario, seccion) VALUES (NULL, '" $autor "', CURRENT_TIMESTAMP, '" $coment "', '" $seccion "') "$con) or die (mysql_error());

header("location: "$seccion .".php");

} else
    
header("location: ".$seccion .".php?err=badcaptcha");
?> 


captcha.php (esta parte es de shell root si no me equivoco)

<?php

# Em3trix

session_start();

$x ImageCreateFrompng("captcha.PNG");

$numeros rand(0000,9999);
$letras "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

$final $letras{rand(1,50)};
$final .= $letras{rand(1,50)};
$final .= $letras{rand(1,50)};

$rand $numeros.$final;

$rand2 $rand[3].$rand[5].$rand[1].$rand[6].$rand[2].$rand[7].$rand[3];

$color imagecolorallocate($x,"250","0","0");
$string imagestring($x,5,"13","7","$rand2",$color);

$color1 imagecolorallocate($x,"250","250","0");
$color2 imagecolorallocate($x,"0","250","0");
$color3 imagecolorallocate($x,"0","0","250");

$linea imageline($x,"0","20","100","10",$color3);
$linea imageline($x,"0","10","20","100",$color1);
$linea imageline($x,"50","0","100","100",$color2);

ImageGIF($x);

$_SESSION['rand'] = $rand2;

?> 


Estilos css = 0 soy malo con eso y al final cada uno tiene su estilo xD así que espero os sirva.

Publicar correctamente código PHP en blogger

Bueno, hace tiempo que vengo con este problemilla encima, y una de las razones de que tuviese el blog medio dejado era exactamente eso...

Los códigos que encontraba por la red o coloreaban o formataban con stripslashes, pero ninguno hacia ambas cosas..

Hoy mismo di con un código PHP, por supuesto, que permite (por medio de stripslashes) introducir carácteres especiales al código y a la vez lo colorea.

He modificado el código original porque me resulta mas cómodo como lo e dejado. Pero si a alguien le interesa el original se puede encontrar aquí  (En realidad es una modificación del original, pero es en la que yo me e basado)

Esta es la muestra y el código a la vez

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" style="margin-bottom:40px">

<div id="formulario">

<textarea rows="20" cols="80" name="codigo"></textarea> <br />
<input type="submit" name="enviar" value="Formatear" /></div>

</form>

<?php

   
if (!empty($_POST['codigo'])) {
      
      
$codigo $_POST['codigo'];
      
$codigo str_replace("t""   "$codigo);
      
$codigo highlight_string(stripslashes($codigo), true);
      
      
$codigo str_replace("#ECE6B4""#ECE6B4"$codigo);
      
$codigo str_replace("#3769f6""#3769f6"$codigo);
      
      echo 
'<div id="formatado" style="border: double #dfdfdf;"> <h3>El code formatado </hr>';
      echo 
'<p>' $codigo '</p><hr />';
      
      
$file fopen("tmp.txt""w");
      
fwrite($file$codigo);
      
fclose($file);
      
      
$lineas file('tmp.txt');
      
unlink('tmp.txt');
      
      for (
$i 0$i count($lineas); $i++)
         
$resultado $resultado.htmlentities($lineas[$i]);
      
      echo 
'<h3> Inserta ste codigo en tu site: </h3>' .$resultado.'</div>';
   }

?>



Trabaja con el mismo estilo que el original pero con 2 cambios:
1- El original pone numeros, cosa que al copiar codes hay que ir borrandolos...
2- El original me dió problemas de formato al copiar el code a dreamweaver, por lo que e tenido que hacerlo a mano xD

Así que espero que lo disfruten y lo usen mucho, yo de seguro que lo usaré