Variáveis de Formulário PHP...

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Variáveis de Formulário PHP...

Mensagempor tubarao21 » Quinta Abr 09, 2009 10:46

Boas.

Bem pessoal. Tenho aqui uma coisa para fazer e não estou a conseguir.
É o seguinte, tenho um formulário de Login onde o utilizador faz o seu respectivo Login. Vai buscar os dados para validação à tabela de 'utilizadores'.
Até aqui tudo bem.
Agora, a partir do momento que o utilizador faz o login, é redireccionado para uma página (user.php) onde acede aos seus documentos.
Para isto, eu tenho de agarrar na variável 'nome' no formulário anterior e 'transportá-la' para 'user.php'. Aqui, eu tenho de correr um SQL baseado na variável anterior.
Como é que eu passo a variável 'nome' para user.php e a uso num SQL?

Obrigado pela atenção ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor cesar1 » Quinta Abr 09, 2009 13:05

Boas!
Então aqui vai uma ajuda.

Primeiro de tudo, o teu form tem que estar com o método POST:
method="post"

Depois, eu aconselho-te a não mandares logo para a USER.PHP, supõe que os dados inseridos são incorretos. Se mandares logo para a USER.PHP não tens como retroceder para a outra página. Eu aconselho-t a fazeres essa verificação na propria página, e se depois os dados estiverem correctos, mandas pra USER.PHP.
O código é este:
action="<?php echo $_SERVER['PHP_SELF']; ?>"

Agora..... para onde foram o valor das tuas textbox do "nome" e "password"?
Fácil, estão no POST

$_POST['nome']
$_POST['password']

:D

Agora basta fazeres uma consulta no SQL a validação.
Percebeste tudo?
cesar1
Membro de Prata
Membro de Prata
 
Mensagens: 112
Registado: Quinta Jan 22, 2009 13:43

Mensagempor tubarao21 » Quinta Abr 09, 2009 13:31

Obrigado pela resposta.

O sistema de validação é, como disseste, feito na página. Utilizei o Dreamweaver para isso. Tenho até mensagem de erro caso o Login falhe.
Tá bonito:)

Agora a Form.
Tenho a form com o método "POST". Supostamente, as variáveis 'nome' e 'login' serão levadas para o user.php. Ok, percebido.

Agora, como 'agarro' as variáveis em user.php?
Como faço o SQL?

Este é o código que tenho em 'user.php':

[/code]

$var=$_POST['nome'];

// Código gerado pelo Dreamweaver
$colname_Rset_files = "-1";
if (isset($_POST['var'])) {
$colname_Rset_files = (get_magic_quotes_gpc()) ? $_POST['var'] : addslashes($_POST['var']);
}
mysql_select_db($database_Conn_com, $Conn_com);
$query_Rset_files = sprintf("SELECT * FROM t_ficheiro WHERE t_ficheiro.user = %s", $colname_Rset_files);
$Rset_files = mysql_query($query_Rset_files, $Conn_com) or die(mysql_error());
$row_Rset_files = mysql_fetch_assoc($Rset_files);
$totalRows_Rset_files = mysql_num_rows($Rset_files);
[/code]

Não faço ideia do que mudar aqui ;)


Obrigado;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor cesar1 » Quinta Abr 09, 2009 15:09

Ok....
Primeiro:
Faz la um echo $_POST['nome']; e vê o que aparece.....

em sql é facil.
como se chama o campo? user?

if( ($row_Rset_files[mssql_field_name($Rset_files,"user")]) == $_POST['nome'])
{
echo "utilizador encontrado."
//falta ainda ver a password
}
esle
{
echo "utilizador/password não encontrado."
}
cesar1
Membro de Prata
Membro de Prata
 
Mensagens: 112
Registado: Quinta Jan 22, 2009 13:43

Mensagempor tubarao21 » Quinta Abr 09, 2009 16:05

Ui.. julgo que as variáveis não passam para 'user.php'.
Fiz um echo $_POST['nome']; e não devolveu nada.

No index tenho:

Código: Seleccionar todos

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['nome'])) {
  $loginUsername=$_POST['nome'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "users.php";
  $MM_redirectLoginFailed = "loginerror.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_Conn_com, $Conn_com);

  $LoginRS__query=sprintf("SELECT nome, password FROM t_user WHERE nome='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
   
  $LoginRS = mysql_query($LoginRS__query, $Conn_com) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
   
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;        

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>


                         <form name="user" ACTION="<?php echo $loginFormAction; ?>" METHOD="POST"><tr>
                            <td>
<input type="text" name="nome" size="15" maxlength="40" style="width:120"></td>
                            <td style="padding-left:30;padding-top:5" width="150"><input type="password" name="password" size="15" maxlength="40" style="width:120"></td>
                            <td width="438"><input type="submit" src="images/go_but.gif" border="0" width="18" height="18" alt="">                     
         </td>
                      </tr>
</form>


Ao fazer echo $_POST['nome'] em 'users.php' não devolve nada...
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor cesar1 » Quinta Abr 09, 2009 16:34

O $_SERVER['PHP_SELF'] manda-te para o index, não para a user.php . Se estiveres a redirecionar perdes o POST.
cesar1
Membro de Prata
Membro de Prata
 
Mensagens: 112
Registado: Quinta Jan 22, 2009 13:43

Mensagempor tubarao21 » Quinta Abr 09, 2009 16:38

Estou a ver... mais ou menos...

Neste momento, fazendo Login com os dados certos vou para users.php.

No entanto, fiquei sem variáveis. É isso?

Como posso contornar o problema? :roll:
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Abr 13, 2009 9:31

uiii... estou a dar em doido com isto...

Bem, eu só quero 'transportar' a variável 'nome' para 'users.php'.

Em termos de validação, isso tá a funcionar.

Eu só quero saber como passar a variável 'nome' do formulário para 'users.php' e fazer depois um SQL com essa variável em 'users.php'.

Só precisava mesmo disto.


Obrigado ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Abr 13, 2009 17:26

Pronto, já me safei!

O DreamWeaver gerava uma variável automáticamente:

"$_SESSION['MM_Username'] = $loginUsername;"

Por alguma razão não a tava a conseguir apanhar no php seguinte.

Até que pus a variável toda num 'echo' que ficou mais ou menos assim:

Código: Seleccionar todos
<?php echo $_SESSION['MM_Username'];?>


Finalmente já me passou a variável para o novo php e já faço o SQL com ela e tudo.


Obrigado..

;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor cesar1 » Quinta Abr 16, 2009 15:05

:roll: :?

w3schools ajuda.....


:wink:
cesar1
Membro de Prata
Membro de Prata
 
Mensagens: 112
Registado: Quinta Jan 22, 2009 13:43


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron