Ir ao conteúdo
  • Cadastre-se
Insurgent3

PHP Recebendo ação da página do $_POST no PHP/MySQL

Recommended Posts

Olá,

 

Estou um pouco confuso tentando fazer um sistema para um jogo web browser pessoal.

 

Estou tendo problemas para chamar a MESMA página mas com ações diferentes.

 

Eu chamo aqui a página (no MENU):

 

<nav id="menu">
<center>
   <ul>
      <li><a href="principal.php?action=processa">Inicial<a></li>  // <- AQUI
      <li><a href="cidades.php">Cidades<a></li>
      <li><a href="construcoes.php">Construções<a></li>
      <li><a href="unidades.php">Unidades<a></li>
      <li><a href="recursos.php">Recursos<a></li>
   </ul>
</center>

 

E tem um FORMULÁRIO la embaixo pra criar uma nova cidade caso o usuário não tenha fundado nenhuma cidade ainda. Este formulário chama também a página principal mas pelo MÉTODO POST:

 

"<form id='formCriarPrimeiraCidade' name='formCriarPrimeiraCidade' method='post' action='principal.php?action=fundarPrimeiraCidade'>

 

O código completo está aqui:

<?php

$acao = $_GET['action'];

if ($acao == 'processa')
{

include("restrito.php");
include("config.php");


$login_username = $_SESSION['login'];
$sql_busca = "SELECT * FROM user WHERE login = '$login_username'";
$exe_busca = mysqli_query($conexao, $sql_busca) or die (mysql_error());
$fet_busca = mysqli_fetch_array($exe_busca);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema</title>
<style type="text/css">
	#menu ul {
    padding:3px;
    margin:10px;
    background-color:#EDEDED;
    list-style:none;
	float: left;
	width: 800px;
}
#menu ul li{
	display: inline;
	margin: 40px;
}

#menu ul li a{
   padding: 2px;
   display: inline-block;
   
 
}
</style>

</head>

<body>
Ola <?php echo $fet_busca['login'];?>.

<br>	
<a href="logout.php">Logout</a>


<nav id="menu">
<center>
   <ul>
      <li><a href="principal.php?action=processa">Inicial<a></li>
	  <li><a href="cidades.php">Cidades<a></li>
	  <li><a href="construcoes.php">Construções<a></li>
	  <li><a href="unidades.php">Unidades<a></li>
	  <li><a href="recursos.php">Recursos<a></li>
   </ul>
</center>
</nav

<div id="painelPrincipal">
<?php

// Selecionar ID do usuario atual
if (isset($_SESSION['login']))
{

   echo $_SESSION['id'];
   echo $_SESSION['login'];
}

$idUsuarioAtualSession = $_SESSION['id'];

// Verificar se tem alguma cidade com o ID atual
$queryIdUsuarioAtual = "SELECT * FROM cidades WHERE id = 'idUsuarioAtualSession';";
$exe_queryIdUsuarioAtual = mysqli_query($conexao,$queryIdUsuarioAtual);
$count_queryIdUsuarioAtual = mysqli_num_rows($exe_queryIdUsuarioAtual);
// Se tiver cidade, chama a principal listando a cidade
if ($count_queryIdUsuarioAtual >= 1)
{
   while($fetch_queryIdUsuarioAtual = mysqli_fetch_array($exe_queryIdUsuarioAtual))
   {
	   echo "<br>";
	   echo "Cidade ID: " . $fetch_queryIdUsuarioAtual['cidadeId'];
	   echo "Nome ID: " . $fetch_queryIdUsuarioAtual['nomeCidade'];
	   echo "Id dono da cidade: " . $fetch_queryIdUsuarioAtual['id'];
   }
}
else
{
  // Se nao tiver cidade, chama a principal com um formulario para criar a primeira cidade
	echo "<form id='formCriarPrimeiraCidade' name='formCriarPrimeiraCidade' method='post' action='principal.php?action=fundarPrimeiraCidade'>
  
  
      <td colspan='2'><div align='center'><strong>Criar primeira cidade</strong></div></td>
  
       Nome da cidade:
        <input name='nomePrimeiraCidade' type='text' id='nomePrimeiraCidade'>

        <input type='submit' name='Submit' value='Fundar primeira cidade' />
        </form>";
		
   $acao = $_POST['action']; // Recebe a ação do formulário 'Fundar primeira cidade'
   if ($acao == "fundarPrimeiraCidade")
   {
      $sql_queryFundaPrimeiraCidade = "INSERT INTO cidades(nomeCIdade,id) VALUES('" . $_POST['nomePrimeiraCidade'] ."','" . $fetch_queryIdUsuarioAtual['cidadeId']; echo "');";
   }
   
}


