Foros del Web » Programando para Internet » PHP »

problemas con codigo php

Estas en el tema de problemas con codigo php en el foro de PHP en Foros del Web. Buenas Noches. Estoy trabajando en un proyecto html php css y javas para dar mi última nota en HTML2, estoy en el modulo de crear ...
  #1 (permalink)  
Antiguo 10/09/2017, 19:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
problemas con codigo php

Buenas Noches.

Estoy trabajando en un proyecto html php css y javas para dar mi última nota en HTML2, estoy en el modulo de crear un perfil del usuario registrado para que este pueda modificarlo, pero he hecho varios códigos y no pasa nada, el módulo administrador logre crearlo pero el del usuario no puedo, estoy medio afligido con esto, dejo mis codigos creados.

perfil.php

<!DOCTYPE html>
<?php
session_start();
if (@!$_SESSION['usuario']) {
header("Location:../index.html");
}
?>
<html lang="esp">
<head>
<meta charset="UTF-8">
<title>Dakyma Turismo</title>
<meta name="viewport" content="width=divece-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0 , minimum-scale=1.0">
<link rel="stylesheet" href="../css/editar_admin.css">
<link href="https://file.myfontastic.com/U8nWM5coCKASdA8CNbA6JH/icons.css" rel="stylesheet">
</head>
<body>
<header class="header">
<div class="contenedor">
<h1 class="logo">DAKYMA TURISMO</h1>
<span class="icon-menu" id="btn-menu"></span>
<nav class="nav" id="nav">
<ul class="menu">
<li class="menu__item"><a href="../index2.html" class="menu__link select" >Inicio</a></li>
<li class="menu__item"><a href="../usuarios/perfil.php" class="menu__link" >Mi Perfil</a></li>
<li class="menu__item"><a href="vision.html" class="menu__link" >Públicar</a></li>
<li class="menu__item"><a href="../usuarios/salir.php" class="menu__link" >Salir</a></li>
</nav>
</div>
</header>
<div class="banner">
<img src="../imagen/turismo.jpg" alt="" class="banner__img">
<div class="contenedor">
<h2 class="banner__titulo">LA LIBRERÍA TURISTÍCA ONLINE</h2>
<p class="banner__texto">Librería Digítal de los mejores lugares turísticos del mundo</p>
</div>
</div>
<form action="#" class="navbar-search form-inline" style="margin-top:6px">
</form>

<a href="">Bienvenido <strong><?php echo $_SESSION['usuario'];?></strong></a>

<?php
extract($_GET);
require("../conectar.php");

$id=['id'];

$sql="SELECT id FROM usuarios WHERE id=$id";
$ressql=mysqli_query($conexion, $sql);
while ($row=mysqli_fetch_row ($ressql)) {
$id=$row[0];
$nombre=$row[1];
$apellidos=$row[2];
$email=$row[3];
$user=$row[5];
$pass=$row[6];
$telefono=$row[8];

}


?>

<form action="edit_perfil.php" method="post">
<h3 class="form__titulo2">Mi Perfil de Usario</h3>
Id<input type="text" placeholder="🔐 Id" name="Id" value="<?php echo $id?>" readonly="readonly">
Nombre<input type="text" placeholder="🔐 Nombre" name="nombre" value="<?php echo $nombre?>">
Apellidos<input type="text" placeholder="🔐 Apellidos" name="Apellidos" value="<?php echo $apellidos?>">
Correo<input type="text" placeholder="🔐 Correo" name="correo" value="<?php echo $email?>">
Usuario<input type="text" placeholder="🔐 Usuario" name="usuario" value="<?php echo $user?>">
Clave<input type="text" placeholder="🔐 Clave" name="clave" value="<?php echo $pass?>">
Telefono<input type="text" placeholder="🔐 Telefono" name="telefono" value="<?php echo $telefono?>">
<input type="submit" value="editar" class="btn btn-success btn-primary">
</form>


