Jump to content

Minhas dúvidas


Recommended Posts

Posted

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

Posted

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.

Posted

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());
Posted

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!

Posted

Já fiz isso e continua na mesma.

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted

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!

Posted

Nao retorna nenhum erro porque nao tens o die(mysql_error());

Qualquer das maneiras o karva tem razao tens de por <?= ou <? echo

Posted

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 ?

Posted

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.

Posted

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!

Posted

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

Posted

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á!

Posted

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

Posted

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

Posted

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

Posted

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!

Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.