josuel 0 Denunciar post Postado Dezembro 1, 2007 Pessoal boa tarde, sou novo aquir no forum e na liguagem php tambem. Estou com um problema que está me deixando sem sono e gostaria de pedir a ajuda de vocês desde já deixo aquir expresso meus agradecimentos a todos que poderem me derem um pouco de sua atenção! Estou criando um sistema de notas para uma escola, já está praticamente pronto, pegue alguns exemplos na net e conseguir desenvolver um que usar sesões para autenticar o usuario. Mais o problema está na hora de administra as notas dos alunos, na pagina que era para atualizar as notas dos alunos não atualiza só se eu colocar o aluno como administador do sistema. Se alguem poder me dizer o que pode está acontecendo fico grato! segue o arquivo para alterar os dados PHP <?php include "../validar_session.php"; include "../Config/config_sistema.php"; $nome = htmlspecialchars($_POST['nome']); $curso = htmlspecialchars($_POST['curso']); $matricula = $_POST['matricula']; $met_ens_avp = $_POST['met_ens_avp']; $met_ens_avd = $_POST['met_ens_avd']; $met_ens_media = $_POST['met_ens_media']; $met_ens_situacao = htmlspecialchars($_POST['met_ens_situacao']); $sql = "update dados_usuarios set Curso = '$curso',Matricula = '$matricula',Met_ens_avp = '$met_ens_avp',Met_ens_avd = '$met_ens_avd',Met_ens_media = '$met_ens_media',Met_ens_situacao = '$met_ens_situacao' where Login = '$login_usuario'"; $consulta = mysql_query($sql); if($consulta) { echo "<font color=green><b> Nota cadastrada com sucesso!<br> Click <a href=listar_usuarios.php>aqui</a> para efetuar o login. </font></b>"; exit; } else { echo "<font color=red><b> Não foi possivel atualizar os dados!<br> Click <a href=../login.php>aqui</a> para retornar! </font></b>"; exit; } ?> Segue o arquivo para validar sesão PHP <?php@session_start(); // inclui o arquivo de configuração do sistema include "Config/config_sistema.php"; // verifica se a variavel existir if(isset($_SESSION['login_usuario']) and isset($_SESSION['senha_usuario'])) { // se existie as sessões coloca os valores em uma varivel $login_usuario = $_SESSION['login_usuario']; $senha_usuario = $_SESSION['senha_usuario']; } else { $erro = urlencode("Você não esta logado!"); header("Location: login.php"); exit; } // verifica se as variaveis estão atribuidas if(!(empty($login_usuario) or empty($senha_usuario))) { // se estiverem atribuidos vamos ver se exist o login $consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'"); if(mysql_num_rows($consulta) == 1) { // se o usuario exostir vamos verificar a senha if($senha_usuario != mysql_result($consulta,0,"Senha")) { // se a senha está correta vamos apagar a // sessão que existia mas erra a errada unset($_SESSION['login_usuario']); unset($_SESSION['senha_usuario']); $erro = urlencode("Você não esta logado!"); header("Location: login.php"); exit; } } else { unset($_SESSION['login_usuario']); unset($_SESSION['senha_usuario']); $erro = urlencode("Você não esta logado!"); header("Location: login.php"); exit; } } else { // caso as sessões estarem vaizias $erro = urlencode("Você não esta logado!"); header("Location: login.php"); exit; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 1, 2007 Primeiramente, bem-vindo ao iMasters! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Ao executar o script, aparece qual erro? Erro na atualização de dados? Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 1, 2007 Primeiramente, bem-vindo ao iMasters! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Ao executar o script, aparece qual erro? Erro na atualização de dados? Primeiro obrigado pelas boas vindas! Não aparece erro nenhum, o problema e que quando vou atualizar as notas dos alunos ele não atualiza só se eu logar o aluno como administrador do sistema. tem algum outro modo de atualizar os dados a não ser com esse comando abaixo $sql = "update dados_usuarios set where Login = '$login_usuario'"; Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 1, 2007 Vamos usar mysql_error(), para ver se o MySQL retorna algum erro. troque isto: PHP $consulta = mysql_query($sql); p por isto: PHP $consulta = mysql_query($sql) or die (mysql_error()); poste o resultado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 1, 2007 Vamos usar mysql_error(), para ver se o MySQL retorna algum erro. troque isto: PHP $consulta = mysql_query($sql); p por isto: PHP $consulta = mysql_query($sql) or die (mysql_error()); poste o resultado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Continua do mesmo jeito! Não dá nenhum tipo de erro, e continua só atualizandos as dados do administrador, para conseguir atualizar os dados de uma aluno tenho que cadastra a senha dele como administrador. Eu tô achando que é o arquivo "validar_session" Porque quando mudo essa parte do script where Login = '$login_usuario'"; para where ID = '$id"; Ai o script não atualiza nada nem com a senha do administrador Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 1, 2007 Você sempre cria a variável $_SESSION['login_usuario'], tanto para aluno quanto para admins? Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 1, 2007 Você sempre cria a variável $_SESSION['login_usuario'], tanto para aluno quanto para admins? Sim criei a variavel $_SESSION['login_usuario'] tanto para o aluno quanto para o admins, para verrificar o login e a senha dos dois e dai direciona-los para a parte correta do site. Sera que é esso o motivo de só atualizar os dados de quem fez o login? Ou seja sera que é por isso que listo todos os alunos cadastrados no bd mais só consigo atualizar os meus proprios dados de administador? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 1, 2007 $login_usuario está com o valor do usuário que está acessando, não do usuário cujas notas serão alteradas. O ID do usuário deve ser passado numa outra variável, seja por POST ou numa sessão. Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 2, 2007 $login_usuario está com o valor do usuário que está acessando, não do usuário cujas notas serão alteradas. O ID do usuário deve ser passado numa outra variável, seja por POST ou numa sessão. Como sitei no inicio do topico, ainda estou aprendendo php. Se já não for muito incomodo gostaria que você me desse um exemplo de como eu fasso isso ok? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 2, 2007 Os dados vindos por POST são referentes a o quê? Sobre as notas do aluno, certo? Se sim, passe também o ID do aluno, para usar na SQL. Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 2, 2007 Os dados vindos por POST são referentes a o quê? Sobre as notas do aluno, certo? Se sim, passe também o ID do aluno, para usar na SQL. Sim os dados que passam por POST são de notas dos alunos. Mais como eu vou conseguir passar o id se ele é autoincremente, isso eu não conseguir intender não, você pode explicar melhor ou dá um exemplo? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 2, 2007 Não tenho como dar exemplo, pois não sei como você programou o sistema. Como que você fez para que as notas sejam alteradas no campo do aluno correto? Você não está passando o ID ou nome ou outra identificação do aluno? Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 2, 2007 Não tenho como dar exemplo, pois não sei como você programou o sistema. Como que você fez para que as notas sejam alteradas no campo do aluno correto? Você não está passando o ID ou nome ou outra identificação do aluno? Mais só me diga uma coisa pelo codigo da pagina "valida_session" e pela pagina atualizar notas, você pode me dizer por qual das duas devo passar o id? Existe alguma função para passar o id de um determinado cadastro no mysql? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 2, 2007 Você vai passar o ID ou o nome do aluno juntamente com os outros dados do formulário, não na página que verifica a sessão. Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 3, 2007 Você vai passar o ID ou o nome do aluno juntamente com os outros dados do formulário, não na página que verifica a sessão. Tentei passar o id pelo formulario de alteração de dados mas, continua com o mesmo erro só altera os dados do administrador. Vou posta aqui o script da pagina de alteração dos dados, se for possivel você dá uma visualizada no codigo, ficarei muito grato! PHP <?phpinclude "../validar_session.php"; include "../Config/config_sistema.php"; // recebe os dados do formulario $codigo = $_GET['codigo']; // faz consulta no banco $consulta = mysql_query("select * from dados_usuarios where ID = '".$codigo."'"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>INSTITUTO PRÓ SABER</title> <style type="text/css"> <!-- .style1 {font-size: 36px; color:#FFFFFF} .style2 { color: #FFFFFF; font-weight: bold;} .style3 { color: #FFFFFF; font-weight: bold; font-size:14px; } .style4 {background-image:url(../imagens/imagens2/Page%201.jpg)} .style5 {font-size: 14px; color: #FFFFFF; font-weight: bold;} .style6 {color: #FFFFFF; font-weight: bold; font-size:18px} .style7 {color: #FFFFFF} .style9 {color: #FF0000; font-weight: bold; } .style10 {color:#FF0000;} --> </style> </head> <body> <form action="cadastra_notas.php" method="post" enctype="multipart/form-data" name="formatualizar"> <table width="676" border="2" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" class="style4"> <tr> <td colspan="5"><img src="../imagens/flashapli/loginteto.jpg" width="750" height="100" /></td> </tr> <tr> <td colspan="5" align="center" class="style1">Boletim de Notas</td> </tr> <tr> <td colspan="5"><?php while($linha = mysql_fetch_object($consulta)) { echo "<b>Olá ".$linha->Nome."!</b>"; ?></td> </tr> <tr> <td width="341" align="right" class="style5">NOME:</td> <td colspan="4"><input name="nome" type="text" id="nome" size="45" maxlength="200" value="<?php echo $linha->Nome;?>" /></td> </tr> <tr> <td colspan="5"></td> </tr> <tr> <td align="center" class="style5">CURSO</td> <td width="92" align="center" class="style5">MATRICULA</td> <td width="89" align="center" class="style5">SITUAÇÃO</td> <td colspan="2" align="left" class="style5">CIDADE POLO</td> </tr> <tr> <td><input name="curso" type="text" id="curso" size="44" maxlength="20" value="<?php echo $linha->Curso;?>" /></td> <td><input name="matricula" type="text" id="matricula" size="14" maxlength="20" value="<?php echo $linha->Matricula;?>" /></td> <td><input name="situacao" type="text" id="situacao" size="13" maxlength="20" value="<?php echo $linha->Situacao;?>" /></td> <td colspan="2"><input name="cidade_polo" type="text" id="cidade_polo" size="17" maxlength="50" value="<?php echo $linha->Cidade_polo;?>" /></td> </tr> <tr> <td colspan="5" align="center" class="style6">NOTAS OBTIDAS</td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td width="82"> </td> <td width="72"> </td> </tr> <tr> <td align="center" class="style5">MATERIAS</td> <td align="center" class="style5">AVP</td> <td align="center" class="style5">AVD</td> <td align="center" class="style5">MÉDIA</td> <td align="center" class="style5">SITUAÇÃO</td> </tr> <tr> <td align="right" bgcolor="#000000" class="style3">Metodologia do Ensino Superior:</td> <td><input name="met_ens_avp" type="text" id="met_ens_avp" size="12" maxlength="20" value="<?php echo $linha->Met_ens_avp;?>" /></td> <td><input name="met_ens_avd" type="text" id="met_ens_avd" size="12" maxlength="20" value="<?php echo $linha->Met_ens_avd;?>" /></td> <td><input name="met_ens_media" type="text" id="met_ens_media" size="12" maxlength="20" value="<?php echo $linha->Met_ens_media;?>"/></td> <td><input name="met_ens_situacao" type="text" id="met_ens_situacao" size="10" maxlength="20" value="<?php echo $linha->Met_ens_situacao;?>" /></td> </tr> <tr> <td colspan="5"><img src="../imagens/flashapli/login.jpg" width="750" height="110" /></td> </tr> <?php } ?> </table> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 3, 2007 Agora, na página de alterações, use o campo "nome" passado pelo form para realizar a atualização no BD. Compartilhar este post Link para o post Compartilhar em outros sites
josuel 0 Denunciar post Postado Dezembro 3, 2007 Agora, na página de alterações, use o campo "nome" passado pelo form para realizar a atualização no BD. Muito obrigado mesmo pela paciência e pela ajuda principalmente! O motivo de não funcionar era que eu estava declarando a variavel "nome" de forma errada Ex: Forma errada ( where Nome = '$nome_usuario'";) Forma correta (where Nome = '$nome'";) Fica registrado aqui meus agradecimentos ainda bem quem tem pessoas como você que divide conhecimento até a proxima valeu mesmo!!!! Compartilhar este post Link para o post Compartilhar em outros sites