Foros del Web » Programando para Internet » PHP »

Libro de visitas..Porque no funciona?

Estas en el tema de Libro de visitas..Porque no funciona? en el foro de PHP en Foros del Web. compañeros(as). Tengo un libro de visitas que escribe los comentarios en un archivo plano txt, lo datos que solicito a traves de la web son ...
  #1 (permalink)  
Antiguo 27/06/2006, 20:00
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años
Puntos: 0
Libro de visitas..Porque no funciona?

compañeros(as).

Tengo un libro de visitas que escribe los comentarios en un archivo plano txt, lo datos que solicito a traves de la web son Nombre, email, localizacion, donde nos encontro(buscador, en un top, san google,etc), y la valorizacion de la pagina.

Pero los datos que el usuario escribe y que deberian tambien escribirse en el archivo plano txt no los escribe en tal archivo pero lo extraño es que si escribe la fecha de cuando se esta escribiendo el comentario de la visita eso si que la fecha la da el script no la ingresa el usuario.

Sinceramente necesito ayuda ya que nose como solucionarlo lo he dado vuelta mil veces y nada he ordenado el script para verlo de otra forma y nada.

Les dejo el codigo:

libro.php
Código PHP:
<?php
print "<table border=0 width=95% cellspacing=1>
<form method='post' action='firmar.php'>
<tr>
    <td width=30%>
        <b>Nombre :</b>
    </td>
    <td width=70%>
        <input name=nombre maxlenght=30 type=text>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>Email :</b>
    </td>
    <td width=70%>
        <INPUT name=email type=text>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>País :</b>
    </td>
    <td width=70%>
        <input maxlenght=50 name=pais type=text>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>Ciudad :</b>
    </td>
    <td width=70%>
        <input maxlenght=50 name=ciudad type=text>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>Nos encontraste en :</b>
    </td>
    <td width=70%>
        <select name=desde>
            <option value=Buscador>En un buscador</option>
            <option value=Top>En un top</option>
            <option value=Directorio>Un enlace de una web</option>
            <option value=Afiliado>Una web afiliada</option>
            <option value=...>Otro sitio</option>
          </select>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>Valoración :</b>
    </td>
    <td width=70%>
        <select name=valoracion>
            <option value=10>10</option>
            <option value=9>9</option>
            <option value=8>8</option>
            <option value=7>7</option>
            <option value=6>6</option>
            <option value=5>5</option>
            <option value=4>4</option>
            <option value=3>3</option>
            <option value=2>2</option>
            <option value=1>1</option>
          </select>
    </td>
</tr>
<tr>
    <td width=30%>
        <b>Comentarios :</b>
    </td>
    <td width=70%>
        <textarea name=comentario rows=5 cols=23></textarea>
        <input type=submit value=Enviar>
    </td>
</tr>
</form>
</table>"
;
?>
firmar.php
Código PHP:
<?php
$pvm 
getdate();
$archivo="Archivos-Modificables/libro.txt"#aquí para cambiar la ruta del archivo donde se guardan las entradas 
$uusi="<table border=0 width=95% cellspacing=1>
<tr>
    <td width=30%>
        <b>Nombre :</b>
    </td>
    <td width=70%> $nombre </td>
</tr>
<tr>
    <td width=30%>
        <b>Fecha : </b>
    </td>
    <td width=70%>$pvm[mday]-$pvm[mon]-$pvm[year]</td>
</tr>
<tr>
    <td width=30%>
        <b>E-mail :</b>
    </td>
        <td width=70%><a href='mailto:$email'><font color='FFFF00'>$email</font></a>
    </td>
</tr>
<tr>
<td width=30%>
    <b>Localización :</b>
</td>
    <td width=70%>$pais - $ciudad </td>
</tr>
<tr>
    <td width=30%>
        <b>Nos encontró en un:</b>
    </td>
    <td width=70%> $desde </td>
</tr>
<tr>
    <td width=30%>
        <b>Valoración :</b>
    </td>
    <td width=70%> $valoracion </td>
</tr>
<tr>
    <td width=30%>
        <b>Comentario :</b>
    </td>
    <td width=70%> $comentario </td>
</tr>
</table><hr width=70%>\n\n"
;
if(
file_exists($archivo))
{
    
$tamanio=filesize($archivo);
    if(
$tamanio>0)
    {
        
$fp=fopen($archivo"r+");
        
$vanha=fread($fpfilesize($archivo));
        
fseek($fp0);
        
fwrite($fp"${uusi}${vanha}");
        
fclose($fp);
    }
    else
    {
        
$fp=fopen($archivo"r+");
        
fwrite($fp"${uusi}${vanha}");
        
fclose($fp);
    }
}
print 
"<b>Gracias por tu Comentario !!</b><br>";
print 
"<a href=libro.php>Ver tu Comentario</a>";
?>
tambien les comento que el archivo tiene permisos de escritura y lectura ocupo el cliente ftp facil para subir al servidor.

