Pregunta:
Fecha: 03-11-2016 07:38:45
(En Español)
Este es conexion.php:
Syntax error, unexpected end of file en mi código PHP[Resuelta]
Saludos, mi problema es el siguiente, estoy realizando un login con PDO y este fragmento de código me da el error de unexpected end of file.... y no tengo idea el porqué, cualquier ayuda o comentario lo agradeceré.<?php
include_once("conexion.php");
if (isset($_POST["usuario"]))
$usuario = $_POST["usuario"];
if (isset($_POST["contraseña"]))
$pass = $_POST["contraseña"];
$con;
$stmt = $con->prepare('SELECT tipo, usuario, contrasena from usuarios where usuario =:usuario AND contrasena =:pass ');
$stmt->execute($con);
while($row =$stmt->fetch() ) {
if ($row['tipo'] == 1) {
header("Location: principal1.php");
}else {
if ($row['tipo'] == 2) {
header("Location: principal2.php");
}
}
?>
Este es conexion.php:
<?php
try {
$con = new PDO("mysql:host=localhost;dbname=marketpro", "root", "");
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$con->query("SET NAMES 'utf-8'");
} catch (Exception $e) {
echo "No se ha podido conectar con la base de datos";
exit();
}
return $con;
?>
Votos: 0 -
Respuestas: 5 -
Vistas: 9
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 03-11-2016 11:11:48 Amigo, creo que el error es $con, porque ya estas haciendo el include('conexion devuelve un $con'), cuando como si fuera una función
conexion.php:
<?php // esta es mi aporte archivo conexion.php function conexion(){ try { $con = new PDO("mysql:host=localhost;dbname=marketpro", "root", ""); $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $con->query("SET NAMES 'utf-8'"); } catch (Exception $e) { echo "No se ha podido conectar con la base de datos"; exit(); } return $con; } ?>
Archivo que busca la credenciales...
include_once("conexion.php"); if (isset($_POST["usuario"])) $usuario = $_POST["usuario"]; if (isset($_POST["contraseña"])) $pass = $_POST["contraseña"]; // este es mi aporte $con = conexion(); $consulta = "SELECT tipo, usuario, contrasena from usuarios where usuario $usuario AND contrasena =$pass " $stmt = $con->prepare($consulta); $stmt->execute($con); while($row =$stmt->fetch() ) { if ($row['tipo'] == 1) { header("Location: principal1.php"); }else { if ($row['tipo'] == 2) { header("Location: principal2.php"); } }
Comentame si te sirvio, Dios te bendiga
Saludos desde Ecuador Votos: 1 - Link respuesta -
Fecha: 03-11-2016 12:02:37 Hola
En el primer código en la linea 10 esta la variable $con; sin asignación.
Fue un error de tipo o querías hacer algo en esa línea?
Saludos Votos: 1 - Link respuesta -
Fecha: 04-11-2016 13:05:29 Gracias por el aporte, lo he resuelto a medias, mi situación es: necesito 4 tipos de usuarios pero si ingreso mas de dos me rederige al archivo que se encarga de la validación pero no hace nada:
<?php
session_start();
if (isset($_POST["usuario"]))
$usuario = $_POST["usuario"];
if (isset($_POST["contraseña"]))
$pass = $_POST["contraseña"];
// este es mi aporte
if (isset($_POST["usuario"]))
$usuario = $_POST["usuario"];
if (isset($_POST["contraseña"]))
$pass = $_POST["contraseña"];
$dbh = new PDO('mysql:host=localhost;dbname=marketpro', 'root', '');
$sth = $dbh->prepare("SELECT * FROM usuarios WHERE usuario = ? AND contrasena = ?");
$sth->bindParam(1, $usuario);
$sth->bindParam(2, $pass);
$sth->execute();
if ($sth->rowCount() > 0) {
foreach ($sth as $row ) {
if($row['tipo'] == 1) {
header("Location: principal1.php");
}
else {
if($row['tipo'] == 2) {
header("Location: principal2.php"); }
}
}
}
?> Votos: 0 - Link respuesta -
-
Fecha: 04-11-2016 20:57:35 Gracias a todos por su interes, ya lo resolví, se podría mejorar usando switch en lugar de los if anidados pero así lo tengo, les dejo el código, talves a alguien le puede servir, de nuevo gracias, bendiciones..
<?php
session_start();
if (isset($_POST["usuario"]))
$usuario = $_POST["usuario"];
if (isset($_POST["contraseña"]))
$pass = $_POST["contraseña"];
// este es mi aporte
if (isset($_POST["usuario"]))
$usuario = $_POST["usuario"];
if (isset($_POST["contraseña"]))
$pass = $_POST["contraseña"];
$dbh = new PDO('mysql:host=localhost;dbname=marketpro', 'root', '');
$sth = $dbh->prepare("SELECT * FROM usuarios WHERE usuario = ? AND contrasena = ?");
$sth->bindParam(1, $usuario);
$sth->bindParam(2, $pass);
$sth->execute();
if ($sth->rowCount() > 0) {
foreach ($sth as $row ) {
if ($row['tipo'] == 1) {
header("Location: principal1.php");
} else if ($row['tipo'] == 2) {
header("Location: principal2.php");
} else if ($row['tipo'] == 3) {
header("Location: principal2.php");
}else if ($row['tipo'] == 4) {
header("Location: principal4.php");
}
}
} else{
header("Location: inmobiliaria.html");
exit();
}
?> Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
