Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/08/2005, 14:07
Whitesnake
 
Fecha de Ingreso: agosto-2005
Mensajes: 32
Antigüedad: 18 años, 9 meses
Puntos: 0
0k, aqui todo el script y escrito mucho mejor que la otra vez

Código PHP:
class shoutbox {
    
    
// Configuracion de la db
        
var $db_host "localhost"// hostname mySQL 
        
var $db_user "username"// username en mySQL
        
var $db_password "password"// password en mySQL
        
var $db_name "database_name"// nombre de la db mySQL
        
            // Cuando se hace un Shout, debemos :
            // 1. Validar que se haya escrito Algo
            // 2. Quitar Etiquetas HTML extrañas
            // 3. Asegurar que nadie este usando un nickname reservado y que solo podra ser usado si se coenta con una cookie que autorze el uso de nick reservados
            // 4. Chechar la longitud del mensaje
            // 5. Insertar el mensaje en la db
         
function mainshoutbox (){    
        
$this->author $_POST['author'];
        
$this->eml $_POST['eml'];
        
$this->message $_POST['message'];
            
        if(
$_POST['submit']) {
            if(!
$this->author) {
            echo 
'Error: No hay un nickname escrito, ese problema se resuelve generalmente escribiendo un nickname en el campo de nombre';
            die;
            }
        if(!
$this->message) {
        echo 
'Error: No hay un Mensaje escrito, este problema se resuelve generalmente escribiendo un mensaje en el campo de mensaje';
        die;
        }
        
//3. Asegurar que nadie use nombres reservados si no tiene la galleta validadora
            
if($this->author == ("Anubis") OR ("anubis") OR ("WhiteSnake") AND !isset($itpshoutbox)){
            echo 
'Estas usando un Nickname Reservado, Elige Otro u obten la cookie identificadora';
            die;
            }
        
// 2. Quitar Etiquetas HTML que puedan ser maliciosas
            
$this -> messagesecure strip_tags($this->message'');
            
$this -> emlsecure strip_tags($this->eml'');
            
$this -> authorsecure strip_tags($this->author'');
        
        
// 4. Checar que los mensajes no sean o muy largos o muy cortos
        
$this -> message_length strlen($this -> messagesecure);
        
$this -> author_length strlen($this -> author);
            if((
$this -> message_length 300) AND ($this -> message_leght 8)){
            echo 
"Error: Has introducido un mensaje Muy largo (mayor a 300 caracteres) o muy corto (Menor a 8 caracteres)";
            die;
            }
            if((
$this -> author_length 20) AND ($this -> message_lenght 3)){
            echo 
"Error: Has introducido un nickname o muy corto o muy largo; tu nickname debe ser mayor de 3 caracteres y menor a 20";
            die;
            }        
        
// 5. Añadir lo insterado a la db
        // Si el prorgama no ha muerto por ningun tipo de error, aqui inserta todo a la db
        // Conectando a la db.
        
mysql_connect($this -> db_host$this -> db_user,$this -> db_password) or die(mysql_error());
        
// Elegir la db.
        
mysql_select_db($this -> db_name) or die(mysql_error());
        
// Definiendo el formato de insercion de fecha 
        
$date date("d / m /@ H:i A");
        
// Crear la query para mandarla
        
mysql_query("INSERT INTO shoutbox (message, author, eml, date, ip) VALUES ('$message', '$author', '$eml', '$date', '$_SERVER[REMOTE_ADDR]')");
        
mysql_close();
        
// Dar las Gracias por postear
        
echo 'Gracias por tu mensaje<BR>';
        
// Si no se ha hecho ningun Shout entonces:
        // 1. Hay que Mostrar los shouts
        // 2. Mostrar el formulario de post en otra funcion
            
} else {
        
// 1. Mostrar los ultimos shouts
            
mysql_connect($this ->db_host,$this -> db_user,$this -> db_password) or die(mysql_error());
        
// Elegir la db.
            
mysql_select_db($this -> db_name) or die(mysql_error());
        
// correr el query que muestre los ultimos 10 shouts
            
$this -> query "SELECT message, author, eml, date FROM shoutbox order by id DESC LIMIT 10";
            
$this -> result mysql_query($this -> query);
            echo 
"<TABLE>";
            while(
$r=mysql_fetch_array($this -> result))    
                {
            
// Tabla :
                
echo "<TR>
                <TD><font size='2'>
            Mensaje $r[date] por <A HREF='mailto:$r[eml]'>
                $r[author]</A></font></TD>
                </TR>
                <TR>
            <TD><font size='3'>$r[message]</font></TD>
                </TR>
                <TR>
            <TD><HR></TD>
        </TR>"
;
        }
            echo 
"</TABLE>";
            
        }
    }    
        function 
insertshout(){
        echo
'
            <FORM METHOD=POST ACTION="'
.$PHP_SELF.'">
    <TABLE>
    <TR>
        <TD>Nick :</TD>
        <TD><INPUT TYPE="text" NAME="author"></TD>
    </TR>
    <TR>
        <TD>Email :</TD>
        <TD><INPUT TYPE="text" NAME="eml"></TD>
    </TR>
    <TR>
        <TD>Mensaje :</TD>
        <TD><INPUT TYPE="text" NAME="message"></TD>
    </TR>
    <TR>
        <TD> </TD>
        <TD><INPUT TYPE="submit" name="Enviar" value="post"></TD>
    </TR>
    </TABLE>
    </FORM>'
;
    }