</div>

<footer class="footer">
<div class="social">
<a href="" class="icon-facebook"></a>
<a href="" class="icon-twitter"></a>
<a href="" class="icon-gplus"></a>
<a href="" class="icon-youtube"></a>
<a href="" class="icon-instagram"></a>
</div>
<p class="copy">&copy; DAKYMA TURISMO 2017 - Todos Los derechos reservados</p>
</footer>
<script src="../js/menu.js"></script>
</body>
</html>


edit_perfil.php

<?php


extract($_POST);

require("../conectar.php");

$sentencia="UPDATE usuarios SET nombre='$nombre', apellidos='$apellidos', correo='$email', usuario='$user', clave='$pass', telefono='$telefono' WHERE id='$id'";


$resent=mysqli_query($conexion,$sentencia);
if ($resent==null) {

echo "Error de procesamieno no se han actuaizado los datos";
echo '<script>alert("ERROR EN PROCESAMIENTO NO SE ACTUALIZARON LOS DATOS")</script> ';
header("location:../usuarios/admin.php");

echo "<script>location.href='../usuarios/admin.php'</script>";
}else {
echo '<script>alert("REGISTRO ACTUALIZADO")</script> ';

echo "<script>location.href='../usuarios/admin.php'</script>";


}
?>

entrar.html (formulario login)

<!DOCTYPE html>
<html lang="esp">
<head>
<meta charset="UTF-8">
<title>Dakyma Turismo</title>
<meta name="viewport" content="width=divece-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0 , minimum-scale=1.0">
<link rel="stylesheet" href="../css/entrar.css">
<link href="https://file.myfontastic.com/U8nWM5coCKASdA8CNbA6JH/icons.css" rel="stylesheet">
</head>
<body>
<header class="header">
<div class="contenedor">
<h1 class="logo">DAKYMA TURISMO</h1>
<span class="icon-menu" id="btn-menu"></span>
<nav class="nav" id="nav">
<ul class="menu">
<li class="menu__item"><a href="../index.html" class="menu__link" >inicio</a></li>
<li class="menu__item"><a href="../pagina.html" class="menu__link" >Quienes Somos</a></li>
<li class="menu__item"><a href="../vision.html" class="menu__link" >Visión</a></li>
<li class="menu__item"><a href="../registrar/registrar.html" class="menu__link">Registrate</a></li>
<li class="menu__item"><a href="../login/entrar.html" class="menu__link select" >login</a></li>
<li class="menu__item"><a href="../contacto/contacto.html" class="menu__link">Contacto</a></li>
</ul>
</nav>
</div>
</header>
<div class="banner">
<img src="../imagen/turismo.jpg" alt="" class="banner__img">
<div class="contenedor">
<h2 class="banner__titulo">LA LIBRERÍA TURISTÍCA ONLINE</h2>
<p class="banner__texto">Librería Digítal de los mejores lugares turísticos del mundo</p>
</div>
</div>
<form action="../login/validar.php" method="post">
<h2 class="form__titulo2">Formulario de Login</h2>
<input type="text" placeholder="🔐 Usuario" name="usuario">
<input type="password" placeholder="🔐 Contraseña" name="clave">
<input type="submit" value="Ingresar">
</form>
<footer class="footer">
<div class="social">
<a href="" class="icon-facebook"></a>
<a href="" class="icon-twitter"></a>
<a href="" class="icon-gplus"></a>
<a href="" class="icon-youtube"></a>
<a href="" class="icon-instagram"></a>
</div>
<p class="copy">&copy; DAKYMA TURISMO 2017 - Todos Los derechos reservados</p>
</footer>
<script src="../js/menu.js"></script>
</body>
</html>

validar.php (donde valido el ingreso del usuario).

<?php
//include("connect_db.php");

//$miconexion = new connect_db;


session_start();
require("../conectar.php");

$user=$_POST['usuario'];
$pass=$_POST['clave'];




