Ir para conteúdo

Arquivado

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

Politano

Notice: Undefined index: imagem *Já vi um post assim aqui, mas não resolveu o meu problema continua exibindo isso.

Recommended Posts

Boa tarde,

 

Meu código está com PHP, e Jquery..

Meu painel.php:

<?php
ob_start(); session_start();
require 'funcoes/banco/conexao.php';
require 'funcoes/login/login.php';
require 'funcoes/crud/crud.php';
logado('administrador');
if (isset($_GET['logout']) && $_GET['logout'] == 'true'):
	session_destroy();
	header("Location: index.php");
endif;

?>
<html>
<head>
<title>Painel Administrativo |</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/estilopainel.css" rel="stylesheet" media="screen">
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
  <div class="container"> 
    
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
      <a class="navbar-brand" href="#">Painel Administrativio</a> </div>
    
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-ex1-collapse">
      <p class="pull-right logout"> Bem Vindo: <?php echo $_SESSION['administrador']->nome_administrador ?> &nbsp <a href="?logout=true" class="btn btn-danger">Sair</a> </p>
    </div>
    <!-- /.navbar-collapse --> 
  </div>
</nav>
<div class="container">
  <div class="row">
    <div class="col-lg-9">
            <?php 
						foreach ($_REQUEST as $___opt => $___val) {
  							$$___opt = $___val;
						}
						if(empty($page)) {
								include("pages/noticias.php");
						}
						elseif(substr($page, 0, 4)=='http' or substr($page, 0, 1)=="/" or substr($page, 0, 1)==".") 
						{
							echo '<font size="+2" color="#000">A página não existe. Por favor selecione uma página a partir do Menu Principal.</font>'; 
						}
						else{
							include("pages/$page.php");
						}
					?>
</div>
    <div class="col-lg-3">
      <h2 class="linha">Menu</h2>
      <div class="bloco">
        <ul class="list-group">
          <li class="list-group-item"> <span class="badge"><?php echo count(listarAdmin()); ?></span> Registros </li>
        </ul>
        <div class="list-group">
        	<a href="?page=noticias" class="list-group-item active">Noticias</a>
        	<a href="#" class="list-group-item"><font color="#FF0000">Enquete - [INATIVO]</font></a>
            <a href="#" class="list-group-item"><font color="#FF0000">Eventos - [INATIVO]</font></a>
            <a href="#" class="list-group-item"><font color="#FF0000">Parceiros - [INATIVO]</font></a>
            <a href="?page=admgm" class="list-group-item">ADM's & GM's</a>
            
        </div>
      </div>
    </div>
  </div>
</div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/painel.js"></script>
<script type="text/javascript" src="js/maskedinput.min.js"></script>
</body>
</html>
<?php
ob_end_flush();
?>

 

