PHP - Problema al iniciar sesion Oracle + PHP

   
Vista:
Imágen de perfil de Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 01/08/2016 04:04:24
Tengo sistema de usuarios en una pagina que almacena datos en Oracle 11g, el problema surge en que a la hora del usuario iniciar sesion deberia de mandarle un mensaje diciendo "Inicio de sesion correcto" y al darle 'Aceptar' deberia de enviarlo a la pagina de inicio de una vez, el problema aca es que nada de eso sucede, no manda error ni nada por el estilo.

aca el codigo:

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
<?php
session_start();
?>
<?php
		if(isset($_SESSION["session_username"])){
		}
		if(isset($_POST["log-submit"])){
			if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		 		$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query =mysql_query("SELECT * FROM USUARIO WHERE nick='".$nickname."' AND password='".$password."'");
				$numrows=mysql_num_rows($query);
		 	if($numrows!=0){
		 		while($row=mysql_fetch_assoc($query))
					 {
					 $dbnickname=$row['nick'];
					 $dbpassword=$row['password'];
					 }
				if($nickname == $dbnickname && $password == $dbpassword){
		 			$_SESSION['session_username']=$nickname;
		 			echo"<script type='text/javascript'>alert('Inicio de Sesion Correcto !!! ');
		 			window.location='http://localhost/conn/pagina/foro5/paginaweb/PaginaInicio.php.html';</script>";
				}
			} else {
		 		$message = "Nombre de usuario ó contraseña invalida!";
			 }
			} else {
		 $message = "Todos los campos son requeridos!";
		}
		}
?>
Agradezco de antemano
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 kip

Problema al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 01/08/2016 04:47:07
Hola, el problema esta en que usas una base de datos Oracle y para conectarte estas usando funciones para el gestor Mysql.

Prueba usando las funciones que provee PHP para la conexion a Oracle!

http://php.net/manual/es/function.oci-connect.php

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
Imágen de perfil de Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 01/08/2016 06:33:45
Buenas de nuevo Kip, haha tienes razon, se me habia olvidado que estaba haciendolo con oracle
ya le hice la sustitucion y ahora me despliega este error en la linea 12

Warning: oci_num_rows() expects parameter 1 to be resource, string given.

aca el codigo
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
<?php
session_start();
?>
<?php
		if(isset($_SESSION["session_username"])){
		}
		if(isset($_POST["log-submit"])){
			if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		 		$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query ="SELECT * FROM USUARIO WHERE nick='".$nickname."' AND password='".$password."'";
				$numrows=oci_num_rows($query);
		 	if($numrows!=0){
		 		while($row=oci_fetch_assoc($query))
					 {
					 $dbnickname=$row['nick'];
					 $dbpassword=$row['password'];
					 }
				if($nickname == $dbnickname && $password == $dbpassword){
		 			$_SESSION['session_username']=$nickname;
		 			echo"<script type='text/javascript'>alert('Inicio de Sesion Correcto !!! ');
		 			window.location='http://localhost/conn/pagina/foro5/paginaweb/PaginaInicio.php.html';</script>";
				}
			} else {
		 		$message = "Nombre de usuario ó contraseña invalida!";
			 }
			} else {
		 $message = "Todos los campos son requeridos!";
		}
		}
?>
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 01/08/2016 23:17:24
Si te fijas bien te daras cuenta que no estas ejecutando la query, solo estas declarando la variable que contiene la query, mira:

1
2
3
4
$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query ="SELECT * FROM USUARIO WHERE nick='".$nickname."' AND password='".$password."'";
				$numrows=oci_num_rows($query);

Debes ejecutarla y te deberia funcionar!

Ya sabes cuales funciones.
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 01/08/2016 23:53:02
algo asi dices ?
lo hice asi, y ya no me manda el error, pero no hace nada o sea, no manda el aviso de inicio de sesion exitoso ni nada
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
<?php
session_start();
?>
<?php
		$conn = oci_connect('PROYECTO','oracle2016','localhost/xe');
		if(isset($_SESSION["session_username"])){
		}
		if(isset($_POST["log-submit"])){
			if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		 		$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query ="SELECT * FROM USUARIO WHERE NICKNAME ='".$nickname."' AND PASSWORD ='".$password."'";
				$stmt = oci_parse($conn, $query);
				oci_execute($stmt);
				$numrows=oci_num_rows($stmt);
		 	if($numrows != 0){
		 		while($row=oci_fetch_assoc($stmt))
					 {
					 $dbnickname=$row['nick'];
					 $dbpassword=$row['password'];
					 }
				if($nickname == $dbnickname && $password == $dbpassword){
		 			$_SESSION['session_username']=$nickname;
		 			echo"<script type='text/javascript'>alert('Inicio de Sesion Correcto !!! ');
		 			window.location='http://localhost/conn/pagina/foro5/paginaweb/PaginaInicio.php.html';</script>";
				}
			} else {
		 		$message = "Nombre de usuario ó contraseña invalida!";
			 }
			} else {
		 $message = "Todos los campos son requeridos!";
		}
		}
