Foros del Web » Programando para Internet » PHP »

Insertar algunas modificaciones en codigo PHP

Estas en el tema de Insertar algunas modificaciones en codigo PHP en el foro de PHP en Foros del Web. Buenas, no entiendo mucho de PHP, entonces vengo aquí haber si me podeis echar una mano. Tengo este código para un sistema de comentarios: Código ...
  #1 (permalink)  
Antiguo 21/04/2011, 12:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Insertar algunas modificaciones en codigo PHP

Buenas, no entiendo mucho de PHP, entonces vengo aquí haber si me podeis echar una mano.
Tengo este código para un sistema de comentarios:
Código PHP:
<?php

foreach($_REQUEST as $key => $value){
    
$value trim($value);
    if(!empty(
$value)){
        $
$key $value;
    }
}

if(
$whatType == "fileInput" && !empty($Name) && !empty($Title) && !empty($Comment)){
    
$file "guestbook";
    
$gInfo "\r\n %comment% " preg_replace("/\r\n/""<br />"htmlentities($CommentENT_QUOTES)) . "\r\n"
        
"%title% " htmlentities($TitleENT_QUOTES) . "\r\n"
        
"%name% " htmlentities($NameENT_QUOTES) . "\r\n";

    
$wFile fopen($file"a+");
        
fwrite($wFile$gInfo);
    
fclose($wFile);
}

header("Location: $action");
?>
Que va unido a este formulario:
Código HTML:
<form name="guestForm" action="mod_file.php" method="post">
	<input type="hidden" name="whatType" value="fileInput">
	<input type="hidden" name="action" value="<?php echo $_SERVER["PHP_SELF"] ?>">
	<table align="center"><tr>
			<td align="right">Nombre:</td>
			<td><input type="text" name="Name" size=30 maxlength=25></td>
		</tr><tr>
			<td align="right">Titulo:</td>
			<td><input type="text" name="Title" size=30 maxlength=25></td>
			
		</tr>
		<tr valign="top">
			<td align=right>Comentario:</td>
			<td><textarea name="Comment" rows="5" cols="40"></textarea></td>
		</tr><tr>
		  <td colspan=2 align="right">
			<center><input type="submit" value="Enviar Comentario">
			</center></td>
		</tr>
	</table>
</form> 
Queria quitar el campo Titulo del script y del formulario y sustituirlo para que en ese campo muestre la hora y la fecha cuando se publique el comentario.

Tambien queria poner un campo en el formulario que fuese Email, pero que el Email no se publique, simplemente que lo guarde en el archivo donde se almacenan los comentarios para yo saber quien lo ha publicado.Y ponerle una restriccion para que el Email sea valido(No se si me explico).

Y por ultimo si se puede, que se guarde la IP en el archivo en el que se guardan los comentarios, pero que la IP no aparezca en el comentario publicado.

Espero haberme explicado bien y gracias de antemano por su ayuda.
Saludos!
  #2 (permalink)  
Antiguo 21/04/2011, 13:58
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Insertar algunas modificaciones en codigo PHP

Pues creo que si te explicaste bien, pero la primera pregunta sería, tu sí entiendes el script? Ahora, si lo entiendes y sabes qué necesitas, que estás haciendo para lograrlo?
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 21/04/2011, 14:29
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Insertar algunas modificaciones en codigo PHP

Haber mas o menos lo entiendo...pero mis conocimientos de PHP son muy basicos, por eso vengo aqui haber si me podeis ayudar...
  #4 (permalink)  
Antiguo 21/04/2011, 14:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Insertar algunas modificaciones en codigo PHP

Cita:
Iniciado por De_la_Cuesta_13 Ver Mensaje
Pues creo que si te explicaste bien, pero la primera pregunta sería, tu sí entiendes el script? Ahora, si lo entiendes y sabes qué necesitas, que estás haciendo para lograrlo?
Haber mas o menos lo entiendo...pero mis conocimientos de PHP son muy basicos, por eso vengo aqui haber si me podeis ayudar...

P.D.:Lo puse dos veces :S. Lo siento.
  #5 (permalink)  
Antiguo 21/04/2011, 16:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Insertar algunas modificaciones en codigo PHP

Me faltaba el codigo del principio del archivo del formulario:
Código PHP:
<?php

$file 
"guestbook";

$gInfo "";

$rFile = @fopen($file,"r");
    
$file_array = @file($file);
    for(
$i count($file_array); $i >= 0$i--){
        if(
strstr($file_array[$i], "%name%")){
            
$gInfo .= "<fieldset><legend><b>" preg_replace("/%name%/"""$file_array[$i]) . "</b>";
        }
        if(
strstr($file_array[$i], "%email%")){
            
$gInfo .= "<i>" preg_replace("/%email%/"""$file_array[$i]) . "</i></legend>";
        }
        if(
strstr($file_array[$i], "%comment%")){
            
$gComment preg_replace("/%comment%/"""$file_array[$i]);
            
$wrapComment wordwrap($gComment68"<br />"true);
            
$gInfo .=  $wrapComment "</fieldset><br>";
        }
    }
@
fclose($rFile);
?>
  #6 (permalink)  
Antiguo 21/04/2011, 16:58
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: Insertar algunas modificaciones en codigo PHP

Dando por sentado que sabes modificar los formularios y adaptar los cambios de los nombres de los campos.

Para el tiempo sustituyes:
Código HTML:
Ver original
  1. <td align="right">Titulo:</td>
  2.             <td><input type="text" name="Title" size=30 maxlength=25></td>
Por:
Código PHP:
Ver original
  1. <input type="hidden" name="fecha"  value="<?php time() ?>">



Esto te grabará el valor del tiempo en formato timestamp, luego tienes que saber transladarlo a legible, con poner "pasar timestamp" en el buscador tienes info en cantidades industriales.

Para meter el email un campo de texto en el formulario y lo compruebas con php con


Código PHP:
Ver original
  1. $comprueba_email = filter_var ($campo_email, FILTER_VALIDATE_EMAIL);
  2.   if($email_origen)
  3.     echo  "<br />Verdadero";
  4.     else
  5.       echo  "<br />Falso";

Para la ip utiliza esta funcion:
Código PHP:
Ver original
  1. function getRealIP()
  2. {
  3.  
  4.    if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
  5.    {
  6.       $client_ip =
  7.          ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  8.             $_SERVER['REMOTE_ADDR']
  9.             :
  10.             ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  11.                $_ENV['REMOTE_ADDR']
  12.                :
  13.                "unknown" );
  14.  
  15.       // los proxys van añadiendo al final de esta cabecera
  16.       // las direcciones ip que van "ocultando". Para localizar la ip real
  17.       // del usuario se comienza a mirar por el principio hasta encontrar
  18.       // una dirección ip que no sea del rango privado. En caso de no
  19.       // encontrarse ninguna se toma como valor el REMOTE_ADDR
  20.  
  21.       $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
  22.  
  23.       reset($entries);
  24.       while (list(, $entry) = each($entries))
  25.       {
  26.          $entry = trim($entry);
  27.          if ( preg_match("/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $entry, $ip_list) )
  28.          {
  29.             // http://www.faqs.org/rfcs/rfc1918.html
  30.             $private_ip = array(
  31.                   '/^0\\./',
  32.                   '/^127\\.0\\.0\\.1/',
  33.                   '/^192\\.168\\..*/',
  34.                   '/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/',
  35.                   '/^10\\..*/');
  36.  
  37.             $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
  38.  
  39.             if ($client_ip != $found_ip)
  40.             {
  41.                $client_ip = $found_ip;
  42.                break;
  43.             }
  44.          }
  45.       }
  46.    }
  47.    else
  48.    {
  49.       $client_ip =
  50.          ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  51.             $_SERVER['REMOTE_ADDR']
  52.             :
  53.             ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  54.                $_ENV['REMOTE_ADDR']
  55.                :
  56.                "unknown" );
  57.    }
  58.  
  59.    return $client_ip;
  60.  
  61. }

La forma de que sean o no visibles en el archivo de salida tienes que adaptarlo tu para que no sean mostrados o si según quien esté cargando el archivo.
Pero, sinceramente, si como dices no entiendes de PHP te estás metiendo en camisas de siete varas.

Saludos
  #7 (permalink)  
Antiguo 22/04/2011, 07:27
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Insertar algunas modificaciones en codigo PHP

Ahora estoy probando lo que me has dicho para la fecha, pero no me funciona el codigo. No tengo que hacer ninguna otra modificacion?
  #8 (permalink)  
Antiguo 22/04/2011, 07:43
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: Insertar algunas modificaciones en codigo PHP

Si en realidad el código exacto es
Código PHP:
Ver original
  1. <input type="hidden" name="fecha"  value="<?php echo time() ?>">

y puedes probarlo con
Código PHP:
Ver original
  1. <input type="text" name="fecha"  value="<?php echo time() ?>">
veras como te salen los numeros del timestamp
  #9 (permalink)  
Antiguo 22/04/2011, 07:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Insertar algunas modificaciones en codigo PHP

Pero al hacer esa modificación quitar el campo title tambien tengo que hacer modificaciones en otras partes de codigo creo yo...Porque ese formulario va unido a un codigo php en la cabecera del formulario y unido tambien al php que ejecuta las acciones...
  #10 (permalink)  
Antiguo 22/04/2011, 07:53
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: Insertar algunas modificaciones en codigo PHP

Según tu pones el código arriba no tienes que hacer ninguna modificación mas para recoger los datos puesto que
Código PHP:
Ver original
  1. foreach($_REQUEST as $key => $value){
  2. ............

recoge todos los datos enviados con _POST y con _GET, se llamen como se llamen.

Etiquetas: modificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.