Vamos ao fomulário no arquivo painel.js chamado pelo meu painel.php(O QUAL JÁ ESTÁ COM  enctype="multipart/form-data":

<?php
require '../funcoes/banco/conexao.php';
require '../funcoes/crud/crud.php';
$acao = filter_input(INPUT_POST, 'acao', FILTER_SANITIZE_STRING);


switch($acao) {
	case 'form_editaradm':
			$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
			$dados = pegaIdAdm($id);
		?>
			<div class="retorno"></div>
            <script type="text/javascript">
    	$("#celular").mask("(99) 9 9999-9999");
    </script>
<form action="" name="form_editaradmgm" method="POST" enctype="multipart/form-data">
  <div class="form-group">
    <label for="Nick">Nick</label>
    <input type="text" name="nick" value="<?php echo $dados->nick_administrador; ?>" class="form-control" placeholder="Digite o Nick do Game" />
  </div>
  <div class="form-group">
    <label for="foto">Foto</label>
    <input type="file" name="imagem" class="form-control" />
  </div>
  <div class="form-group">
    <label for="Nome">Nome</label>
    <input type="text" name="nome" value="<?php echo $dados->nome_administrador; ?>" class="form-control" placeholder="Digite o Nome" />
  </div>
  <div class="form-group">
    <label for="Celular">Celular</label>
    <input type="text" name="celular" class="form-control" id="celular" placeholder="Digite o Celular"  value="<?php echo $dados->celular_administrador; ?>" />
  </div>
  <div class="form-group">
    <label for="Email">Email</label>
    <input type="text" name="email" class="form-control" placeholder="Digite um Email"  value="<?php echo $dados->email_administrador; ?>" />
  </div>
  <div class="form-group">
    <label for="Funcao">Função</label>
    <input type="text" name="funcao" class="form-control" placeholder="Digite uma Funcao"  value="<?php echo $dados->funcao_administrador; ?>" />
  </div>
  <div class="form-group">
    <label for="Login">Login</label>
    <input type="text" name="login" class="form-control" placeholder="Digite um Login"  value="<?php echo $dados->login_administrador; ?>" />
  </div>
  <div class="form-group">
    <label for="Nivel">Nivel</label>
    <select name="nivel" class="form-control">
      <option value="<?php echo $dados->nivel_administrador; ?>">Escolha uma opção: <?php if (($dados->nivel_administrador) == 1): echo 'Administrador'; else: echo 'Game Master'; endif; ?></option>
	  <option value="<?php if (($dados->nivel_administrador) == 1): echo '2'; $nivell = '2'; else: echo '1'; $nivell = '1'; endif; ?>"><?php if ($nivell == 1): echo 'Administrador'; else: echo 'Game Master'; endif; ?></option>
    </select>
  </div>
  <input type="hidden" name="id" value="<?php echo $dados->id; ?>" />
  <center>
    <img class="loader" style="display:none" src="images/loader.gif" />
  </center>
  <button name="submit" type="submit" class="btn btn-primary">Atualizar</button>
</form>
<?php
		break;

	// CASO PADRÃO DO SWITCH
	default:
		echo 'NADA';
	break;
}?>

Vamos ao meu painel.js só a parte que interessa(CASO NÃO QUEIRAM LER ESSA PARTE NÃO INTERESSA POIS ESTÁ FUNCIONANDO NORMALMENTE O JQUERY):

	//BTN ATUALIZAR ADM GM
	$('#myModal').on("submit", 'form[name="form_editaradmgm"]', function(){
		var dados = $(this);
		var botao = dados.find(':button');
		
		$.ajax({
			url: 'ajax/controller.php',
			type: 'POST',
			data: 'acao=editaradmgm&'+dados.serialize(),
			beforeSend: function(){
				botao.attr('disabled', true);
				$('.loader').fadeIn('slow');
			},
			
			success: function(retorno){				
				if (retorno === 'atualizou'){
					console.log(retorno);
					dados.fadeOut('slow', function(){
						msg('Administrador atualizado','sucesso');
						listarAdmin('ajax/painel.php', 'listar_admin', true);
					});	
				}else if(retorno === '1'){
					msg('Erro ao enviar sua imagem','alerta');
					$('.loader').fadeOut('slow', function(){
						botao.attr('disabled', false);
					});
				}else if (retorno === '2'){
					msg('Por favor, Adicionar uma foto!','alerta');
					console.log(retorno);
					$('.loader').fadeOut('slow', function(){
						botao.attr('disabled', false);
					});
				}else{
					msg('se fudeo total!','alerta');
					console.log(retorno);
					$('.loader').fadeOut('slow', function(){
						botao.attr('disabled', false);
					});
				}
			}
		});
		return false;
	});	

Agora vamos ao controller.php que é chamado pelo painel.js na Ação editaradmgm: onde ocorre o Notice: Undefined index: imagem in controller.php line 54 

<?php
case 'editaradmgm':
		$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
		$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING);
		$celular = filter_input(INPUT_POST, 'celular', FILTER_SANITIZE_STRING);
		$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
		$funcao = filter_input(INPUT_POST, 'funcao', FILTER_SANITIZE_STRING);
		$login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING);
		$nivel = filter_input(INPUT_POST, 'nivel', FILTER_SANITIZE_NUMBER_INT);
		$nick = filter_input(INPUT_POST, 'nick', FILTER_SANITIZE_STRING);
		$foto = $_FILES['imagem']; //LINHA EM QUE OCORRE O ERRO	
		
		$pasta = '../fotos/';
		if(!file_exists($pasta)) mkdir($pasta,0755);
		
			if($foto['tmp_name']){
				$extencao = strchr($foto['name'],'.');
				$filename = md5(time()).$extencao;
				$imagem = array('.jpg','.jpeg','.png','.gif');
				if(in_array($extencao,$imagem)):
					$pasta = $pasta.'imagens/';
					$tipo = 'imagem';
				endif;
				
				if(!file_exists($pasta)) mkdir($pasta,0755);
				
				if(move_uploaded_file($foto['tmp_name'],$pasta.$filename)){
					$qr = "UPDATE administrador SET (nick_administrador, foto_administrador, nome_administrador, celular_administrador, email_administrador, login_administrador, senha_administrador, nivel_administrador) "; 
					$qr .= "VALUES('$nick','$foto','$nome','$celular','$email','$login','$senha','$nivel')";
					$ex = mysql_query($qr);
					echo 'atualizou';
				}else{
					echo '1';
				}
			}else{
				echo '2';
			}
	break;
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize o isset.

 