?>
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 02/08/2016 16:11:39
Debe haber algun problema en esta linea:

1
if(isset($_POST["log-submit"])){

Fijate que se envie aquella variable desde el form con ese nombre.
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 02/08/2016 19:40:54
ok, entonces si te entiendo bien, ahi
1
if(isset($_POST["log-submit"])){
lo que tiene que ir es el nombre del form? pense que iba el nombre del boton que ejecutaba la accion.

Ya probe con los nombre y id's del form y me sigue sin funcionar

aca el codigo
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
<div >
			<div >
				<div class="form-container" >
				<h2><font color="#ffffff">Inicia Sesion aca !</font></h2>
				<br/>
				<form class="contact_form"  action="Log-Form.php" method="post">
				<ul>
 
 
				  <li>
				  	<label for="Nick" ><font color="#ffffff">Nombre de Usuario</font></label>
					<input type="text" name="nick" id="nick" required="required"/>
				  </li>
 
				  <li>
				  	<label for="Password" ><font color="#ffffff">Password</font></label>
					<input type="password" name="password" id="password" required="required"/>
				  </li>
 
 
				  <li>
          <button class="submit" type="submit" name="log-submit">Iniciar Sesion</button>
        </li>
 
				</ul>
 
				</form>
				</div>
			</div>
		</div>
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 02/08/2016 20:21:40
No, no me referia a eso, esta bien como dices, debe ir el nombre de todo input dentro del form, siento no haberme explicado bien, podrias hacer un var_dump() de las variables que envias, hazlo dentro del if donde se debe ejecutar la validacion de usuario y contraseña.

Nos comentas si tienes duda o si no entiendes.
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 02/08/2016 20:24:44
Soy principiante en php, que es exactamente un var_dump()? y como se aplica
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 02/08/2016 22:32:34
le hice el var_dump() y me despliega esto

int(0)

que puede ser ??
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 al iniciar sesion Oracle + PHP

Publicado por xve (5519 intervenciones) el 02/08/2016 23:59:20
Es algo así:
1
var_dump($variable);
http://php.net/manual/es/function.var-dump.php
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 03/08/2016 00:00:57
asi lo hice

1
2
3
4
5
6
7
8
9
10
11
12
$conn = oci_connect('PROYECTO','oracle2016','localhost/xe');
if(isset($_SESSION["session_username"])){
}
if(isset($_POST["log-submit"])){
	if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		$nickname=$_POST['nick'];
		$password=$_POST['password'];
		$query ="SELECT * FROM USUARIO WHERE NICKNAME ='".$nickname."' AND PASSWORD ='".$password."'";
		$stmt = oci_parse($conn, $query);
		oci_execute($stmt);
		$numrows = oci_num_rows($stmt);
		var_dump($numrows);
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 03/08/2016 02:02:35
Tal como te menciona xve es la forma de hacerlo y lo haces bien pero te mencione que hagas var_dump() de la variable $_POST, te lo menciono para que puedas verificar que variables del form te estan llegando, seria algo asi:

1
2
3
4
5
<?php
		$conn = oci_connect('PROYECTO','oracle2016','localhost/xe');
		if(isset($_SESSION["session_username"])){
		}
                var_dump($_POST);

Muestranos que te arroja aquel var_dump(), asi mismo identificalo.
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 03/08/2016 02:17:13
array(3) { ["nick"]=> string(7) "pcastro" ["password"]=> string(8) "pcastro1" ["log-submit"]=> string(0) "" }

eso es lo que me envia, o sea los datos almacenados en la BD
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 03/08/2016 03:11:54
Bueno, al parecer si llegan los datos, prueba de esta forma:

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
<?php
session_start();
?>
<?php
		$conn = oci_connect('PROYECTO','oracle2016','localhost/XE');
		if(isset($_SESSION["session_username"])){
			echo 'Ya inicio sesion!';
		}
		if(isset($_POST["log-submit"])){
			if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		 		$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query ="SELECT * FROM USUARIO WHERE NICKNAME ='".$nickname."' AND PASSWORD ='".$password."'";
				$stmt = oci_parse($conn, $query);
				oci_execute($stmt);
				$nrows = oci_fetch_all($stmt, $res);
		 	if($nrows){
		 		while($row=oci_fetch_assoc($stmt))
					 {
					 $dbnickname=$row['nick'];
					 $dbpassword=$row['password'];
					 }
				if($nickname == $dbnickname && $password == $dbpassword){
		 			$_SESSION['session_username']=$nickname;
		 			echo"<script type='text/javascript'>alert('Inicio de Sesion Correcto !!! ');
		 			window.location='http://localhost/conn/pagina/foro5/paginaweb/PaginaInicio.php.html';</script>";
				}
			} else {
		 		$message = "Nombre de usuario ó contraseña invalida!";
			 }
			} else {
		 $message = "Todos los campos son requeridos!";
		 echo $message;
		}
		} else { echo "<script type='text/javascript'>alert('Algo fallo en el submit del formulario! ');</script>"; }
?>

Nos cuentas como te fue.
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 03/08/2016 03:26:58
Ok apenas entra a la pagina manda la alerta que dice "Algo fallo en el submit del formulario"
y cuando trato de loguearme con otro usuario me manda esto


Notice: Undefined variable: dbnickname on line 42

1
if($nickname == $dbnickname && $password == $dbpassword){

y la variable $res que hace? (duda personal)
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 03/08/2016 03:57:06
Creo que es porque los campos son en mayusculas y no en minusculas, asi:

1
2
$dbnickname=$row['NICK'];
$dbpassword=$row['PASSWORD'];

Intentalo.

Con respecto a tu duda, es una variable que almacenar un array del resultado de la funcion oci_fetch_all(), en este caso no tiene uso pero debe estar alli ya que es un parametro obligatorio, aqui te dejo el link de la documentacion oficial:

http://php.net/manual/es/function.oci-fetch-all.php
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 Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 03/08/2016 04:04:58
Kip, lamentablemente me sigue diciendo lo mismo
Notice: Undefined variable on line 42

e igual me sigue enviando el mensaje apenas ingreso a la pagina, es como si se saltara todo lo demas y cayera de una vez en el else del mensaje
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 al iniciar sesion Oracle + PHP

Publicado por kip (567 intervenciones) el 03/08/2016 04:15:29
Ya veo, parece ser que me equivoque y te equivocaste en la variable $row['nick'], ya que es $row['nickname'], prueba asi ahora, quite el else para que no te aparezca el error al entrar a la pagina:

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
<?php
session_start();
?>
<?php
		$conn = oci_connect('PROYECTO','oracle2016','localhost/XE');
		if(isset($_SESSION["session_username"])){
			echo 'Ya inicio sesion!';
		}
		if(isset($_POST["log-submit"])){
			if(!empty($_POST['nick']) && !empty($_POST['password'])) {
		 		$nickname=$_POST['nick'];
		 		$password=$_POST['password'];
				$query ="SELECT * FROM USUARIO WHERE NICKNAME ='".$nickname."' AND PASSWORD ='".$password."'";
				$stmt = oci_parse($conn, $query);
				oci_execute($stmt);
				$nrows = oci_fetch_all($stmt, $res);
		 	if($nrows){
		 		//$stmt2 = oci_parse($conn, $query);
				//oci_execute($stmt2);
		 		while($row=oci_fetch_assoc($stmt))
					 {
					 $dbnickname=$row['NICKNAME'];
					 $dbpassword=$row['PASSWORD'];
					 }
				if($nickname == $dbnickname && $password == $dbpassword){
		 			$_SESSION['session_username']=$nickname;
		 			echo"<script type='text/javascript'>alert('Inicio de Sesion Correcto !!! ');
		 			window.location='http://localhost/conn/pagina/foro5/paginaweb/PaginaInicio.php.html';</script>";
				}
			} else {
		 		$message = "Nombre de usuario ó contraseña invalida!";
			 }
			} else {
		 $message = "Todos los campos son requeridos!";
		 echo $message;
		}
		}
?>

Ademas de lo que te menciono, coloque unas lineas que comente para que no se ejecuten, de darte error descomentalas quitandole las // y cambia esta linea asi:

1
while($row=oci_fetch_assoc($stmt2))

Nos cuentas.
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
Imágen de perfil de Garen

Problema al iniciar sesion Oracle + PHP

Publicado por Garen (28 intervenciones) el 03/08/2016 04:23:22
ahora si Kip, no sabes lo mucho que agradezco,
me mandaba el mismo error, pero le cambie la lienea que me dijiste y descomente las otras dos y ahora si me desplego el mensaje de "Inicio de sesion exitoso"
gracias de nuevo
(Tal vez volvere a aparecer con alguna otra duda en estos dias asi que no me olviden haha)
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