Ojala que alguien me pueda orientar ya que es de urgencia.

se agradece su ayuda.

Gracias

Última edición por Cluster; 28/06/2006 a las 06:25
  #2 (permalink)  
Antiguo 27/06/2006, 20:11
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
yo te recomendaría primero que los atributos de los tags como value y name esten en comillas es decir :

<input type='text' name='nombre' >
<input type='hidden' name='nombre' value='valor'>

ya que es más entendible, no me acuerdo si es indispensable, el otro punto es antes de mandar a archivo coloca este código para ver si llegan los valores del formulario

echo"
<script language='javascript'>
alert($nombre);
</script>
";

si se imprime la variable entonces si llegan los valores sino tienes que utilizar las variables globales para obtener los valores es decir colocas el siguiente codigo para ver si se obtienen los valores:

echo"
<script language='javascript'>
alert($_POST['nombre']);
</script>
";



sino indica que obtienes.
  #3 (permalink)  
Antiguo 28/06/2006, 06:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En cualquier caso .. es -recomendable y diría obligado- que uses el acceso a tus variables externas por sus arrays asociados:

$_POST, $_GET .. o por donde te vengan (método).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 28/06/2006, 07:42
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años
Puntos: 0
norpool1 y cluster.

Primero que todo gracias les cuento que si me llegan los valores de las variables que ocupo en el formulario asi lo hice y como dije antes llegan el valor de las variables.

$nombreusuario=$_POST['nombre'];
echo $nombreusuario;

Lo extraño es que en forma local el libro de visitas me funciona sin ningun problema me escribe en el archivo plano y luego se muestra, lo que no puedo entender es porque en el servidor tan solo me escribe la fecha en el archivo plano txt y nada mas.

Alguna idea...me tiene desesperado esto.

Gracias por los comentarios
  #5 (permalink)  
Antiguo 28/06/2006, 07:52
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
veo que dentor del echo entre dobles comillas tienes variables que son un arraya, estas variables no las pongas entre dobles comillas dentro del echo sino que contatena la variable con el texto.
  #6 (permalink)  
Antiguo 28/06/2006, 08:44
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años
Puntos: 0
En que parte te refieres.....que lugar

aca les dejo el link de dodne esta el libro de visitas ya subido en el servidor y como se comporta a ver si me pueden ayudar.

http://www.kurvasbar.cl/libro.php

Última edición por juan007; 28/06/2006 a las 18:23
  #7 (permalink)  
Antiguo 28/06/2006, 18:25
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años
Puntos: 0
alguna idea..compañeros(as).

Sugerencia, algo...
  #8 (permalink)  
Antiguo 28/06/2006, 18:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
En cualquier caso .. es -recomendable y diría obligado- que uses el acceso a tus variables externas por sus arrays asociados:

$_POST, $_GET .. o por donde te vengan (método).
Es muy probable que ese sea el problema. Seguramente en tu pc tenés register_globals activado (feo) y en el server no.

En vez de usar $email, $ciudad, etc. usá $_POST['email'], $_POST['ciudad'], etc.

http://www.php.net/register_globals

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #9 (permalink)  
Antiguo 29/06/2006, 02:39
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
las variables que son arrya en un echo entre dobles comillas no van a salir.
y no creo que el problema lo tenga por no poner $_POST O $_GET funciona igual que si no lo pones, claro que es menos seguro pero no quiere decir que no funcione
  #10 (permalink)  
Antiguo 29/06/2006, 09:42
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por zekenet
las variables que son arrya en un echo entre dobles comillas no van a salir.
y no creo que el problema lo tenga por no poner $_POST O $_GET funciona igual que si no lo pones, claro que es menos seguro pero no quiere decir que no funcione
Si register_globals está desactivado (por defecto de php4 en adelante), $_POST['var'] no es lo mismo que $var.
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #11 (permalink)  
Antiguo 29/06/2006, 19:36
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años
Puntos: 0
Compañeros(as):

El problema era eso de los arrays asociados $_Post y $_Get.

De todo corazon les agradesco su ayuda y paciencia por resolver mi problema.

Nuevamente gracias.

Saludos desde Viña del Mar, CHILE
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 14:02.