PHP - Problema con file y variables

   
Vista:

Problema con file y variables

Publicado por Victor (6 intervenciones) el 04/10/2016 19:48:35
Estoy empezando con PHP así que será una tontería. El caso es que paso datos mediante AJAX a un php. Este lee de un txt tres líneas. Lo que quiero es que al leer el dato del txt y compararlo con lo entrado en el html dé el ok. El caso es que no lo identifica. Es decir, en el código recojo el valor del txt en una variable

if ($_REQUEST['nombre']==$pss)

y no me funciona. , si en vez de esto le asigno directamente el valor:

if ($_REQUEST['nombre']=='password')

donde password sería el valor recogido por $pss del txt en el primer ejemplo, sí que me lo admite. Sin embargo al atribuírselo a la variable, no. ¿Qué se me escapa? Gracias


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
 
<html lang="es">
 
<head>
<title>Titulo de la web</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="estilos.css" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="alternate" title="Pozolería RSS" type="application/rss+xml" href="/feed.rss" />
</head>
 
<body>
    <p> TEST de ESCRITURA LECTURA EN UN TXT</p>
    <?php
        $file = fopen("data.txt", "a");
 
 
    	$file2 = file("data.txt");
        $nome=$file2[0];
        $pss=$file2[1];
 
 
        if ($_REQUEST['nombre']==$pss){
            echo"Este es el nombre: ". $file2[0]."<br/>";
            echo"Esta es la contraseña: ". $file2[1]."<br/>";
            echo"Estos son los puntos: ". $file2[2]."<br/>";
 
     }    	else{
            echo"Datos erróneos.";
 
 
		fclose($file);
        }
 
 
    ?>
 
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problema con file y variables

Publicado por xve (6035 intervenciones) el 04/10/2016 21:25:14
Has comprobado el contenido de las variables $nome y $pss?? haber que valores tienen?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con file y variables

Publicado por Victor (6 intervenciones) el 04/10/2016 22:01:10
Pues me dan valores correctos. Incluso aunque escriba:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$file = fopen("data.txt", "a");
 
 
    	$file2 = file("data.txt");
        $nome=$file2[0];
        $pss=$file2[1];
 
 
 
        if ($_REQUEST['nombre']==$file2[0]){
            echo"El valor de nome es ".$nome;
            echo"El valor de pss es ".$pss;
            echo"Este es el nombre: ". $file2[0]."<br/>";
            echo"Esta es la contraseña: ". $file2[1]."<br/>";
            echo"Estos son los puntos: ". $file2[2]."<br/>";

me sigue dando error. Y al comprobar los datos de las variables cambiando el código, como digo, me dan que tienen el contenido correcto.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Problema con file y variables

Publicado por kip (828 intervenciones) el 05/10/2016 02:11:16
Hola, tal como te pregunto xve, si verificas que aquellas variables contienen los datos que necesitas no deberias tener problema, podrias colocar el contenido del txt y asi mismo el texto o cadena estas enviando para verificar si son iguales?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con file y variables

Publicado por Victor (6 intervenciones) el 05/10/2016 06:22:49
Disculpad, creí que iba a ser más fácil resolverlo, por eso no puse todo el código. Obviando lo "guarro" que sea el código, que como soy novato y estoy de pruebas, lo que tengo sería esto


index.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
 
<html lang="es">
 
<head>
<title>PLAY</title>
<meta charset="utf-8" />
 <link rel="stylesheet" type="text/css" href="estilos.css">
 <script src="comprueba.js" type="text/javascript"></script>
 
 
</head>
 
<body>
	<header>
		<img src="images/desktop.jpg">
	</header>
	<br/>
	<br/>
		<div class="centrado">
			<div>
			   <form class="usuario">
				  Nombre <input type="text" name="nombre" id="nombre" >
				   <br/><br/>
				   Contraseña <input type="text" name="psswd" id="psswd" >
				   <br/><br/>
				   <input type="button" id="boton" value="COMPROBAR"/>
			   </form>
			</div>
	   </div>
	<br/>
	<br/>
	<br/>
	   <div id="detalles">Texto de respuesta</div>
</body>
 
</html>



comprueba.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
addEventListener('load',inicio,false);
 
function inicio(){
	var boton=document.getElementById('boton');
	boton.addEventListener('click',presionBoton,false);
}
 
function presionBoton(){
	var ob1=document.getElementById('nombre');
	var ob2=document.getElementById('psswd');
	compruebaUsuario(ob1.value,ob2.value);
}
 
var conexion1;
function compruebaUsuario(nom,pss){
	conexion1=new XMLHttpRequest();
	conexion1.onreadystatechange=procesarEventos;
	conexion1.open('GET','comprueba.php?nombre='+nom+'&psswd='+pss,true);
	conexion1.send();
}
 
function procesarEventos(){
	var detalles = document.getElementById("detalles");
	if(conexion1.readyState == 4){
		detalles.innerHTML=conexion1.responseText;
 
 
		}
		else {
			detalles.innerHTML = 'Cargando...';
		}
}


comprueba.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
 
<html lang="es">
 
<head>
<title>Titulo de la web</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="estilos.css" />
<link rel="shortcut icon" href="/favicon.ico" />
</head>
 
<body>
    <p> TEST de ESCRITURA LECTURA EN UN TXT</p>
    <?php
        $file = fopen("data.txt", "a");
 
 
    	$file2 = file("data.txt");
        $nome=$file2[0];
        $pss=$file2[1];
 
 
        // Sí funciona -----> if ($_REQUEST['nombre']=='nombre'){
        if ($_REQUEST['nombre']==$file2[0]){
            echo"El valor de nome es ".$nome;
            echo"El valor de pss es ".$pss;
            echo"Este es el nombre: ". $file2[0]."<br/>";
            echo"Esta es la contraseña: ". $file2[1]."<br/>";
            echo"Estos son los puntos: ". $file2[2]."<br/>";
 
     }    	else{
            echo"Datos erróneos. file2 0 es".$file2[0];
 
 
		fclose($file);
        }
 
 
    ?>
 
</body>
</html>


estilos.css

1
2
3
4
5
6
7
8
9
.centrado{
	text-align: center;
}
.centrado>div {
	display:inline-block;
}
.centrado form {
	text-align:right;
}


data.txt
1
2
3
nombre
nombre
0

Por ir directamente al meollo, si habilitáis la línea
if ($_REQUEST['nombre']=='nombre'){

y anuláis
if ($_REQUEST['nombre']==$file2[0]){

me reconoce los datos. Si no, no lo consigo.

Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con file y variables

Publicado por xve (6035 intervenciones) el 05/10/2016 13:01:32
Ten en cuenta una cosa... la linea del archivo, ademas del texto, tiene un salto de linea...

Prueba así:
1
if ($_REQUEST['nombre']==trim($file2[0])){

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Problema con file y variables

Publicado por Victor (6 intervenciones) el 06/10/2016 05:48:03
Como un tiro va ahora ¡Gracias por la ayuda!

La verdad es que puse los datos así para evitar tener que separarlos si iban tras comas y al final la lié más.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar