Ir para conteúdo

Arquivado

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

visitante_php

upload fantasma

Recommended Posts

to usando este script de upload, que eu criei, mas o campo file, q pode ir em branco, esta indo para o banco assim:

 

23_07_2008_20_21_23.

 

so o nome e sem extensao, como faço q se for nulo, o campo ficar branco...? =/

 

<?php  
 
 if($_POST['envia']){
$nome = $_POST['nome'];
$email = $_POST['email'];
$texto = nl2br($_POST['texto']);
$data = $_POST['data'];
if($_FILES['foto'] !=""){
$arquivo = $_FILES['foto'];
$ext = array("jpeg", "jpg");

$name = $arquivo['name'];
$parte1 = explode(".", $name);
//$parte4 = array_shift($parte1);
$parte2 = date("d_m_Y-H_i_s");
$nomes = array($parte2, $parte1["1"]);
$parte3 = implode(".", $nomes);

$pasta = "admin/foto_leitor/";

$file = $pasta.DIRECTORY_SEPARATOR.$parte3;
}


if($arquivo['size'] > 2097152){
echo "Somente arquivos com 2 Mb.<br><a href='leitor.php'>Voltar</a>";
}elseif($arquivo['type'] != in_array(substr($parte3, -3), $ext)){
echo "Arquivo com extensão não permitida. Envie somente arquivos com extensão: JPG JPEG.<br><a href='leitor.php'>Voltar</a>";
}else{
if(($arquivo != "")){
move_uploaded_file($arquivo['tmp_name'], $file);{
}
$arq = explode("/",$file);
mysql_query("INSERT INTO `noticias_leitor` (`data`, `nome`, `email`, `texto`, `foto`, `vista`) VALUES ('".$data."','". $nome."','".$email."','".$texto."','".$parte3."','0');");
echo "Obrigado por sua colaboração.<br><a href='index.php'>Voltar a página principal.</a>";
}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

so o nome e sem extensao, como faço q se for nulo, o campo ficar branco...? =/

Neste IF:

 

if($_FILES['foto'] !=""){

 

coloca o ELSE e seta a var como NULL

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($_FILES['foto'] !=""){
$arquivo = $_FILES['foto'];
$ext = array("jpeg", "jpg");

$name = $arquivo['name'];
$parte1 = explode(".", $name);
//$parte4 = array_shift($parte1);
$parte2 = date("d_m_Y-H_i_s");
$nomes = array($parte2, $parte1["1"]);
$parte3 = implode(".", $nomes);

$pasta = "admin/foto_leitor/";

$file = $pasta.DIRECTORY_SEPARATOR.$parte3;
}else{
$arquivo = null;
}

continua o erro =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

A verificação não deve ser feita com $_FILES['foto'], pois essa variável é um vetor. Não faz sentido verificar se um vetor é igual a uma string vazia. O correto é verificar com $_FILES['foto']['name'].

 

PS: o título do seu tópico até me deu calafrios... :P :lol:

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($_FILES['foto']['name'] !=""){

$arquivo = $_FILES['foto'];

$ext = array("jpeg", "jpg");

 

$name = $arquivo['name'];

$parte1 = explode(".", $name);

//$parte4 = array_shift($parte1);

$parte2 = date("d_m_Y-H_i_s");

$nomes = array($parte2, $parte1["1"]);

$parte3 = implode(".", $nomes);

 

$pasta = "admin/foto_leitor/";

 

$file = $pasta.DIRECTORY_SEPARATOR.$parte3;

}else{

$arquivo = null;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($_FILES['foto']['name'] !=""){

$arquivo = $_FILES['foto'];

$ext = array("jpeg", "jpg");

 

$name = $arquivo['name'];

$parte1 = explode(".", $name);

//$parte4 = array_shift($parte1);

$parte2 = date("d_m_Y-H_i_s");

$nomes = array($parte2, $parte1["1"]);

$parte3 = implode(".", $nomes);

 

$pasta = "admin/foto_leitor/";

 

$file = $pasta.DIRECTORY_SEPARATOR.$parte3;

}else{

$arquivo['name'] = null;

$arquivo['tmp_name'] = null;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro ocorreu ocorreu pois $arquivo recebeu null, não sendo mais um array.

Toda a verificação feita com o arquivo e o upload devem ser inseridas dentro da verificação:

 

if($_FILES['foto']['name'] !=""){

 

Se $arquivo receber null, esta verificação já não faz sentido:

if($arquivo['size'] > 2097152){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\AppServ\www\odebateon2\leitor.php on line 229

Obrigado por sua colaboração.

 

agora ta cadastrando em branco o file,mas ainda esta apareceno o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php require_once('Connections/odebateon2008.php'); ?><?php
//include("admin/banners/banner.php"); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
	case "text":
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
	  break;	
	case "long":
	case "int":
	  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
	  break;
	case "double":
	  $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
	  break;
	case "date":
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
	  break;
	case "defined":
	  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
	  break;
  }
  return $theValue;
}
}

$maxRows_secoes = 16;
$pageNum_secoes = 0;
if (isset($_GET['pageNum_secoes'])) {
  $pageNum_secoes = $_GET['pageNum_secoes'];
}
$startRow_secoes = $pageNum_secoes * $maxRows_secoes;

mysql_select_db($database_odebateon2008, $odebateon2008);
$query_secoes = "SELECT * FROM secoes ORDER BY secao ASC";
$query_limit_secoes = sprintf("%s LIMIT %d, %d", $query_secoes, $startRow_secoes, $maxRows_secoes);
$secoes = mysql_query($query_limit_secoes, $odebateon2008) or die(mysql_error());
$row_secoes = mysql_fetch_assoc($secoes);

if (isset($_GET['totalRows_secoes'])) {
  $totalRows_secoes = $_GET['totalRows_secoes'];
} else {
  $all_secoes = mysql_query($query_secoes);
  $totalRows_secoes = mysql_num_rows($all_secoes);
}
$totalPages_secoes = ceil($totalRows_secoes/$maxRows_secoes)-1;

mysql_select_db($database_odebateon2008, $odebateon2008);
$query_caderno1 = "SELECT * FROM subcategorias WHERE fk_cat = 1";
$caderno1 = mysql_query($query_caderno1, $odebateon2008) or die(mysql_error());
$row_caderno1 = mysql_fetch_assoc($caderno1);
$totalRows_caderno1 = mysql_num_rows($caderno1);

mysql_select_db($database_odebateon2008, $odebateon2008);
$query_caderno2 = "SELECT * FROM subcategorias WHERE fk_cat = 2";
$caderno2 = mysql_query($query_caderno2, $odebateon2008) or die(mysql_error());
$row_caderno2 = mysql_fetch_assoc($caderno2);
$totalRows_caderno2 = mysql_num_rows($caderno2);

mysql_select_db($database_odebateon2008, $odebateon2008);
$query_colunista = "SELECT id, nome_autor FROM colunista";
$colunista = mysql_query($query_colunista, $odebateon2008) or die(mysql_error());
$row_colunista = mysql_fetch_assoc($colunista);
$totalRows_colunista = mysql_num_rows($colunista);
?><!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">
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
	var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
	  if (val) { nm=val.name; if ((val=val.value)!="") {
		if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
		  if (p<1 || p==(val.length-1)) errors+='- '+nm+' não contém um endereço de e-mail válido.\n';
		} else if (test!='R') { num = parseFloat(val);
		  if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
		  if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
			min=test.substring(8,p); max=test.substring(p+1);
			if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
	  } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' é necessário.\n'; }
	} if (errors) alert('Ocorreu(ram) o(s) seguinte(s) erro(s):\n'+errors);
	document.MM_returnValue = (errors == '');
} }
//-->
</script>
<!-- InstanceBegin template="/Templates/modelo_a.dwt.php" codeOutsideHTMLIsLocked="false" -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEditableHeadTag -->
<!-- InstanceEndEditable -->
<link href="tema/estilo1.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="200" border="0" align="center" id="tablecontent">
  <tr>
	<td>data</td>
	<td>logo</td>
	<td><?php include('admin/recursos/cotacao.php');?></td>
	<td><script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','200','height','120','src','banner2','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','banner2' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="120">
	  <param name="movie" value="banner2.swf" />
	  <param name="quality" value="high" />
	  <embed src="banner2.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="120"></embed>
	</object></noscript></td>
  </tr>
  <tr>
	<td colspan="4"><table border="0">
	  <tr>
		<?php
  do { // horizontal looper version 3
?>
		  <td>| <a href="secao.php?secao=<?php echo $row_secoes['id']; ?>"><?php echo $row_secoes['secao']; ?></a> |</td>
		  <?php
	$row_secoes = mysql_fetch_assoc($secoes);
	if (!isset($nested_secoes)) {
	  $nested_secoes= 1;
	}
	if (isset($row_secoes) && is_array($row_secoes) && $nested_secoes++ % 8==0) {
	  echo "</tr><tr>";
	}
  } while ($row_secoes); //end horizontal looper version 3
?>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td colspan="4"><table width="100" border="0" id="menua">
		<tr>
		  <td><div align="center"><a href="#">Principal</a></div></td>
		  <td><div align="center"><a href="#">Anuncie</a></div></td>
		  <td><div align="center"><a href="#">Edições</a></div></td>
		  <td><div align="center"><a href="#">Fale conosco</a></div></td>
		  <td><div align="center"><a href="fiquepordentro.php">Fique por dentro</a></div></td>
		  <td><div align="center"><a href="telefones.php">Telefones úteis</a></div></td>
		  <td><div align="center"><a href="#">Indique este site</a></div></td>
		  <td><div align="center"><a href="expediente.php">Expediente</a></div></td>
		  <td><div align="center">
			<ul id="Caderno1" class="MenuBarHorizontal">
			  <li><a class="MenuBarItemSubmenu" href="#">Caderno 1</a>
				<ul>
				  <?php do { ?>
					<li><a href="subcategoria.php?subcategoria=<?php echo $row_caderno1['id']; ?>"><?php echo $row_caderno1['subcat']; ?></a></li>
					<?php } while ($row_caderno1 = mysql_fetch_assoc($caderno1)); ?>
				</ul>
			  </li>
			</ul>
		  </div></td>
		  <td><div align="center">
			<ul id="caderno2" class="MenuBarHorizontal">
			  <li><a class="MenuBarItemSubmenu" href="#">Caderno 2</a>
				<ul>
				  <?php do { ?>
					<li><a href="subcategoria.php?subcategoria=<?php echo $row_caderno2['id']; ?>"><?php echo $row_caderno2['subcat']; ?></a></li>
					<?php } while ($row_caderno2 = mysql_fetch_assoc($caderno2)); ?>
				</ul>
			  </li>
			</ul>
		  </div></td>
		  <td><div align="center"><a href="#">Cadastre-se</a></div></td>
		  <td><div align="center"><a href="#">Administração</a></div></td>
		</tr>
	  </table></td>
  </tr>
  <tr>
	<td colspan="4">banner
	  <table width="100%" border="0" align="center">
		<tr>
		  <td><form id="form1" name="form1" method="post" action="">
			  <label>
			  <input type="text" name="busca" id="busca" />
			  </label>
			  <label>
			  <input type="submit" name="button" id="button" value="Buscar" />
			  </label>
		  </form></td>
		  <td> </td>
		  <td> </td>
		</tr>
	  </table></td>
  </tr>
  <tr>
	<td colspan="3"><!-- InstanceBeginEditable name="conteudo" -->
 <?php  
 
 if($_POST['envia']){
$nome = $_POST['nome'];
$email = $_POST['email'];
$texto = nl2br($_POST['texto']);
$data = $_POST['data'];
if($_FILES['foto']['tmp_name'] !=""){
$arquivo = $_FILES['foto'];
$ext = array("jpeg", "jpg");

$name = $arquivo['name'];
$parte1 = explode(".", $name);
//$parte4 = array_shift($parte1);
$parte2 = date("d_m_Y-H_i_s");
$nomes = array($parte2, $parte1["1"]);
$parte3 = implode(".", $nomes);

$pasta = "admin/foto_leitor/";

$file = $pasta.DIRECTORY_SEPARATOR.$parte3;

}else{
$arquivo = null;
}


if($arquivo['size'] > 2097152){
echo "Somente arquivos com 2 Mb.<br><a href='leitor.php'>Voltar</a>";
}elseif($arquivo['type'] != @in_array(substr($parte3, -3), $ext)){
echo "Arquivo com extensão não permitida. Envie somente arquivos com extensão: JPG JPEG.<br><a href='leitor.php'>Voltar</a>";
}else{
//if(($arquivo != "")){
move_uploaded_file($arquivo['tmp_name'], $file);

//}
$arq = explode("/",$file);
mysql_query("INSERT INTO `noticias_leitor` (`data`, `nome`, `email`, `texto`, `foto`, `vista`) VALUES ('".$data."','". $nome."','".$email."','".$texto."','".$parte3."','0');");
echo "Obrigado por sua colaboração.<br><a href='index.php'>Voltar a página principal.</a>";
}
}


else{
?>
	  <table width="700" border="1">
		<tr>
		  <td> </td>
		</tr>
		<tr>
		  <td><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form2" id="form2" onsubmit="MM_validateForm('nome','','R','email','','RisEmail','texto','','R');return document.MM_returnValue">
			<table width="100%" border="1">
			  <tr>
				<td>Nome:</td>
				<td><label>
				  <input type="text" name="nome" id="nome" />
				</label></td>
			  </tr>
			  <tr>
				<td>E-mail</td>
				<td><label>
				  <input type="text" name="email" id="email" />
				</label></td>
			  </tr>
			  <tr>
				<td>Data:</td>
				<td><label>
				  <input type="text" name="data" id="data" readonly="readonly" value="<?php echo date("d/m/Y")?>" />
				</label></td>
			  </tr>
			  <tr>
				<td>Texto:</td>
				<td><label>
				  <textarea name="texto" id="texto" cols="45" rows="5"></textarea>
				</label></td>
			  </tr>
			  <tr>
				<td>Foto:</td>
				<td><label>
				  <input type="file" name="foto" id="foto" />
				</label></td>
			  </tr>
			  <tr>
				<td colspan="2"><label>
				  <div align="center">
					<input type="submit" name="envia" id="envia" value="Enviar" />
					</div>
				</label></td>
				</tr>
			</table>
					</form>
		  </td>
		</tr>
	  </table><?php   }?>
   
	<!-- InstanceEndEditable --></td>
	<td width="280px"><div id="banner">
	  <table width="280" border="1" align="center">
		<tr>
		  <td></noscript>
			  <script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','180','height','180','src','admin/banners/banner1','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','admin/banners/banner1' ); //end AC code
		</script>
			<noscript>
			  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="180" height="180">
				<param name="movie" value="admin/banners/banner1.swf" />
				<param name="quality" value="high" />
				<embed src="admin/banners/banner1.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="180" height="180"></embed>
			  </object>
			</noscript></td>
		</tr>
		<tr>
		  <td> </td>
		</tr>
		<tr>
		  <td> </td>
		</tr>
		<tr>
		  <td> </td>
		</tr>
	  </table>
	</div></td>
  </tr>
  <tr>
	<td colspan="4">copyright</td>
  </tr>
</table>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("Caderno1", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
var MenuBar2 = new Spry.Widget.MenuBar("caderno2", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($secoes);

mysql_free_result($caderno1);

mysql_free_result($caderno2);

mysql_free_result($colunista);
?>

script atual, como seria a verificacao do mime-type?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia novamente o post 11, que postei. É essa a causa do erro.

 

Para verificar por mime-type, basta verificar se $_FILES['foto']['type'] é igual a image/jpeg, já que você só está permitindo jpeg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente.

Ou, semelhantemente às outras verificações do seu script:

 

//...
elseif($_FILES['foto']['type'] != "image/jpeg")
{
	// erro de formato de arquivo
}

Como referência, pode ver este artigo:

http://www.phpbrasil.com/articles/article.php/id/707

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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