Foros del Web » Programando para Internet » PHP »

Esto ya no es una tonteria xD, o si...?

Estas en el tema de Esto ya no es una tonteria xD, o si...? en el foro de PHP en Foros del Web. Tengo varias dudas.... 1º:_se puede acer esto? [$file= $leer.".txt";] 2º:_porqué me da error en la 10 linea? Código PHP: <?php $fichero  = $tipo  .  "/total.txt" ...
  #1 (permalink)  
Antiguo 16/04/2003, 12:50
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
Esto ya no es una tonteria xD, o si...?

Tengo varias dudas....
1º:_se puede acer esto? [$file= $leer.".txt";]
2º:_porqué me da error en la 10 linea?

Código PHP:
<?php
$fichero 
=$tipo "/total.txt";
$openfopen ($fichero,rw);
$leerfgets ($open); 
$leer += 1;
fwrite ($open,$leer);
fclose ($open);
$file$leer.".txt";
$plusfile($file,a);
fwrite = ($plus,$name); //Aquí me da error
fwrite = ($plus,$tipo);
fwrite = ($plus,$idioma);
fwrite = ($plus,$des);
fwrite = ($plus,$elink);
fwrite = ($plus,$apodo);
fclose($plus);
if (
file_exists($file) {
$respuesta "bien";
} else {
$respuesta "mal";
}
?>
Las variables $name,$tipo y siguientes son las introducidas en un formulario. Y dentro de $tipo ay una serie de palabras para ubicarlo en una carpeta u otra.

  #2 (permalink)  
Antiguo 16/04/2003, 12:58
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

1.- Si
2.- Si te da un error lo mejor es que pongas el mensaje de error que te da. Aunque en este caso es claro. $plus no es un filehandle, es un array, que es lo que devuelve file(). Creo que tu lo que querias hacer es un fopen(). Por cierto, el segundo parametro de fopen() es una cadena, ponla entre comillas. Si tuvieras configurado PHP para que te mostrara todos los mensajes de error, te daria un NOTICE por ello.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 16/04/2003, 13:04
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
1º probé con fopen(), en el 2º caso, y leugo al ver que me daba el error, probñe con file(), me olvidé cambiarlo, pero con fopen() sigue dando error.
  #4 (permalink)  
Antiguo 16/04/2003, 13:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si indicaras el "error" que te dá .. podríamos ver mejor que es lo que sucede ..

En principio yo veo:
$fichero =$tipo . "/total.txt";

$tipo no sé donde la defines ni con que valor .. Tal cual lo tienes debo pensar que $tipo es "NULL" (nada .. no tiene valor) .. por ende, ahí estas referenciando al directorio RAIZ del SERVIDOR .. y no al raiz de tu servidor virtual que es donde probablemente te quieras referir .. por eso .. usa los "." (punto) para indicar: "desde este directorio" ó ".." para subir una rama ... O bien indicas la ruta "ABSOLUTA" completa dentro de la estructura de directorios de tu servidor ..

algo tipo:
UNIX (LINUX ..etc):
/var/nose/sitios/tusito/www/

windows:
c:\nose\tuswebs\sitio\

En resumen ..
¿que valor toma $ficheo?
$fichero =$tipo . "/total.txt";
echo $fichero;

Si $fichero = "/total.txt" .. deberias usar "./total.txt" .. Y si es otro valor .. fijate bien que las rutas segun lo explicado.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 16/04/2003, 13:51
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
la variable $tipo es del formulario, es un selecttype osea hay 4 palabras, y dependiendo la que introduzcas eso se realizaría en una carpeta u otra.
La ruta normal de servidor seria : total.txt
pero si kiero que lo lea dentro de una carpeta por eso e puesto: $tipo"\total.txt";
lo que sería que si tipos es "programas", se quedaria Programas\total.txt (programas es una carpeta que tengo en el servidor)
  #6 (permalink)  
Antiguo 16/04/2003, 13:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Repetimos: si dices que te da un error, es que te muestra un mensaje de error, ¿serias tan amable de copiar aqui el mensaje tal como te lo da PHP?

Gracias.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 16/04/2003, 14:00
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
jajaja perdon
pero es que como no pone ná, pues..n lo puesto antes:

Parse error: parse error in anad.php on line 10
  #8 (permalink)  
Antiguo 16/04/2003, 14:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, dice mucho. Dice que es un Parser error, que no tiene nada que ver con los ficheros. Y tambien dice que hoy Cluster y yo debemos estar bastante ciegos:
Código PHP:
fwrite = ($plus,$name); 
Ese = no pinta nada. Recuerda, nombrefuncion(parametros). Con lo que quedaria:
Código PHP:
fwrite ($plus,$name); 
Realmente me suena este error, no es la primera vez que veo un codigo puesto asi con el =.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 16/04/2003, 14:51
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
Muxas gracias!!!!!! ahora no me da error pero... al rellenar el formulario, no me sube los datos
  #10 (permalink)  
Antiguo 16/04/2003, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y .. suponemos que cambiastes todos los:

Código PHP:
fwrite = ($plus,$name); //Aquí me da error
fwrite = ($plus,$tipo);
fwrite = ($plus,$idioma);
fwrite = ($plus,$des);
fwrite = ($plus,$elink);
fwrite = ($plus,$apodo); 
?? por su fwrite($plus,$variablequecorresponda);

Otro detalle:
Código PHP:
$plusfile($file,a); 
Eso noooo es correcto .. FILE() no lleva parámetro de modo de apertura . en tal caso lo tiene fopen() ..

Código PHP:
$plus=fopen($file,"a"); 
(el el modo de apertura .. ese: a .. es un string (cadena) no es una constante ... así que tiens que "entrecomillarla" ..

Esto tampoco es correcto:
Código PHP:
if (file_exists($file) { 
le falta un ) parentesis ..
Código PHP:
if (file_exists($file)) { 
Y bueno .. por mi parte ya no he seguido mirando el código ..

No sé como estas haciendo ese código si al "tuntun" y a ciegas o qué .. pero te recomiendo que LEAS el manual de PHP sobre el tema de tratamiento de ficheros ..

http://www.php.net/manual/en/ref.filesystem.php


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 16/04/2003 a las 15:53
  #11 (permalink)  
Antiguo 16/04/2003, 15:57
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
perdon, lo del paréntesis ha sido un error al ponerlo en el post, pero ya lo tenia bien de por si, perdonaddddd n es al tuntun pero es el 1º q e exo poco a poco...
Weno, ahora me lo copia en el archivo todo en una linea, que puedo hacer para que me lo ponga uno en cada linea?
  #12 (permalink)  
Antiguo 16/04/2003, 16:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Grabar el caracter de salto de linea despues de cada elemento. Antes de que preguntes, el caracter de salto de linea es \n y a PHP creo que le gusta con comillas dobles.

Suerte.

PD: Ten a mano siempre el manual de www.php.net , ya sea online o descargate la version que mas comoda te sea. Y siempre que uses una funcion nueva para ti o a la que todavia no estes acostumbrado, revisala en el manual. TODO esta en el manual.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 06:40.