Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DougCoder

Problemas em transferir dados para outro arquivo (session / input hidd

Recommended Posts

Bom dia a todos,

MODERADORES: Desculpe pelo Título com >> Problemas << se possível editar para mim por favor !!

 

Estou desde ontem lendo posts no fórum e pesquisando no google. Sei que este é um assunto que basicamente já existe e não é nada atual. O problema é que nenhuma "solução" que encontrei, não consegui implementar. Sempre da um erro diferente. Então, vamos lá...

<div id="div-popover-edt" class="hide">
        <form class="form-horizontal" action="editar/editar_autor.php" method="POST" role="form">

                <div class="form-group">
                <label for="basic" class="col-lg-2 control-label"></label>
                    <div class="col-lg-10">
                        <select name="edt-id" class="selectpicker show-tick form-control">
                        
                    <?php 
                    $sql = "select * from autores"; 
                    $res = Connection::getInstance()->query($sql);
                      
                    while($linha=mysqli_fetch_array($res)) { ?>
                    <option value=""><?php $linha["AUT_ID"]; $id = $linha["AUT_ID"]; echo $linha["AUT_NOME"]; ?></option>
                    
                    
                    <?php $_SESSION["dados"] = $linha;  }  ?>                  
                    
                    </select>
                    </div>
                
                     
                    <label>Digite o Novo Nome do Autor: </label> <br>
                    <input type="text" name="txtnovoautor" /> <br>	
                    <input type="submit" class="btn btn-success" value="Cadastrar" />
                </div>
 
        <button type="reset" id="btn-fechar" class="btn btn-danger" data-dismiss="clickover">Fechar</button>
        </form>
    </div>

Tendo em mãos o seguinte código acima, tenho um select que puxa do banco os autores de uma biblioteca virtual, abaixo dele, possui um input text para eu inserir o novo nome do autor, ou seja, a idéia é que o autor atual do select seja o autor que eu desejo editar e abaixo será o novo nome para eu editá-lo. Em seguida puxa meu arquivo editar_autor.php:

<?php

session_start(); 

include("conexao.php");

$id2 = $_POST['dados'];
//$pega_array = $_SESSION["dados"];
//$_SESSION['id'][] = $id;
$id = $_SESSION["dados"];
//echo ("<script type='text/javascript'>alert ('$id[id2]');</script>");


if ($conn) {
   
    if (mysqli_query($conn, "UPDATE autores SET AUT_NOME='".$_POST['txtnovoautor']."' where AUT_ID='".$id."'")){
	//echo "<b> Autor cadastrado com sucesso </b>";
        echo("<script type='text/javascript'> alert('Autor Deletado com Sucesso !!!'); location.href='/portal_academico/view/main.php';</script>");

        //header("Location: /portal_academico/view/main.php");
    } else {
	echo "<b>erro de exclusão</b>";
    }
        
} else {
		echo "<b>erro de conexao</b>";
}

Não consigo passar o ID do autor de jeito nenhum... Eu tenho o cadastro 100% via post, mas o editar e delete que eu preciso passar o id, não consigo de forma alguma. O que estou fazendo de errado?

 

Pode ver que no meu editar_autor.php tem alguns comentários de testes e gambiarras que eu estava fazendo. Os erros que apresentam são de undefined index e array to string conversion. Se eu por o $id[0] ele puxa o id do último autor. Mas eu preciso que ele puxe o id do autor que eu selecionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi bem tente assim:
1.seu select:

<select name="edt-id" class="selectpicker show-tick form-control">
<option value="<?php echo $linha["AUT_ID"];?>"><?php echo $linha["NOME"];?></option>
</select>

2. na SQL da pg "editar_autor" vc precisa fornecer o id do registro
além do novo nome ou toda a coluna será alterada;
ex:

$idselecionado=$_POST['edt-id'];
$novonomeautor=$_POST['txtnovoautor'];

sql:

UPDATE autores SET AUT_NOME='$novonomeautor' where id='$idselecionado';

mas é melhor prática usar
prepared statements e "bind params" (ou bind values);
ex em PDO:

$sql = $conn->prepare("UPDATE autores SET AUT_NOME=? where id=?);
$sql->bindValue(1, $novonomeautor);
$sql->bindValue(2, $idselecionado);
$sql->execute();

+ 2 dicas:

- verifique a "action" do form (está "editar/editar_autor.php");

- cuidado com maiusculas:

 

$linha["AUT_ID"]
$id2 = $_POST['dados'];

se possivel padronize

dicas boas:
http://www.devmedia.com.br/introducao-ao-php-pdo/24973
http://www.rafaelwendel.com/2011/12/tutorial-pdo-php-data-object/
http://www.devmedia.com.br/crud-com-php-pdo/28873

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi bem tente assim:

1.seu select:

<select name="edt-id" class="selectpicker show-tick form-control">
<option value="<?php echo $linha["AUT_ID"];?>"><?php echo $linha["NOME"];?></option>
</select>

2. na SQL da pg "editar_autor" você precisa fornecer o id do registro

além do novo nome ou toda a coluna será alterada;

ex:

$idselecionado=$_POST['edt-id'];
$novonomeautor=$_POST['txtnovoautor'];

sql:

UPDATE autores SET AUT_NOME='$novonomeautor' where id='$idselecionado';

mas é melhor prática usar

prepared statements e "bind params" (ou bind values);

ex em PDO:

$sql = $conn->prepare("UPDATE autores SET AUT_NOME=? where id=?);
$sql->bindValue(1, $novonomeautor);
$sql->bindValue(2, $idselecionado);
$sql->execute();

+ 2 dicas:

- verifique a "action" do form (está "editar/editar_autor.php");

- cuidado com maiusculas:

 

se possivel padronize

 

dicas boas:

http://www.devmedia.com.br/introducao-ao-php-pdo/24973

http://www.rafaelwendel.com/2011/12/tutorial-pdo-php-data-object/

http://www.devmedia.com.br/crud-com-php-pdo/28873

 

BINGO !!! AMIGO,

 

Utilizei suas dicas do 1, 2 e do sql. Funcionou 100%, além de me corrigir em um erro que eu fiz devido a vários testes... O update em "where id" na verdade é where "AUT_ID". Erro besta meu... Corrigido.

 

Coloquei o echo para visualizar os parâmetros passados. Quando vi que ele passou correto, apliquei no update, funcionou ! Muito obrigado.

 

Só tem uma coisa que não entendi,

Você me disse para verificar a action do form... O que há de errado nela? Ele puxa de uma pasta "editar" o arquivo que edita o autor e assim eu tenho demais arquivos para cada edição (provavelmente irei unir em 1 só... Vou verificar isso só depois que implantar todos requisitos funcionais 100%).

 

Corrigido as maiusculas/minusculas que na verdade, foram removidas pois não foi necessário utilizar o session, apesar de ser mais seguro, segundo as pesquisas que verifiquei.

 

Vou verificar as dicas de PHP Data Object com certeza, porém infelizmente não vou poder aplicá-las agora porque tenho menos de 1 mês para finalizar a biblioteca virtual e ainda falta bastante coisa, sem contar que pelo link que você colocou, verifiquei que tem o PDO para conexão, inserção e delete também, ou seja, se eu for implementá-lo (se der tempo), terá que ser todos eles porque não faz sentido colocar só o PDO na edição e não padronizar nos demais.

 

Enfim, muito obrigado pelas dicas !!

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
    • Por k9studio
      Olá meus Amigos,
       
      Estou tendo dificuldades em eliminar dados repetidos de uma session
      é um sisteminha de pesquisa de domínios com array
      quero eliminar quando já tiver um nome na session, não deixar gravar outro
      aguem pode ajudar
      veja como está  
      Array ( [0] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [1] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [2] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) [3] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [4] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [5] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) ) Desde já muito obrigado a todos
    • Por Alberto Nascimento
      Estou tendo problemas de acesso ao Session, onde quando realizo login via computador, consigo "pegar" os dados que foram armazenados na sesion, mas quando utilizo o sistema de login no telefone ( android, por exemplo ) a session não esta conseguindo carregar os dados do usuário logado e exibir na página seguinte.
       
      Outra coisa que observei é que não consigo trabalhar com session em pastas diferentes, isso é normal? Veja só:
       
       
      Utilizando esta estrutura, não consigo ter acesso ao session no sistema ANDROID
       
      Agora se ao invés de ser como esta acima, faço uma pasta com todos os arquivos juntos, já consigo "pegar" os dados da session. Isso é normal?
    • Por tony_lu
      Ola pessoal, tenho uma hospedagem de php na hostgator e estou tentando rodar uma rotina com session e esta dando erro, na pagina só tem este código:
       
      <?php  session_start();  ?> E esta dando este erro:
      Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/sitewww/public_html/carrinho.php:1) in /home2/sitewww/public_html/carrinho.php on line 2
       
      Alguem pode me ajudar?
    • Por Evandrorussi
      Olá pessoal,
       
      Trabalho com PHP a uns 6 anos e me deparei com um problema de session que nunca ouvi falar, pelo menos não encontrei nada pela internet desse tipo. Tenho um servidor dedicado no Google Cloud e o site tem um sistema de login via session. O problema é que a session funciona aleatoriamente, tem hora que não funciona, o cliente troca de tela e o servidor perde a session e pede pra logar novamente, isso não acontece com todos usuários, comigo por exemplo não acontece.
      O cara que trabalha comigo não ocorria esse problema mas agora começou a acontecer e ele reparou que com guia anônima o problema não ocorre.
       
      Caso alguém pergunte, session_start() está iniciando em todas as páginas.
       
      Abraço
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.