Foros del Web » Programando para Internet » PHP »

¿que hice mal? uso php y base de datos txt

Estas en el tema de ¿que hice mal? uso php y base de datos txt en el foro de PHP en Foros del Web. me da el siguiente error el script: Parse error: parse error, unexpected ';' in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 8 este error se genera cuando uso un ...
  #1 (permalink)  
Antiguo 31/12/2002, 10:03
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
¿que hice mal? uso php y base de datos txt

me da el siguiente error el script:
Parse error: parse error, unexpected ';' in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 8

este error se genera cuando uso un formulario como este:
<html>
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->

function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<FORM NAME="formulario" METHOD="POST" ACTION="agregar.php">

<p>Por favor, rellene este formulario para registrar su empresa en nuestro directorio.</p>
<p><b>Los Campos con<font color="#FF0000"> *</font> son obligatorios a rellenar.</b>
</p>
<table width="61%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="41%"><font face="Helvetica, Arial"><b><font color="#FF0000">*</font></b>
</font><b>Sector: </b></td>
<td width="59%"><b>
<select name="sector">
<option>Ayuntamiento</option>
<option>Urgencias</option>
<option>Bares</option>
<option>Restaurantes</option>
<option>Cafeterias</option>
<option>Cines</option>
<option>Tiendas de ropa</option>
</select>
</b></td>
</tr>
<tr>
<td width="41%"><font face="Helvetica, Arial"><b><font color="#FF0000">*</font></b>
</font><b>Nombre Empresa:</b></td>
<td width="59%">
<input type="text" name="empresa" maxlength="50" size="50">
</td>
</tr>
<tr>
<td width="41%"><font face="Helvetica, Arial"><b><font color="#FF0000">*</font></b>
</font><b>Direcci&oacute;n:</b></td>
<td width="59%">
<input type="text" name="direccion" size="50" maxlength="50">
</td>
</tr>
<tr>
<td width="41%"><font face="Helvetica, Arial"><b><font color="#FF0000">*</font></b>
</font><b>E-mail:</b></td>
<td width="59%">
<input type="text" name="email">
</td>
</tr>
<tr>
<td width="41%"><font face="Helvetica, Arial"><b></b> </font><b><font face="Helvetica, Arial"><b><font color="#FF0000">*</font></b></font>
Tel&eacute;fono</b></td>
<td width="59%"> (
<input type="text" name="prefijo" size="5" maxlength="3" value="953">
)
<input type="text" name="numero" size="8" maxlength="6">
</td>
</tr>
</table>
<br>
<table width="93%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td colspan="4">
<div align="center">
<input type="submit" name="enviar" value="Click para enviar">
</div>
</td>
</tr>
<tr>
<td colspan="4">
<div align="center">
<p>&nbsp;</p>
<p><a href="../php/index.php"><img src="../imagenes/VOLVER.gif" width="82" height="30" border="0"></a>
</p>
</div>
</td>
</tr>
</table>
<p align="left">&nbsp; </p>
</form>
</body>
</html>

Última edición por pereztroff; 31/12/2002 a las 13:05
  #2 (permalink)  
Antiguo 31/12/2002, 10:05
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
y el proceso de grabado de los datos de ese formulario lo hice:
<?
$filename="directorio.txt";
$registro=$sector."[s]".$empresa."[s]".$direccion."[s]".$email."[s]".$prefijo."[s]".$numero."[s]";
$abrir=fopen($filename,"r+");
$anterior=fread($abrir,filesize($filename));
$todo=$registro.$anterior;
rewind($abrir);
$guardar=fwrite($abrir;$todo);
$cerrar=fclose($abrir);
echo "datos agregados al directorio correctamente\n";
echo "<a href='formulario.html'>Volver</a>";
?>


¿a que se debe ese error? ¿que hice mal?
  #3 (permalink)  
Antiguo 31/12/2002, 10:45
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
el error te lo da porque en la linea 8 separas con ; y no con , (coma), los parametros de funciones se separan por comas

Código PHP:
$guardar fwrite($abrir$todo); 
Saludos
  #4 (permalink)  
Antiguo 31/12/2002, 13:03
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
gracias pero ahora--------
Warning: fopen(directorio.txt) [function.fopen]: failed to create stream: No such file or directory in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 4

Warning: filesize() [function.filesize]: Stat failed for directorio.txt (errno=2 - No such file or directory) in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 5

Warning: fread(): supplied argument is not a valid stream resource in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 5

Warning: rewind(): supplied argument is not a valid stream resource in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 7

Warning: fwrite(): supplied argument is not a valid stream resource in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /web/htdocs/www.lyna.com/home/directorio/agregar.php on line 9
datos agregados al directorio correctamente Volver
  #5 (permalink)  
Antiguo 31/12/2002, 13:11
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
estas seguro de que el archivo o la carpeta existen??
  #6 (permalink)  
Antiguo 31/12/2002, 13:32
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
la carpetas si existen pero el archivo directorio.txt no

¿es eso? explique graciassssssssssssssssss.

¡feliz año nuevo 2003¡
  #7 (permalink)  
Antiguo 31/12/2002, 13:40
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
es eso, porque estas tratando de abrir un archivo que en realidad no existe, antes debes crearlo, o por ejemplo abrirlo con "w" que si no existe lo crea, pero lamentablemente esa opcion borra el anterior si existiece creao.

podrias tratar asi

Código PHP:
if(!$abrir=fopen($filename,"r+")) {
    
$abrir fopen($filename"w");

prueba haber que sucede

Saludos
  #8 (permalink)  
Antiguo 31/12/2002, 13:44
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
muchas gracias por tu interes amigo, el problema es que no existia el archivo. asi que lo cree vacio y lo subi al servidor. hice un par de pruebas y ya graba los datos. muchas gracias.

de todas formas tomare nota de lo que me dijiste en tu ultimo post.
  #9 (permalink)  
Antiguo 31/12/2002, 13:46
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
Ok
que bueno que te aya funcionado, para esos estamos todos no, para aprender y ayudar a aprender.

Saludos
  #10 (permalink)  
Antiguo 01/01/2003, 13:40
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
hola chalito de nuevo, me funciono de maravilla todo.....
ahora quiero hacer consultas a la base de datos plana txt, para ello he creado un archivo-formulario de este tipo:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="listar.php">
Sector a consultar:
<select name="sector">
<option>Ayuntamiento</option>
<option>Urgencias</option>
<option>Bares</option>
<option>Restaurantes</option>
<option>Cafeterias</option>
<option>Cines</option>
<option>Tiendas de ropa</option>
</select>
</form>
</body>
</html>


ahora como programo para que solo me liste los registros que cumplan la seleccion realizada anteriormente con el formulario???? gracias.
he intentado usar un while para que cumpla la condicion y explode para crear 1 array, pero no me funciona el tema, si pudieras echarme una mano....
  #11 (permalink)  
Antiguo 01/01/2003, 13:44
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
Bueno, enrealidad te falta dar el value a los option, porque asi no estas propagando nada para la pagina siguiente, simplemente la variavle vacia. Debes hacer asi

<option value="ayuntamiento">Ayuntamineto</option>
<option value="urgencias">Urgencias</option>

y asi con todos

Saludos
  #12 (permalink)  
Antiguo 01/01/2003, 14:02
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
estoy mas liado que la pata de un romano

ya arregle eso chalito, un despiste....
pero no doy pei con bola pues intento listar los registros con el siguiente codigo, que a base de probar y cambiar parametros ya no me funciona
<?
$filename="directorio.txt";
$file=fopen($filename,"r+");
$contenido=fread($file,filesize($filename));
$directorio=explode("[s]",$contenido);
?>
<html>
<head>
<title>Directorio</title>
</head>
<body>
<table>
<?
$i=0;
while($array[1]=$sector){
echo "<tr>";
echo "<td width="250" bgcolor='blue'>";
echo $directorio[$i];
$i++
echo "<
  #13 (permalink)  
Antiguo 01/01/2003, 20:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Comentario:
pereztroff .. cuando pongas código .. usa el boton "PHP" .. ahi se marca el códgio PHP y se colorea suficientemente visible y facil de leer para localizar errores o simplemente entender mejor el código.

Un saludo,
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 08:37.