guarana1 Posted October 11, 2013 at 12:09 PM Report #528490 Posted October 11, 2013 at 12:09 PM Boas... tenho o seguinte problema. Na base de dados, na tabela "members", são registados os novos utilizadores. A tabela contém o username,password,email,nome,morada e telefone. Ao registar, eles apenas preenchem o username, password e email. Depois do utilizador ter feito o login, ele terá a opção de editar as campos que estão em branco (ele só pode editar o nome morada e telefona). Eu estava a tentar fazer assim, mas não estou a conseguir 😞 Quando carrego alterar, ele vai ao index.php, mas não grava no mysql 😞( <?php session_start() ?> <div id="my_popup" style="display:none;border:0px dotted gray;padding:.3em;background: rgba(255, 255, 255, 0.8);;position:absolute;width:600px;height:600x\px;left:380px;top:100px;z-index:+1;"> <div align="right"> <a href="javascript:hide_popup('my_popup')">close</a> </div> <h1>LOGIN</h1> <p> <form name="form1" method="post" action="index.php"> <table border="0" cellpadding="0" cellspacing="0" align="center"> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td style="font-family:Verdana, Geneva, sans-serif; font-size:; color:#006" width="100" align="center">Username</td> <td> </td> <td style="font-family:Verdana, Geneva, sans-serif; font-size:12; color:#fffff;background-color:white " width="220"; ><input name="username" type="text" id="username" size="30" color="white"></td> </tr> <td> </td> <tr> <td style="font-family:Verdana, Geneva, sans-serif; font-size:14; color:#006" width="100" align="center">Password</td> <td> </td> <td style="font-family:Verdana, Geneva, sans-serif; font-size:12; color:#fffff; background-color:white; " width="220"><input name="password" type="password" id="Password" size="30" maxlength="30" ></td> </tr> <tr> <td align="center" ><input type="submit" class="pequeno" name="login" value=" LOGIN " /> </td> <td align="center" > <a href ="registar_utilizador.php"><input type="button" name="registar" id="registar" value="Registar"></a> </td> </tr> </table> </form> <?php error_reporting(0); // não deixa aparecer erros de php session_start(); // inicia a sessão depois de ter feito o login if (isset($_POST['login'])){ if (!EMPTY($_POST['username']) && !EMPTY($_POST['password'])){ // Inicio de sessão @session_start(); // Leitura dos parâmetros de configurção do acesso à BD require("config/config.php"); $portfolio_conn = mysql_connect(DB_SERVER, DB_UTILIZADOR, DB_PASSWORD); mysql_select_db(DB_NOME, $portfolio_conn); $sql_vutil=sprintf("SELECT * FROM members WHERE username='%s' AND password='%s'",$_POST['username'], $_POST['password']); $res_vutil=mysql_query($sql_vutil); $num_reg=mysql_num_rows($res_vutil); if ($num_reg==1){ // se o utilizador existir e a password estiver correta // Cria uma variável de sessão que indica que o login foi bem sucedido para controlo dos restantes form $_SESSION['utilval']=1; //header("Location: index.php"); ?> <script language="javascript"> alert("Olá Bem vindo!"); </script> <?php $_SESSION['user']=$_POST['username']; }else{ echo ("<script>alert('Utilizador ou password inválido');</script>"); unset($_POST['username']); unset($_POST['password']); } }else{ echo ("<script>alert('Introduza o seu utilizador e password');</script>"); unset($_POST['login']); } } ?> </p> </div> <!-- ///////////////////// /////////////// /////// menu principal /////// ////////////// ///////////////////////// --> <header class=""> <div class="header_wrapper container"> <?php if (!isset($_SESSION['user'])){ ?> <?php } else { ?> <a href="index.html" class="logo"><img src="img/retina/logo.png" alt="" class="logo_retina" width="125" height="39"><?php echo 'Welcome,' ;?> <?php echo $_SESSION['user'];?> </a> <?php } ?> <nav> <ul class="menu"> <li class="current-menu-parent"><a href="index.php">HOME</a> </li> <li><a href="javascript:void(0)">PORTFOLIO</a> <ul class="sub-menu"> <li><a href="portfolio_grid.html">Grid Portfolio</a></li> <li><a href="portfolio_masonry.html">Grid Portfolio with Masonry</a></li> <li><a href="portfolio_post_fw.html">Fullscreen Portfolio Post</a></li> <li><a href="portfolio1.html">Portfolio 1 Column</a></li> <li><a href="portfolio2.html">Portfolio 2 Columns</a></li> <li><a href="portfolio3.html">Portfolio 3 Columns</a></li> <li><a href="portfolio4.html">Portfolio 4 Columns</a></li> <li><a href="portfolio_post.html">Portfolio Post</a></li> </ul> </li> <li><a href="javascript:void(0)">VIDEOS</a> <ul class="sub-menu"> <li><a href="gallery_kenburns.html">Kenburns Gallery</a></li> <li><a href="gallery_grid.html">Grid Gallery</a></li> <li><a href="gallery_masonry.html">Grid Gallery with Masonry</a></li> </ul> </li> <li><a href="javascript:void(0)">BLOG</a> <ul class="sub-menu"> <li><a href="blog_fullscreen.html">Fullscreen</a></li> <li><a href="blog_post_fw.html">Fullscreen Blog Post</a></li> <li><a href="blog_full.html">Full Width</a></li> <li><a href="blogpost_full.html">Blog Post</a></li> <li><a href="javascript:void(0)">With Sidebar</a> <ul class="sub-menu"> <li><a href="blog_left.html">Left Sidebar</a></li> <li><a href="blog_right.html">Right Sidebar</a></li> <li><a href="blogpost_sidebar.html">Blog Post</a></li> </ul> </li> </ul> </li> <li><a href="javascript:void(0)">CONTACTS</a> <ul class="sub-menu"> <li><a href="contact_fullscreen.html">Fullscreen</a></li> <li><a href="contact.html">Full Width</a></li> <li><a href="contact_sidebar.html">With Sidebar</a></li> </ul> </li> <li><a href="javascript:void(0)">FOLLOW</a> <ul class="sub-menu"> <li><a href="typography.html">Typography</a></li> <li><a href="shortcodes.html">Shortcodes</a></li> </ul> </li> <li> <?php if (!isset($_SESSION['user'])){ ?> <a href="javascript:show_popup('my_popup')">LOGIN</a> <ul class="sub-menu"> <li><a href="javascript:show_popup1('my_popup1')">REGISTO</a></li> <?php } else { ?> <a> SETTINGS </a> <ul class="sub-menu"> <a href="javascript:show_popup2('my_popup2')"> EDIT ACCOUNT </a> <a href="javascript:show_popup3('my_popup3')"> EDIT PERFIL </a> <a href="logout.php">LOGOUT</a> <?php } ?> </ul> </li> </ul><!-- .menu --> <div class="clear"></div> </nav> </div> </header> <!-- ///////////////////// /////////////// /////// slider do background /////// ////////////// ///////////////////////// --> <!-- ///////////////////// /////////////// /////// popup do perfil /////// ////////////// ///////////////////////// --> <div id="my_popup2" style="display:none;border:0px dotted gray;padding:.3em;background: rgba(255, 255, 255, 0.8);;position:absolute;width:600px;height:600x\px;left:380px;top:100px;z-index:+1;"> <div align="right"> <a href="javascript:hide_popup1('my_popup2')">close</a> </div> <form id="registo" name="registo" method="post" action="index.php" /> <?php $portfolio = mysql_connect('localhost' , 'root', '') or die ('Nao foi possivel estabelecer ligacao na base de dados'); mysql_select_db ('portfolio' , $portfolio) or die (mysql_error($portfolio)); ?> <!-- ///////////////////// /////////////// /////// vai buscar os dados á base de dados /////// ////////////// ///////////////////////// --> <?php $sql=sprintf("select * FROM members WHERE username='%s'",$_SESSION['user']); $res=mysql_query($sql) or die(mysql_error()); $reg=mysql_fetch_array($res); $username=$reg['username']; $password=$reg['password']; $email=$reg['email']; ?> <!-- ///////////////////// /////////////// /////// tabela para representar o "perfil" /////// ////////////// ///////////////////////// --> <table class="center"> <tr> <td > Nome : </td> <td> <?php echo $reg['username']; ?> </td> </tr> <tr> <td > password : </td> <td> <?php echo $reg['password']; ?> </td> </tr> <tr> <td > Mail : </td> <td> <?php echo $reg['email']; ?> </td> </tr> </table> <br /> </div> </div> </form> <div id="my_popup3" style="display:none;border:0px dotted gray;padding:.3em;background: rgba(255, 255, 255, 0.8);;position:absolute;width:600px;height:600x\px;left:380px;top:100px;z-index:+1;"> <div align="right"> <a href="javascript:hide_popup3('my_popup3')">close</a> </div> <form id="form1" method="POST" action="index.php"> <fieldset> <Table cellspacing=0 border=0> <tr> <td align="Right"><font size="2">Nome:</font></td><td><input id="nome" type="text" name="nome" ></td> </tr> <tr> <td align="Right"><font size="2">Morada:</font></td><td><input id="morada" type="text" name="morada" ></td> </tr> <tr> <td align="Right"><font size="2">Número:</font></td><td><input id="numero" type="text" name="numero" ></td> </tr> <tr> <td> </td><td><input id="alterar" name="alterar" type="submit" Value="Alterar"></td> </tr> </table> </fieldset> </form> <?php If(isset($_POST['alterar'])){ If(!EMPTY($_POST['nome']) && !EMPTY($_POST['morada']) && !EMPTY($_POST['numero'])){ $nome=$_POST['nome']; $email=$_POST['morada']; $codigo=$_POST['numero']; $user=$_SESSION['user']; // Leitura dos parâmetros de configurção do acesso à BD require("config/config.php"); //verificar se existe na base de dados $update1 = sprintf("UPDATE members SET nome='$nome' , morada='$email', numero='$numero' WHERE user='$user'"); mysql_query($update1); $_SESSION['nome']= $nome; $_SESSION['email']= $email; $_SESSION['codigo']= $codigo; ?> <script type="text/javascript"> document.location= "index.php"; </script> <?PHP } } ?> </div> </body> </html>
Hugao Posted October 11, 2013 at 04:03 PM Report #528556 Posted October 11, 2013 at 04:03 PM (edited) O teu problema está na form, no action tens "index.php". O que podes fazer é enviar para uma página em branco que vai guardar os dados e depois essa vai para a index.php automaticamente. <form id="form1" method="POST" action="index.php"> <--- Erro aqui <fieldset> <Table cellspacing=0 border=0> <tr> <td align="Right"><font size="2">Nome:</font></td><td><input id="nome" type="text" name="nome" ></td> </tr> <tr> <td align="Right"><font size="2">Morada:</font></td><td><input id="morada" type="text" name="morada" ></td> </tr> <tr> <td align="Right"><font size="2">Número:</font></td><td><input id="numero" type="text" name="numero" ></td> </tr> <tr> <td> </td><td><input id="alterar" name="alterar" type="submit" Value="Alterar"></td> </tr> </table> </fieldset> </form> Edited October 15, 2013 at 12:41 PM by brunoais geshi
guarana1 Posted October 14, 2013 at 07:21 PM Author Report #528939 Posted October 14, 2013 at 07:21 PM (edited) O teu problema está na form, no action tens "index.php". O que podes fazer é enviar para uma página em branco que vai guardar os dados e depois essa vai para a index.php automaticamente. <form id="form1" method="POST" action="index.php"> <--- Erro aqui <fieldset> <Table cellspacing=0 border=0> <tr> <td align="Right"><font size="2">Nome:</font></td><td><input id="nome" type="text" name="nome" ></td> </tr> <tr> <td align="Right"><font size="2">Morada:</font></td><td><input id="morada" type="text" name="morada" ></td> </tr> <tr> <td align="Right"><font size="2">Número:</font></td><td><input id="numero" type="text" name="numero" ></td> </tr> <tr> <td> </td><td><input id="alterar" name="alterar" type="submit" Value="Alterar"></td> </tr> </table> </fieldset> </form> Continuo a não conseguir 😞 Ele não deteta a varievel de sessão $username, não estou a ver porque... processar_login.php <?php //verifcar se os campos estao preenchidos if (!empty($_POST) AND (empty($_POST['username']) AND (empty($_POST['password'])))) { echo("<script> alert(' Por favor insira username e password'); </script>"); exit; } //ligar a base de dados $ligacao = mysql_connect('localhost' , 'root', '') or die ('Nao foi possivel estabelecer ligacao na base de dados'); mysql_select_db ('portfolio' , $ligacao) or die (mysql_error($ligacao)); //definir variaveis de sessão $username=$_POST['username']; $password=$_POST['password']; $id=$_POST['id']; $username1=$_POST['nome']; //consultar a base de dados $sql="Select username, password FROM members WHERE username='$usernamename' AND password='$password'"; $consulta = mysql_query($sql); //verificar se foram devolvidos dados if (mysql_num_rows($consulta) == 1) { header("location: index.html"); exit; } else{ echo("<script> alert('username e password estão errados'); </script>"); header("Location: login.php"); exit; } mysql_free_result($consulta); ?> processar_editar.php <?php session_start(); ?> <?php include "bd.php"; //definir variaveis de sessão $id=$_POST['id']; $nome=$_POST['nome']; $morada=$_POST['morada']; $numero=$_POST['numero']; // verifica se os campos foram preenchidos if (empty($username) ) header("Location: erro.html"); else{ //Alterar os dados if (isset($_POST['alterar'])){ mysql_query ($update=($update=("UPDATE members SET nome='$nome', morada='$morada', numero='numero' WHERE username='$user'")))or die (mysql_error()); } //Confirmação de registo header("Location: index.php"); } exit; ?> <form id="registo" name="registo" method="post" action="processar_editar.php" /> <?php //definir variaveis $nome=$reg['nome']; $user=$reg['user']; $morada=$reg['morada']; $numero=$reg['numero']; ?> <table class="center"> <tr> <td > username : </td> <td><?php echo $reg['username'];?> </td> </tr> <tr> <td > Nome : </td> <td><input type="text" name="nome" value="<?php echo $reg['nome'];?>"/></p> </td> </tr> <tr> <td > Morada : </td> <td><input type="text" name="morada" value="<?php echo $reg['morada'];?>"/></p> </td> </tr> <tr> <td > Numero : </td> <td><input type="text" name="numero" value="<?php echo $reg['numero'];?>"/></p> </td> </tr> </table> <input type="submit" name="alterar" id="alterar" value="alterar"/> <br /> </div> </div> </form> Edited October 14, 2013 at 07:23 PM by guarana1
Devexz Posted October 14, 2013 at 08:28 PM Report #528949 Posted October 14, 2013 at 08:28 PM (edited) Ele não deteta a varievel de sessão $username, não estou a ver porque... Que confusão que vai praí. E onde que estás a declarar o $username? Assim pelo teu código parece que a variável $username caiu do céu. Edited October 14, 2013 at 08:34 PM by Devexz Contador de calorias: caloriaspordia.com
guarana1 Posted October 14, 2013 at 08:59 PM Author Report #528953 Posted October 14, 2013 at 08:59 PM (edited) Que confusão que vai praí. E onde que estás a declarar o $username? Assim pelo teu código parece que a variável $username caiu do céu. No processar_login.php //definir variaveis de sessão $username=$_POST['username']; $password=$_POST['password']; $id=$_POST['id']; Edited October 14, 2013 at 08:59 PM by guarana1
Devexz Posted October 14, 2013 at 09:30 PM Report #528960 Posted October 14, 2013 at 09:30 PM mas estás a fazer isto: if (empty($username) ) header("Location: erro.html"); no processar_editar onde o $username não está definido Contador de calorias: caloriaspordia.com
guarana1 Posted October 14, 2013 at 09:37 PM Author Report #528962 Posted October 14, 2013 at 09:37 PM Em 14/10/2013 às 23:30, Devexz disse: mas estás a fazer isto: if (empty($username) ) header("Location: erro.html"); no processar_editar onde o $username não está definido Já defini no editar... mas não esta a dar. Há alguma coisa nisto que não estou a perceber. O mais provavel é que estou a definir mal a variavel... //definir variaveis de sessão $id=$_POST['id']; $username=$_POST['username']; $nome=$_POST['nome']; $morada=$_POST['morada']; $numero=$_POST['numero'];
Pivot Posted October 15, 2013 at 10:08 AM Report #528996 Posted October 15, 2013 at 10:08 AM Que erro obtens? Algum erro de index? Abraço, Rafael.
guarana1 Posted October 15, 2013 at 10:48 AM Author Report #528998 Posted October 15, 2013 at 10:48 AM Que erro obtens? Algum erro de index? Abraço, Rafael. Não aparecem erros nenhums, pelo menos não vejo nenhum. Apenas quando carrego no "alterar", vai ao erro.html
Devexz Posted October 15, 2013 at 10:22 PM Report #529113 Posted October 15, 2013 at 10:22 PM (edited) não podes espetar com o código que nós dizemos assim à toa, tens de perceber: $username=$_POST['username']; O que estás a fazer acima é dar o valor do post à variavel $username. Agora diz-me onde é que esse POST vem? Não será do formulário editar dados? Ah! pera tu nem sequer tens algum input do "username" no form! Edited October 15, 2013 at 10:22 PM by Devexz Contador de calorias: caloriaspordia.com
guarana1 Posted October 15, 2013 at 11:40 PM Author Report #529116 Posted October 15, 2013 at 11:40 PM não podes espetar com o código que nós dizemos assim à toa, tens de perceber: $username=$_POST['username']; O que estás a fazer acima é dar o valor do post à variavel $username. Agora diz-me onde é que esse POST vem? Não será do formulário editar dados? Ah! pera tu nem sequer tens algum input do "username" no form! O valor do post vem do index.php, não pus o código do index porque está muito confuso, ninguem ia ter paciencia de ver aquilo, porque está uma confusão. Apenas pus uma pequena parte do código. Mas de qq maneira, o assunto já esta resolvido, decidi usar outra variavel, em vez da username... Tinha mostrado o código ao meu professor de PSINF (ele diz que percebe de php), e ele não consegiu ver porque é que não estava a alterar os dados. Mas depois, como já diz, usei outra variavel, e consegui.
Devexz Posted October 16, 2013 at 08:45 PM Report #529299 Posted October 16, 2013 at 08:45 PM tu não podes receber um post de duas páginas php ao mesmo tempo, logo há qualquer coisa que não bate certo. Se para alterar os dados recebes o post do editar.php e depois dizes que também defines o $username com o post que vem do index.php há qualquer coisa que estranho... Enfim se o teu professor soubesse PHP facilmente tinha te puxado as orelhas e explicado a lógica por trás disso. Mas se o problema está resolvido... resolvido está. 😉 Contador de calorias: caloriaspordia.com
guarana1 Posted October 16, 2013 at 09:37 PM Author Report #529311 Posted October 16, 2013 at 09:37 PM tu não podes receber um post de duas páginas php ao mesmo tempo, logo há qualquer coisa que não bate certo. Se para alterar os dados recebes o post do editar.php e depois dizes que também defines o $username com o post que vem do index.php há qualquer coisa que estranho... Enfim se o teu professor soubesse PHP facilmente tinha te puxado as orelhas e explicado a lógica por trás disso. Mas se o problema está resolvido... resolvido está. 😉 Sou capaz de saber mais de php do que ele, poh 😞 E como já viste, não sei muito...
Devexz Posted October 16, 2013 at 09:44 PM Report #529314 Posted October 16, 2013 at 09:44 PM Sou capaz de saber mais de php do que ele, poh 😞 E como já viste, não sei muito... Não vais aprender tudo à primeira, devagar vai se ao longe, e com o tempo hás-de habituar. Contador de calorias: caloriaspordia.com
guarana1 Posted October 16, 2013 at 09:48 PM Author Report #529316 Posted October 16, 2013 at 09:48 PM Não vais aprender tudo à primeira, devagar vai se ao longe, e com o tempo hás-de habituar. Eu percebo, mas o stor dá prazos muito pequenos para fazer as coisas, nas aulas não consigo fazer muita coisa, então tenho que me safar em casa... e em casa não tenho ninguem que me possa ajudar nisto. Entao venho para o fórum...
Devexz Posted October 17, 2013 at 12:58 PM Report #529400 Posted October 17, 2013 at 12:58 PM não tens ninguém? todos nós temos alguém que ajuda-nos em tudo basta perguntar-lhe da maneira correta e ele dá-te todas as soluções dos mais diversos problemas e essa pessoa é: Estava a referir-me ao Google 🙂 2 Report Contador de calorias: caloriaspordia.com
guarana1 Posted October 17, 2013 at 02:56 PM Author Report #529420 Posted October 17, 2013 at 02:56 PM Em 17/10/2013 às 14:58, Devexz disse: não tens ninguém? todos nós temos alguém que ajuda-nos em tudo basta perguntar-lhe da maneira correta e ele dá-te todas as soluções dos mais diversos problemas e essa pessoa é: Estava a referir-me ao Google 🙂 O único sitio onde posso ser ajudado é aqui... não tenho nenhuns conhecidos nesta area. O google nem sempre consegue resolver os meus problemas 😞
guarana1 Posted October 17, 2013 at 05:58 PM Author Report #529468 Posted October 17, 2013 at 05:58 PM (edited) Este editar andou marado, não andou? Edited October 17, 2013 at 05:59 PM by guarana1
HappyHippyHippo Posted October 17, 2013 at 06:24 PM Report #529473 Posted October 17, 2013 at 06:24 PM O único sitio onde posso ser ajudado é aqui... não tenho nenhuns conhecidos nesta area. foste e serás eu teria ajudado, mas como sou anti sociável, e tenho o costume de ignorar posts mal apresentados nem me dei ao trabalho IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
guarana1 Posted October 17, 2013 at 09:01 PM Author Report #529515 Posted October 17, 2013 at 09:01 PM foste e serás eu teria ajudado, mas como sou anti sociável, e tenho o costume de ignorar posts mal apresentados nem me dei ao trabalho Para a próxima vou tentar apresentar melhor o problema
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now