Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera deu um erro aki na minha session pq ta dando esse erro:
<br /><b>Notice</b>: Undefined variable: l in <b>C:\EasyPHP-Devserver-16.1\eds-www\novo e\dados.php</b> on line <b>38</b><br />
<?php
session_start();
require("config.php");
if(!isset($_SESSION["usuario"])){
header("Location: login.php");
exit;
}
if(isset($_REQUEST["post_back"])){
if(empty($_POST["nome"]) || empty($_POST["email"]) || empty($_POST["senha"])){
echo "<script>alert('Preencha todos os campos antes de enviar seu cadastro!');</script>";
}else{
$tb = $conn->prepare("update usuario set nm_usuario=:nome, email_usuario=:email, senha_usuario=:senha where id_usuario=:id");
$tb->bindParam(":nome", $_POST["nome"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha"], PDO::PARAM_STR);
$tb->bindParam(":id", $_SESSION["usuario"], PDO::PARAM_INT);
$tb->execute();
$tb = null;
echo "<script>alert('Dados alterados com sucesso!');</script>";
}
} //Pega os dados do usuário ativo $tb = $conn->prepare("select * from usuario where id_usuario = :id"); $tb->bindParam(":id",$_SESSION["usuario"], PDO::PARAM_INT); $tb->execute(); $l = $tb->fetch(PDO::FETCH_ASSOC);
?>
<form id="form1" name="form1" method="post" action="dados.php">
<p>Nome: <input name="nome" type="text" id="nome" value="<?php echo $l["nm_usuario"]?>" /></p>
<p>Email: <input name="email" type="text" id="email" value="<?php echo $l["email_usuario"]?>" /></p>
<p>Senha: <input type="text" name="senha" value="<?php echo $l["senha_usuario"]?>" /></p>
<input type="submit" name="post_back" id="button" value="Atualizar Dados" />
</form>Como eu faria para criar essa variavel só precisaria fazer isso $l?
Você usa $l como um array.
Logo, $i deve ser criada como um array.
De onde pegou esse código?
Ele veio assim ou você modificou?
Esse $l está com cara de uma linha (por isso o "l") do retorno de um SELECT. Nesse caso, $l seria gerado pelo método fetch(), do PDO. veja o Exemplo #2 deste link: http://php.net/manual/pt_BR/pdostatement.fetch.php
essa variavel ($l) está num bloco comentado:
> } //Pega os dados do usuário ativo $tb = $conn->prepare("select * from usuario where id_usuario = :id"); $tb->bindParam(":id",$_SESSION["usuario"], PDO::PARAM_INT); $tb->execute(); $l = $tb->fetch(PDO::FETCH_ASSOC);Parece que faltou quebra de linha aí.
Deixe assim:
}
//Pega os dados do usuário ativo
$tb = $conn->prepare("select * from usuario where id_usuario = :id");
$tb->bindParam(":id",$_SESSION["usuario"], PDO::PARAM_INT);
$tb->execute();
$l = $tb->fetch(PDO::FETCH_ASSOC);Então ficaria assim?
<?php
session_start();
require("config.php");
if(!isset($_SESSION["usuario"])){
header("Location: login.php");
exit;
}
if(isset($_REQUEST["post_back"])){
if(empty($_POST["nome"]) || empty($_POST["email"]) || empty($_POST["senha"])){
echo "<script>alert('Preencha todos os campos antes de enviar seu cadastro!');</script>";
}else{
$tb = $conn->prepare("update usuario set nm_usuario=:nome, email_usuario=:email, senha_usuario=:senha where id_usuario=:id");
$tb->bindParam(":nome", $_POST["nome"], PDO::PARAM_STR);
$tb->bindParam(":email", $_POST["email"], PDO::PARAM_STR);
$tb->bindParam(":senha", $_POST["senha"], PDO::PARAM_STR);
$tb->bindParam(":id", $_SESSION["usuario"], PDO::PARAM_INT);
$tb->execute();
$l = $tb->fetch(PDO::FETCH_ASSOC);
$tb = null;
echo "<script>alert('Dados alterados com sucesso!');</script>";
}
} //Pega os dados do usuário ativo $tb = $conn->prepare("select * from usuario where id_usuario = :id"); $tb->bindParam(":id",$_SESSION["usuario"], PDO::PARAM_INT); $tb->execute(); $l = $tb->fetch(PDO::FETCH_ASSOC);
?>
<form id="form1" name="form1" method="post" action="dados.php">
<p>Nome: <input name="nome" type="text" id="nome" value="<?php echo $l["nm_usuario"]?>" /></p>
<p>Email: <input name="email" type="text" id="email" value="<?php echo $l["email_usuario"]?>" /></p>
<p>Senha: <input type="text" name="senha" value="<?php echo $l["senha_usuario"]?>" /></p>
<input type="submit" name="post_back" id="button" value="Atualizar Dados" />
</form>Não faz sentido executar fetch() depois de um update. fetch() é usado para retornar dados, ou seja, após um SELECT
Recomendo dar uma lida neste artigo para entender como funcionam as consultas a bancos de dados
A variável $l não existe, não foi definida...
Mais detalhes aqui