//la variable $mysqli viene de conectar que lo traigo con el require("conectar.php");
$sql2=mysqli_query($conexion, "SELECT * FROM usuarios WHERE useradmin='$user'") or die (mysql_error());
if($f2=mysqli_fetch_assoc($sql2)){
if($pass==$f2['claveadmin']){
$_SESSION['id']=$f2['id'];
$_SESSION['useradmin']=$f2['useradmin'];

echo '<script>alert("BIENVENIDO ADMINISTRADOR")</script> ';
echo "<script>location.href='../usuarios/admin.php'</script>";

}
}


$sql=mysqli_query($conexion, "SELECT * FROM usuarios WHERE usuario='$user'") or die (mysql_error());
if($f=mysqli_fetch_assoc($sql)){
if($pass==$f['clave']){
$_SESSION['id']=$f['id'];
$_SESSION['usuario']=$f['usuario'];

echo '<script>alert("Bienvenido Usuario, te has logueado correctamente ")</script> ';

echo "<script>location.href='../usuarios/index2.html'</script>";

}else{

echo '<script>alert("CONTRASEÑA INCORRECTA")</script> ';

echo "<script>location.href='../index.html'</script>";
}
}else{

echo '<script>alert("ESTE USUARIO NO EXISTE, PORFAVOR REGISTRESE PARA PODER INGRESAR")</script> ';

echo "<script>location.href='../index.html'</script>";

}

?>

espero me puedan hechar una manito.
  #2 (permalink)  
Antiguo 10/09/2017, 20:10
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: problemas con codigo php

mira, no entiendo esto:

- de donde sacas esta ID???? y si ya tienes la ID(porque buscas en el select) porque la vuelves a sacar
Código PHP:
Ver original
  1. $id=['id']; // de donde sacas esto???
  2.  
  3. $sql="SELECT id FROM usuarios WHERE id=$id";
  4. $ressql=mysqli_query($conexion, $sql);
  5. while ($row=mysqli_fetch_row ($ressql)) {
  6. $id=$row[0];//ESTA PARA QUE SI YA LA TIENES?

no se si ['id'] hace referencia a que la traes en una variable session??
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 11/09/2017, 09:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: problemas con codigo php

Gracias por responder.

Esa id la puse ya que me dio un error de validar la id que esta en el select.


Atte.
  #4 (permalink)  
Antiguo 11/09/2017, 10:01
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problemas con codigo php

Me sumo a petit.

Ese while esta de sobra para obtener los datos del usuario. basta con el fetch y listo.

Estimado no uses extract con get post y files, no te lo voy a explicar aqui en los detalles del porque no, pero ve la documentacion de extract php (disculpen el enlace a 3eros pero es php.net, no veo el problema)

Lo otro en
"UPDATE usuarios SET nombre='$nombre', apellidos='$apellidos', correo='$email', usuario='$user', clave='$pass', telefono='$telefono' WHERE id='$id'";

Y en

"SELECT * FROM usuarios WHERE useradmin='$user'"

Son variables dadas por el usuario si no escapas las variables pueden hacer injection y adios tabla....

2. El usuario no debería poder cambiar su nombre de usuario, es totalmente ilógico

$sentencia="UPDATE usuarios SET nombre='$nombre', apellidos='$apellidos', correo='$email', usuario='$user', clave='$pass', telefono='$telefono' WHERE id='$id'";

Si el usuario es pedro y en el post pone pablo, adios usuario, y por otro lado en una tabla de usuarios, el nombre de usuario deberia ser unico, a que voy una persona puede crear muchos usuarios y hacer lo anterior, entonces podrias tener muchos usuarios "pablo" en tu tabla

Ahora viendo tu código no veo error, lo unico que estaría mal es lo que dijo petit $id = ['id'];

Saludos

Etiquetas: formulario, mysql, nombre, select, sql, variable
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 01:16.