$foto = isset($_FILES['imagem']) ? $_FILES['imagem'] : false;

// Ou da forma abaixo, somente em PHP 7 >

$foto = $_FILES['imagem'] ?? false;

Compartilhar este post


Link para o post
Compartilhar em outros sites
47 minutos atrás, Alaerte Gabriel disse:

Utilize o isset.

 


$foto = isset($_FILES['imagem']) ? $_FILES['imagem'] : false;

// Ou da forma abaixo, somente em PHP 7 >

$foto = $_FILES['imagem'] ?? false;

ótimo o erro de campo parou, mas veio outro problema e não vejo erro de semântica :(

 

Nesta parte no if($foto['tmp_name'){  independente de ter ou não arquivo inserido no Input file ele retorna o erro 2 que é para inserir imagem na minha lógica de programação, não executando assim query para inserir no banco de dados e na pasta:

<?php
	if($foto['tmp_name']){
		$extencao = strchr($foto['name'],'.');
		$filename = md5(time()).$extencao;
		$imagem = array('.jpg','.jpeg','.png','.gif');
			if(in_array($extencao,$imagem)):
				$pasta = $pasta.'imagens/';
				$tipo = 'imagem';
			endif;
				
			if(!file_exists($pasta)) mkdir($pasta,0755);
				
			if(move_uploaded_file($foto['tmp_name'],$pasta.$filename)){
				$qr = "UPDATE administrador SET (nick_administrador, foto_administrador, nome_administrador, celular_administrador, email_administrador, login_administrador, senha_administrador, nivel_administrador) "; 
				$qr .= "VALUES('$nick','$foto','$nome','$celular','$email','$login','$senha','$nivel')";
				$ex = mysql_query($qr);
				echo 'atualizou';
			}else{
				echo '1';
			}
		}else{
			echo '2';
		}
?>

Grato desde já por sua ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade sua imagem não está sendo enviada. Me atentei agora que você faz o envio por jquery. o jQuery "não" faz o envio da imagem por si só dessa forma. é preciso uma chamada ali do objeto formData. Antes do seu $.ajax adicione:


 

var nform = new FormData(jQuery('form[name="form_editaradmgm"]')[0]);

//e no seu data:

data: 'acao=editaradmgm&'+nform,

Com isso seu campo FILE será enviado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
39 minutos atrás, ustogo disse:

Aprendi recentemente a usar MUITO o var_dump();

remédio do bom !

Obrigado, mas isso não me ajudou, o que ele me diz é apenas que a $foto não ta recebendo parâmetro nenhum mesmo eu buscando a foto no meu computador e colocando para upload, mas na hora de inserir é como se o campo tivesse nulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
×

Informação importante

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