• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skin

Minhas dúvidas

20 mensagens neste tópico

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se ajuda, mas os operadores lógicos (and, or) não são && e || respectivamente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

onde ta

<? $mensagem ?>

não devia ser

<?=$mensagem ?>

OU

<? echo $mensagem; ?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz o que o IceBurn e o Karva disseram e já está a funcionar :P

Drone eu tinha ai um $data e correspondia à data do dia actual, mas achava que era esse o erro por isso tirei :thumbsup:

Obrigado a todos pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois são erros estúpidos que não tem nada a ver com a programação propriamente dita mas mais como é escrita :P lol

É um conselho que vou seguir :thumbsup: thks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 é...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :D:)

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora