Olá a todos, é minha primeira vez aqui pedindo por ajuda, e já agradeço...
o meu problemaéo seguinte, estou tentando criar um CRUD, o cadastro/envio de mail de confirmação funciona corretamente e o login acho que está funcionando também, porém estou com problemas com o Update. Eu queria criar uma página de alteração de perfil de um usuário logado utilizando seu `id` como base de identificação, mas não estou conseguindo pegar o id, espero que alguém possa me ajudar !!!
Formulário de Login:
<?php
//include ("_php/conexao.inc"); Sempre inicia a conexão com o BD e cm sesssion_start()
include ("_php/conexao.inc");?><!-- acima tem informações de html disnescessária para minha dúvida então removi ;) --><!-- Formulário de login --><formname="login"id="fLogin"method="post"action="_php/login.php"><inputtype="password"name="senha"id="cSenha"placeholder="Senha"><inputtype="text"name="email"id="cMail"placeholder="E-mail"/><inputtype="submit"name="entrar"id="bEntrar"value="Entrar!"/></form>
Configuração do Login:
<?php
//inicia a conexão com o BD e cm sesssion_start()
include("conexao.inc");?><?php
//Pega as informações dos input
$senha = $_POST["senha"];
$email = $_POST["email"];//Faz consulta ao bando de dados
$sql = mysqli_query($conexao,"SELECT id, email, senha FROM cadastro WHERE email = '$email' AND senha = '$senha'");
$bd = mysqli_fetch_assoc($sql);//Verifica os Dados, se estiver Ok leva o user para o indexif(!empty($bd)){/*Durante minha procura por soluções muitos criavam uma session:
$_SESSION['logado'] = true; Vocês recomendam criar essa ação?*/
$_SESSION["nome_"]=$bd["nome"];
$_SESSION["senha_"]=$bd["senha"];
$_SESSION["email_"]=$bd["email"];
$_SESSION["id_"]=$bd["id"];
header('location:../index.php');}//Se não ... reconduz o user para a página de loginelse{
header('location: ../login.php');}?>
Página index: Neste arquivo tem um 'li' 'Perfil' que levaria até a um link com o id do user logado, porém no link não aparece o id $_SESSION
<?php
include ("_php/conexao.inc");?><?php
//Cria uma consulta ao BD
$sql = mysqli_query($conexao,"SELECT * FROM cadastro");if(!$sql){die("erro no banco");}//Cria uma variável para selecionar os dados
$row = mysqli_fetch_assoc($sql);?><li><ahref="index.php">Home</a></li><!--Aqui o li 'Perfil' levaria até ao link _php/altera_perfil.php?id= e acrescentaria o id do user via $_SESSION--><li><a href="_php/altera_perfil.php?id= "<?php echo $_SESSION["id_"]?>>Perfil</a></li><li><ahref="login.php">Login</a></li><li><ahref="cadastro.html">Cadastro</a></li>
Form de alteração de perfil: Aqui após fazer a consulta ao BD os input seriam preenchidos com as informações do user logado, só que acaba preenchendo com os dados do primeiro id da minha tabela do BD não com os dados do usuário logado
<?php
//inicia a conexão com o BD e cm sesssion_start()
include ("conexao.inc");?><?php
$sql = mysqli_query($conexao,"SELECT * FROM cadastro ");if(!$sql){die("erro no banco");}
$row = mysqli_fetch_object($sql);?><formname="perfil_usu"method="post"action="confim_alt_perfil.php"id="perfil_usua"><!--Aqui após fazer a consulta ao BD os input seriam preenchidos pelas informações do user logado, só que acaba preenchendo com os dados do
primeiro id da tabela do BD não com os dados do usuario logado-->
<input type="text" value="<?php echo $row->$_SESSION['nome_']?>" name="alt_nome" id="alt_nome" placeholder="Nome"/>
<input type="email" value="<?php echo $row->$_SESSION['email_']?>" name="alt_email" id="alt_email" placeholder="E-mail"/>
<input type="password" value="<?php echo $row->$_SESSION['senha_']?>" name="alt_senha" id="alt_senha" placeholder="Senha"/>
<input type="text" id="id" name="id" value="<?php echo $row->$_SESSION["id_"]?>"/>
<inputtype="submit"value="Alterar!"id="bAlterar"name="bAlterar"/>
Confirma a alteração de dados:
<?php
include ("conexao.inc");
$id = $_POST["id"];
$nome = $_POST["alt_nome"];
$senha = $_POST["alt_senha"];
$email = $_POST["alt_email"];
$sql = mysqli_query($conexao,"UPDATE cadastro SET nome = '$nome', senha = '$senha', email = '$email' WHERE id = '$_SESSION["id_"]'") OR DIE(mysqli_error());
$row = mysqli_fetch_object($sql);if(mysqli_affected_rows($conexao)>0){
echo "Sucesso: Atualizado corretamente!";}else{
echo "Aviso: Não foi atualizado!";}
Não sei se consegui explicar bem, seria tipo
O usuário faz o login.
Quando ele estiver logado ele será encaminhado para o index onde haverá a opção Perfil.
Na página Perfil haverá os campos com os dados do Usuário já preenchidos com as antigas informações onde poderá alterar APENAS os seus dados..
No link do Perfil constará o id do usuário ex:https://forum.imasters.com.br/forum/altera_perfil.php?id=$_SESSION["id"] ?>
Porém com o meu sistema não aparece o id no link e os campos são preenchidos com os dados do primeiro usuário da minha Tabela do Banco de Dados e quando faço a alteração altera a do primeiro usuário da minha Tabela não os dados do usuário logado ...
Eu fiz alguma coisa errada, viajei demais e fiz coisa que não existe kkk?
Pergunta
Amanda Antunes
Olá a todos, é minha primeira vez aqui pedindo por ajuda, e já agradeço...
o meu problema é o seguinte, estou tentando criar um CRUD, o cadastro/envio de mail de confirmação funciona corretamente e o login acho que está funcionando também, porém estou com problemas com o Update. Eu queria criar uma página de alteração de perfil de um usuário logado utilizando seu `id` como base de identificação, mas não estou conseguindo pegar o id, espero que alguém possa me ajudar !!!
Formulário de Login:
Configuração do Login:
Página index: Neste arquivo tem um 'li' 'Perfil' que levaria até a um link com o id do user logado, porém no link não aparece o id $_SESSION
<li><a href="_php/altera_perfil.php?id= "<?php echo $_SESSION["id_"] ?>>Perfil</a></li>
Form de alteração de perfil: Aqui após fazer a consulta ao BD os input seriam preenchidos com as informações do user logado, só que acaba preenchendo com os dados do primeiro id da minha tabela do BD não com os dados do usuário logado
Confirma a alteração de dados:
Não sei se consegui explicar bem, seria tipo
O usuário faz o login.
Quando ele estiver logado ele será encaminhado para o index onde haverá a opção Perfil.
Na página Perfil haverá os campos com os dados do Usuário já preenchidos com as antigas informações onde poderá alterar APENAS os seus dados..
No link do Perfil constará o id do usuário ex:https://forum.imasters.com.br/forum/altera_perfil.php?id=$_SESSION["id"] ?>
Porém com o meu sistema não aparece o id no link e os campos são preenchidos com os dados do primeiro usuário da minha Tabela do Banco de Dados e quando faço a alteração altera a do primeiro usuário da minha Tabela não os dados do usuário logado ...
Eu fiz alguma coisa errada, viajei demais e fiz coisa que não existe kkk?
:D
Se alguém puder me ajudar, Obrigada!!!!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.