?>
</div>
</body/>
</html>
<?php
}
?>

 

Mas estou tendo problemas, creio eu na minha lógica, para processar essas ações diferentes na mesma página.

 

O erro que estou tendo é:

 

Citação

Notice: Undefined index: action in C:\xampp\htdocs\Sistema\principal.php on line 8

 

Que se refere a esta linha logo no começo:

 

$acao = $_GET['action'];

 

 

Minha lógica esta um pouco bagunçada. Se alguém puder ajudar.

 

O que quero fazer é listar na página principal as cidades do usuário caso ele tenha alguma MAS caso ele não tenha nenhuma, na mesma página aparecerá um formulário para ele criar a primeira cidade.

 

Obrigado.

 

=== EDIT ===

 

Resolvido.

 

O código funcionando está aqui:

 

<?php



include("restrito.php");
include("config.php");


$login_username = $_SESSION['login'];
$sql_busca = "SELECT * FROM user WHERE login = '$login_username'";
$exe_busca = mysqli_query($conexao, $sql_busca) or die (mysql_error());
$fet_busca = mysqli_fetch_array($exe_busca);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema</title>
<style type="text/css">
	#menu ul {
    padding:3px;
    margin:10px;
    background-color:#EDEDED;
    list-style:none;
	float: left;
	width: 800px;
}
#menu ul li{
	display: inline;
	margin: 40px;
}

#menu ul li a{
   padding: 2px;
   display: inline-block;
   
 
}
</style>

</head>

<body>
Ola <?php echo $fet_busca['login'];?>.

<br>	
<a href="logout.php">Logout</a>


<nav id="menu">
<center>
   <ul>
      <li><a href="principal.php?action=processa">Inicial<a></li>
	  <li><a href="cidades.php">Cidades<a></li>
	  <li><a href="construcoes.php">Construções<a></li>
	  <li><a href="unidades.php">Unidades<a></li>
	  <li><a href="recursos.php">Recursos<a></li>
   </ul>
</center>
</nav

<div id="painelPrincipal">
<?php
	
// Selecionar ID do usuario atual
if (isset($_SESSION['login']))
{

   echo $_SESSION['id'];
   echo $_SESSION['login'];
}

$idUsuarioAtualSession = $_SESSION['id'];

// Verificar se tem alguma cidade com o ID atual
$queryIdUsuarioAtual = "SELECT * FROM cidades WHERE id = 'idUsuarioAtualSession';";
$exe_queryIdUsuarioAtual = mysqli_query($conexao,$queryIdUsuarioAtual);
$count_queryIdUsuarioAtual = mysqli_num_rows($exe_queryIdUsuarioAtual);
$fetch_queryIdUsuarioAtual = NULL;
$acao = $_GET['action'];

if ($acao == 'processa')
{	
// Se tiver cidade, chama a principal listando a cidade
if ($count_queryIdUsuarioAtual >= 1)
{
   while($fetch_queryIdUsuarioAtual = mysqli_fetch_array($exe_queryIdUsuarioAtual))
   {
	   echo "<br>";
	   echo "Cidade ID: " . $fetch_queryIdUsuarioAtual['cidadeId'];
	   echo "Nome ID: " . $fetch_queryIdUsuarioAtual['nomeCidade'];
	   echo "Id dono da cidade: " . $_SESSION['id'];
   }
}
else
{
	// Se nao tiver cidade, chama a principal com um formulario para criar a primeira cidade
	echo "<br><br><br>";
	echo "<center><form id='formCriarPrimeiraCidade' name='formCriarPrimeiraCidade' method='POST' action='principal.php?action=fundarPrimeiraCidade'>
  
          <td colspan='2'><div align='center'><strong>Criar primeira cidade</strong></div></td>
  
          Nome da cidade:
          <input name='nomePrimeiraCidade' type='text' id='nomePrimeiraCidade'>

          <input type='submit' name='Submit' value='Fundar primeira cidade' />
          </form></center>";
		  
}
}
else
if ($acao == "fundarPrimeiraCidade")
   {
	  echo "<br><br>Chegou aqui";
      $sql_queryFundarPrimeiraCidade = "INSERT INTO cidades(nomeCIdade,id) VALUES('" . $_POST['nomePrimeiraCidade'] ."','" . $_SESSION['id'] . "');";
	  echo $_POST['nomePrimeiraCidade'];
	  echo $_SESSION['id'];
   }
?>

</div>
</body/>
</html>

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×