Comunidad de diseño web y desarrollo en internet online

Ayuda, Php no me lee los espacios de un ".txt"

Citar            
MensajeEscrito el 06 Ago 2009 06:07 pm
Tengo un codigo que hace lo siguiente:

En una pagina Html hay un campo de texto llamado "nombre" y un boton. Al pulsar el boton, mediante un archivo PHP lo que hace es: Copiar el nombre del campo de texto "nombre" y pegarlo en un archivo llamado "lista.txt" siempre i cuando ese nombre no exista todavía en el archivo txt.

Codigo html:

Código HTML :

<form action="pagina2.php" method="post">
Ingrese su nombre:
<input type="text" name="nombre" size="20">
<input type="submit" value="Registrar">
</form>


Codigo Php:

Código PHP :

<?php 
$palabra = ($_REQUEST['nombre']); 
if(!$fp = fopen("lista.txt","r")) { 
echo "No pudo abrirse el archivo"; 
} else { 
while(!feof($fp)) { 
$leer_linea = fgets($fp,10); 
if($leer_linea == $palabra) {
echo "Se han encontrado coincidencias<br>"; 
} else {
echo "No han encontrado coincidencias<br>"; 
  $ar=fopen("lista.txt","a") or
    die("No pudo abrirse el archivo");
  fputs($ar,$_REQUEST['nombre']);
  fputs($ar," ");
  fclose($ar);
  echo "Los datos se cargaron correctamente.";
 }
} 
fclose($fp);
}
?>



El caso es que, si por ejemplo en el campo de texto de la pagina HTML le pongo el nombre "Javier" y le doy al boton:

Si en el archivo de texto "lista.txt" hay el nombre "Javier", sin nada más, el php funciona bien y me dice "
Se han encontrado coincidencias"

Pero si en el aechivo "lista.txt" hay muchos nombres, separados por espacios, como: "Carmen Maria Javier Ramon Laura", el codigo funciona mal, el php me dice que no se han encontrado coincidencias y vuelve a escrivir el nombre en la lista.

me parece que esto es por que no save leer los espacios. he provado que el codigo PHP separe los nombres por comas ",", cambios de linea "/n", "&", etc, pero no hay manera.

Alguien sabe como areglarlo?????


Graciasss

Por -cibernetik-

72 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ago 2009 07:01 pm
Hola,

Esta linea:

Código PHP :

$leer_linea = fgets($fp,10);


Reemplazala por:

Código PHP :

$leer_linea = fgets($fp);


Cada nombre debe estar en su propia linea.

Debería funcionar ahora.

Suerte,

PLL.

Por PLL

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ago 2009 07:30 pm
Lo he remplazado, pero sigue pasando exactamente lo mismo que antes :S

Por -cibernetik-

72 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ago 2009 08:15 pm
He adaptado otro codigo que he encontrado y funciona perfecto:

Código PHP :

<?php 
if((!empty($_POST["nombre"]))|| isset($_POST["nombre"])){
         $file = fopen ("lista.txt", "r");
         $linea = trim(fgets($file));
         $encontrado = ($linea == $_POST["nombre"]);
          while (!feof($file) && !$encontrado) {
               $linea = trim(fgets($file));
               $encontrado = ($linea==$_POST["nombre"]);}
           //end while
              fclose ($file);
}
       if (!$encontrado) {
              echo '<br> El codigo no fue encontrado';
                $ar=fopen("lista.txt","a") or
    die("Problemas en la creacion");
  fputs($ar,$_REQUEST['nombre']);
  fputs($ar,"/n");
  fclose($ar);
  
  echo "Los datos se cargaron correctamente.";
              
       } else {
             echo 'Lo encontré: '.$linea;
      }
?>


Gracias.

Por -cibernetik-

72 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.