skin Posted November 26, 2006 at 12:55 PM Report #66804 Posted November 26, 2006 at 12:55 PM Estou agora a começar a desenvolver um portal do tipo Joomla!, PHP-Nuke, ...mas o desenvolvimento tem sido básicamente centrado nas qualidades do Joomla! por este ter sido considerado o melhor. Claro que depois tem um toque meu pois não estou a olhar para o source-code do Joomla! mas sim para as funcionalidades que tem e depois tento desenvolver eu o meu código. Neste trabalho surgem problemas, que não consigo solucionar e por isso postarei aqui para que quem neste fórum saiba me possa corrigir. Finalizada a introdução posto a minha primeira dúvida: Tenho um formulário para adicionar novos administradores / moderadores ou utilizadores comuns. No entanto não consigo que ele me meta os registos na base de dados. É bastante estranho porque nem erros me devolve. Formulário: <?php session_start(); ob_start(); if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) { $login_usuario = $_SESSION["login_usuario"]; $senha_usuario = $_SESSION["senha_usuario"]; $teste = "Bem vindo ao Painel de Administração"; ?> <html> <head> <title>Painel de Controlo - Utilizadores - Inserir Utilizadores</title> <link rel="stylesheet" href="CSS/inseriru_adminstyle.css"> </head> <body> <?php include("includes/header.php"); ?> <?php include("includes/menulateral.php"); ?> <div align="center" class="conteudo"> <form name="inserirutilizadores" action="inserirutilizadores2.php" method="Post"> <table> <tr> <td><texto>Nome</texto></td> <td><input type="text" name="nome" size="45" maxlength="50"></td> </tr> <tr> <td><texto>Nome de utilizador</texto></td> <td><input type="text" name="login" size="45" maxlength="12"></td> </tr> <tr> <td><texto>Senha desejada</texto></td> <td><input name="senha" type="password" size="45" maxlength="12"></td> </tr> <tr> <td><texto>Correio Electrónico</texto></td> <td><input type="text" name="email" size="45" maxlength="50"></td> </tr> <tr> <td><texto>Activo</texto></td> <td><input name="activo" value="1" type="radio"><texto>Sim</texto><input name="activo" value="0" type="radio"><texto>Não</texto></td> </tr> <tr> <td><texto>Grupo</texto></td> <td><select size="" name="grupo"> <option value="administrador">Administrador</option> <option value="moderador">Moderador</option> <option value="utilizador">Utilizador</option> </select></td> </tr> </table> </table> <center><br /> <br><br><input type="submit" value="Guardar" name="submit"><input type="reset" value="Limpar" name="clean"> </form> </div><div align="center" class="bottom"> <?php include("includes/bottom.php"); ?></div> </body> </html> <?php } else { header("Location: login.php"); } ob_end_flush(); ?> inserirutilizadores2.php <?php $dbh=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db("skin"); if (isset($_POST['Submit'])) { $nome = $_POST['nome']; $login = $_POST['login']; $senha = $_POST['senha']; $email = $_POST['email']; $activo = $_POST['activo']; $grupo = $_POST['grupo']; $loginl = strlen($login); $senhal = strlen($senha); if ($loginl == 0 or $senhal == 0) { $mensagem = "<p class=\"exta\">Por favor preencha o campo de login e senha!</p>"; } else { $verificar = mysql_query("SELECT * FROM utilizadores WHERE login = '$login'") or die(mysql_error()); if (mysql_num_rows($verificar) > 0) { $mensagem = "<p class=\"exta\">$login já existe!</p>"; } else { mysql_query("INSERT INTO `utilizadores` ( `ID` , `nome` , `login` , `senha` , `grupo` , `email` , `activo` , `dataregisto` ) VALUES ('', '$nome', '$login', '$senha', '$grupo', '$email', '$activo', '')"); $mensagem = "<p class=\"exta\">Os dados foram inseridos com sucesso!</p>"; } } } ?> <html> <head> <title>Painel de Controlo - Utilizadores - Inserir Utilizadores</title> <link rel="stylesheet" href="CSS/inseriru_adminstyle.css"> </head> <body> <?php include("includes/header.php"); ?> <?php include("includes/menulateral.php"); ?> <div align="center" class="conteudo"> <? $mensagem ?> </div><div align="center" class="bottom"> <?php include("includes/bottom.php"); ?></div> </body> </html> Se conseguíssem descobrir o meu erro... Our lives begin to end the day we become silent about things that matter - Martin Luther King
softklin Posted November 26, 2006 at 06:49 PM Report #66855 Posted November 26, 2006 at 06:49 PM Não sei se ajuda, mas os operadores lógicos (and, or) não são && e || respectivamente? Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
Drone Posted November 26, 2006 at 08:39 PM Report #66879 Posted November 26, 2006 at 08:39 PM No codigo onde tens: mysql_query("INSERT INTO `utilizadores` ( `ID` , `nome` , `login` , `senha` , `grupo` , `email` , `activo` , `dataregisto` ) VALUES ('', '$nome', '$login', '$senha', '$grupo', '$email', '$activo', '')"); exprimenta colocar o or die(mysql_error()); para ver se retorna algum erro. mysql_query("INSERT INTO `utilizadores` ( `ID` , `nome` , `login` , `senha` , `grupo` , `email` , `activo` , `dataregisto` ) VALUES ('', '$nome', '$login', '$senha', '$grupo', '$email', '$activo', '')") or die(mysql_error());
skin Posted November 26, 2006 at 09:46 PM Author Report #66894 Posted November 26, 2006 at 09:46 PM Não adianta nada porque ele não devolve erro nenhum :S http://img127.imageshack.us/img127/671/11262006204515tu9.png Our lives begin to end the day we become silent about things that matter - Martin Luther King
djthyrax Posted November 26, 2006 at 10:21 PM Report #66910 Posted November 26, 2006 at 10:21 PM experimenta tirar o ob_start(); e o ob_end_flush(); 👍 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
skin Posted November 26, 2006 at 10:22 PM Author Report #66911 Posted November 26, 2006 at 10:22 PM Já fiz isso e continua na mesma. Our lives begin to end the day we become silent about things that matter - Martin Luther King
djthyrax Posted November 26, 2006 at 10:39 PM Report #66920 Posted November 26, 2006 at 10:39 PM e meteste o que o Drone disse? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
karva Posted November 26, 2006 at 10:42 PM Report #66923 Posted November 26, 2006 at 10:42 PM onde ta <? $mensagem ?> não devia ser <?=$mensagem ?> OU <? echo $mensagem; ?> Proud LEIC-A@IST student!
Drone Posted November 26, 2006 at 11:09 PM Report #66936 Posted November 26, 2006 at 11:09 PM Nao retorna nenhum erro porque nao tens o die(mysql_error()); Qualquer das maneiras o karva tem razao tens de por <?= ou <? echo
kingless Posted November 26, 2006 at 11:48 PM Report #66958 Posted November 26, 2006 at 11:48 PM Nao retorna nenhum erro porque nao tens o die(mysql_error()); Se calhar não retorna nenhum erro porque nao tem erro nenhum, não ?
-IceBurn- Posted November 27, 2006 at 12:10 AM Report #66974 Posted November 27, 2006 at 12:10 AM Muito simples... No ficheiro inserirutilizadores2.php onde tens if (isset($_POST['Submit'])) altera para if (isset($_POST['submit'])) O script não te retornava nenhuma mensagem não só por não fazeres o echo da variavel $mensagem como tambem não te ia mostrar nada porque essa variavel não estava definida, visto o valor de $_POST ser case sensitive.
Drone Posted November 27, 2006 at 12:10 AM Report #66975 Posted November 27, 2006 at 12:10 AM Nao retorna nenhum erro porque nao tens o die(mysql_error()); Se calhar não retorna nenhum erro porque nao tem erro nenhum, não ? No campo 'dataregisto' ele esta a atribuir o valor '', se calhar tem o campo assumido como NOT NULL e pode haver erro ai.. que penso que seja pouco provavel mas convem sempre testar para tentar descobrir se existe eventualmente algum erro ou nao!
skin Posted November 27, 2006 at 03:58 PM Author Report #67076 Posted November 27, 2006 at 03:58 PM Fiz o que o IceBurn e o Karva disseram e já está a funcionar 😛 Drone eu tinha ai um $data e correspondia à data do dia actual, mas achava que era esse o erro por isso tirei 👍 Obrigado a todos pela ajuda. Our lives begin to end the day we become silent about things that matter - Martin Luther King
Drone Posted November 27, 2006 at 05:06 PM Report #67100 Posted November 27, 2006 at 05:06 PM O erro principal foi o que o IceBurn falou... ou seja um erro de cáca! Para evitar tempestades num copo de agua nada como colocares um echo 'Ah e tal cheguei ate aqui'; para verificar se o script chega até lá!
skin Posted November 27, 2006 at 05:21 PM Author Report #67108 Posted November 27, 2006 at 05:21 PM Pois são erros estúpidos que não tem nada a ver com a programação propriamente dita mas mais como é escrita 😛 lol É um conselho que vou seguir 👍 thks Our lives begin to end the day we become silent about things that matter - Martin Luther King
skin Posted November 27, 2006 at 05:50 PM Author Report #67117 Posted November 27, 2006 at 05:50 PM Outra dúvida eu gostava que o programa à medida que estou a escrever o nome de utilizador e a palavra passe que me diga se o nome de utilizador já existe e se a palavra passe pode ser aceite pelo sistema. Sei que isso é em Ajax e já vi uns códigos mas como estavam incompletos não consegui implementar alguém me pode ajudar? P.S - Drone sei que tu já fizeste um sistema deste tipo se puderes explicar-me... Our lives begin to end the day we become silent about things that matter - Martin Luther King
Drone Posted November 27, 2006 at 06:02 PM Report #67119 Posted November 27, 2006 at 06:02 PM Sim, isso é com AJAX existe um topico criado pelo M6 a falar sobre isso, take a look: http://www.portugal-a-programar.pt/index.php?showtopic=2682
skin Posted December 3, 2006 at 01:42 PM Author Report #68445 Posted December 3, 2006 at 01:42 PM Outra dúvida: Eu tenho um sistema de sessões e quero que em determinada área do site ele me diga qual o nome do utilizador...isto deve ser fácil mas não estou a ver cm é... Our lives begin to end the day we become silent about things that matter - Martin Luther King
karva Posted December 3, 2006 at 02:11 PM Report #68452 Posted December 3, 2006 at 02:11 PM quando fazes login guardas o username numa variavel de sessao ($_SESSION['user'] = $username , sendo $username o nome de utilizador), e depois $username = $_SESSION['user']; echo $username; Proud LEIC-A@IST student!
skin Posted December 4, 2006 at 06:38 PM Author Report #68728 Posted December 4, 2006 at 06:38 PM Sim, isso é com AJAX existe um topico criado pelo M6 a falar sobre isso, take a look: http://www.portugal-a-programar.pt/index.php?showtopic=2682 Obrigado 😉. Já consegui fazer o que queria 😄🙂 quando fazes login guardas o username numa variavel de sessao ($_SESSION['user'] = $username , sendo $username o nome de utilizador), e depois $username = $_SESSION['user']; echo $username; Eu tinha feito isso e não tinha funcionado agora fiz e funciona 🙂 devo ter-me enganado em qualquer coisa... Our lives begin to end the day we become silent about things that matter - Martin Luther King
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