Ir para conteúdo

POWERED BY:

Arquivado

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

tomwp

incluir um input type na programacao

Recommended Posts

Olá Comunidade, sou novo aqui e ja vim com duvidas hehehehe...

bom minha duvida é o seguinte...estou com um codigo PHP ondi ele faz o upload de fotos para o servidor..até ai certo..só que nao tem q ser só isso...preciso que nesse mesmo codigo tenha a legenda para cada foto em um input type. como faço isso? ai vai o codigo:

 

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos//';
	
	$i = 0;
	$msg = array( );
	$arquivos = array( array( ) );
	foreach(  $_FILES as $key=>$info ) {
		foreach( $info as $key=>$dados ) {
			for( $i = 0; $i < sizeof( $dados ); $i++ ) {
				$arquivos[$i][$key] = $info[$key][$i];
			}
		}
	}

	$i = 1;

	// Fazemos o upload normalmente, igual no exemplo anterior
	foreach( $arquivos as $file ) {

		if( $file['name'] != '' ) {
			$arquivoTmp = $file['tmp_name'];
			$arquivo = $pathToSave.$file['name'];

			if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) {
				$msg[$i] = 'Erro no upload do arquivo '.$i;
			} else {
				$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
			}
		} else {
			$msg[$i] = sprintf('O arquivo %d nao foi preenchido',$i);
		}

		$i++;
	}

	foreach( $msg as $e ) {
		printf('%s<br>', $e);
	}

}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo[]'><br>
	Arquivo2: <input type='file' name='arquivo[]'><br>
	Arquivo3: <input type='file' name='arquivo[]'><br>
	Arquivo4: <input type='file' name='arquivo[]'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>

Desde já, Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola tomwp, bem vindo ao forum, e parabens pelo seu primeiro post estar dentro das tags CODE ^^ São raros os que o fazem no primeiro post =)

 

bem, ve ae =)

 

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos//';
	
	$arquivos = $_FILES;
	$legenda = $_POST['legenda'];
	for($i=0; $i<count($arquivos); $i++) {
		$file = $arquivos[$i];
		$arquivoTmp = $file['tmp_name'];
		$arquivo = $pathToSave.$file['name'];
		if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) {
			$msg[$i] = 'Erro no upload do arquivo '.$i;
		} else {
			$fp = fopen($arquivo.".txt", "w");
			fwrite($fp, $legenda[$i]);
			fclose($fp);
			$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
		}
	}
}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo[]'><br>
	Legenda1: <input type='text' name='legenda[]'><br>
	Arquivo2: <input type='file' name='arquivo[]'><br>
	Legenda2: <input type='text' name='legenda[]'><br>
	Arquivo3: <input type='file' name='arquivo[]'><br>
	Legenda3: <input type='text' name='legenda[]'><br>
	Arquivo4: <input type='file' name='arquivo[]'><br>
	Legenda4: <input type='text' name='legenda[]'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>

Não testei, mas deve funcionar, se não funcionar, é alguma sintaxe, mas a idéia é essa =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola tomwp, bem vindo ao forum, e parabens pelo seu primeiro post estar dentro das tags CODE ^^ São raros os que o fazem no primeiro post =)

 

bem, ve ae =)

 

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos//';
	
	$arquivos = $_FILES;
	$legenda = $_POST['legenda'];
	for($i=0; $i<count($arquivos); $i++) {
		$file = $arquivos[$i];
		$arquivoTmp = $file['tmp_name'];
		$arquivo = $pathToSave.$file['name'];
		if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) {
			$msg[$i] = 'Erro no upload do arquivo '.$i;
		} else {
			$fp = fopen($arquivo.".txt", "w");
			fwrite($fp, $legenda[$i]);
			fclose($fp);
			$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
		}
	}
}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo[]'><br>
	Legenda1: <input type='text' name='legenda[]'><br>
	Arquivo2: <input type='file' name='arquivo[]'><br>
	Legenda2: <input type='text' name='legenda[]'><br>
	Arquivo3: <input type='file' name='arquivo[]'><br>
	Legenda3: <input type='text' name='legenda[]'><br>
	Arquivo4: <input type='file' name='arquivo[]'><br>
	Legenda4: <input type='text' name='legenda[]'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>

Não testei, mas deve funcionar, se não funcionar, é alguma sintaxe, mas a idéia é essa =)

heehhe Obrigado Scorn. Bom fiz o teste aqui, nao deu certo nao. Agora nem a foto está indo mais para a pasta "fotos" para adicionar essa descriçao para o banco de dados nao teria que ter algum INSERT INTO no codigo?

 

EDIT: pq essa "legenda" que eu digo seria uma descricao que vai para o banco de dados como text e depois aparece no site de baixo da foto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

To fazendo e testando aqui, ja posto pra você ok? =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

To fazendo e testando aqui, ja posto pra você ok? =)

claro Scorn, tranquilo brother....a noite é uma criança hehehe to sem sono tambem http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif

espero sim. Obrigado mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como se fosse demorar ^^

 

agora ta filé, ta até funcionando =)

 

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos/';
	
	$legendas = $_POST['legenda'];
	$arquivos = $_FILES['arquivo'];
	
	// Conecta ao banco, mude a senha, o usuario, e o nome do banco
	mysql_connect("localhost", "root", "");
	mysql_select_db("teste");
	
	// Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la
	for($i=0; $i<4; $i++) {
		if($arquivos['name'][$i] == '') {
			continue;
		}
		$arquivoTmp = $arquivos['tmp_name'][$i];
		$arquivo = $pathToSave.$arquivos['name'][$i];
		if(!move_uploaded_file($arquivoTmp, $arquivo)) {
			$msg[$i] = 'Erro no upload do arquivo '.$i;
		} else {
			$res = mysql_query("insert into fotos (arquivo, legenda) values ('" . $arquivo . "', '" . $legendas[$i] . "')");
			if($res) {
				$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
			} else {
				$msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i);
			}
		}
	}
}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo[]'><br>
	Legenda1: <input type='text' name='legenda[]'><br>
	Arquivo2: <input type='file' name='arquivo[]'><br>
	Legenda2: <input type='text' name='legenda[]'><br>
	Arquivo3: <input type='file' name='arquivo[]'><br>
	Legenda3: <input type='text' name='legenda[]'><br>
	Arquivo4: <input type='file' name='arquivo[]'><br>
	Legenda4: <input type='text' name='legenda[]'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

caramba Scorn num deu nem tempo de eu ir comer hehehehe ^_^

bom ja testei e deu certo sim mas o esquema é o seguinte..sao 7 fotos entao la no BD eu tenho que por 7 campos pra fotos e 7 campos pra legenda certo? pode ser assim o nome dos campos la

legenda1

legenda2

...

???ou tem q fazer de outro jeito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, no formulario você vai ter que ter 14 campo, 7 pra arquivo, 7 pra legenda

 

e no for, ele vai até 7

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, no formulario você vai ter que ter 14 campo, 7 pra arquivo, 7 pra legenda

 

e no for, ele vai até 7

sim..isso eu inclui ja...to dizendo la no phpmyadmin..os nomes dos campos serao na sequencia?

arquivo1, arquivo2, arquivo3 ....

lengenda1, legenda2, legenda3...

os nomes tem q por esses?

pq eu fiz desse jeito e nao ta xegando a legenda para o BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo...consegui só que eu vi no phpmyadmin que as fotos adicionadas com a legenda sao uma por uma...com cada ID diferente...e no meu caso tinha que ser em um mesmo ID as 7 fotos e as 7 legendas..ai eu fiz esse codigo mas nao esta dando certo:

 

<?
	session_start();
	if (session_is_registered("idusuario"))
	{
	
	?>

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos/';
	
	$legenda1 = $_POST['legenda1'];
	$legenda2 = $_POST['legenda2'];
	$legenda3 = $_POST['legenda3'];
	$legenda4 = $_POST['legenda4'];
	$arquivo1 = $_FILES['arquivo1'];
	$arquivo2 = $_FILES['arquivo2'];
	$arquivo3 = $_FILES['arquivo3'];
	$arquivo4 = $_FILES['arquivo4'];
	
	// Conecta ao banco, mude a senha, o usuario, e o nome do banco
	require_once('conexao.php');
	
	// Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la
	for($i=0; $i<4; $i++) {
		if($arquivos['name'][$i] == '') {
			continue;
		}
		$arquivoTmp = $arquivos['tmp_name'][$i];
		$arquivo = $pathToSave.$arquivos['name'][$i];
		if(!move_uploaded_file($arquivoTmp, $arquivo)) {
			$msg[$i] = 'Erro no upload do arquivo '.$i;
		} else {
			$res = mysql_query("insert into fotos (arquivo1, arquivo2, arquivo3, arquivo4, legenda1, legenda2, legenda3, legenda4) values ('" . $legenda1 . "', '" . $legenda2 . "', '" . $legenda3 . "', '" . $legenda4 . "', '" . $arquivo1 . "', '" . $arquivo2 . "', '" . $arquivo3 . "', '" . $arquivo4 . "')");
			if($res) {
				$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
			} else {
				$msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i);
			}
		}
	}
}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo1'><br>
	Legenda1: <input type='text' name='legenda1'><br>
	Arquivo2: <input type='file' name='arquivo2'><br>
	Legenda2: <input type='text' name='legenda2'><br>
	Arquivo3: <input type='file' name='arquivo3'><br>
	Legenda3: <input type='text' name='legenda3'><br>
	Arquivo4: <input type='file' name='arquivo4'><br>
	Legenda4: <input type='text' name='legenda4'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>


<?
	}
	else
		header("Location: area.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem-vindo ao iMasters! :D

Como o ScornInPC disse, código organizado no primeiro post é raro. Parabéns! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

 

Como é a sua tabela? É como se fosse um sistema de cadastro, em que as fotos estão relacionadas a um usuário ou a uma infomração? Se for, aconselho criar uma tabela somente para as fotos, relacionada com a tabela de usuários/informações.

 

A lógica é semalhante à deste artigo:

http://www.tmferreira.com.br/blog/2007/07/...-um-erro-comum/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem-vindo ao iMasters! :D

Como o ScornInPC disse, código organizado no primeiro post é raro. Parabéns! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

 

Como é a sua tabela? É como se fosse um sistema de cadastro, em que as fotos estão relacionadas a um usuário ou a uma infomração? Se for, aconselho criar uma tabela somente para as fotos, relacionada com a tabela de usuários/informações.

 

A lógica é semalhante à deste artigo:

http://www.tmferreira.com.br/blog/2007/07/...-um-erro-comum/

Opa Beraldo, entao a minha tabela la no BD sao 7 lugares para por legenda e 7 para por as fotos, mas tem que ser no mesmo ID...

aqui segue o codigo do meu BD:

 

#
# Estrutura da tabela `fotos`
#

CREATE TABLE fotos (
  idfoto int(11) NOT NULL auto_increment,
  legenda text NOT NULL,
  legenda1 text NOT NULL,
  legenda2 text NOT NULL,
  legenda3 text NOT NULL,
  legenda4 text NOT NULL,
  legenda5 text NOT NULL,
  legenda6 text NOT NULL,
  legenda7 text NOT NULL,
  arquivo1 varchar(255) NOT NULL default '',
  arquivo2 varchar(255) NOT NULL default '',
  arquivo3 varchar(255) NOT NULL default '',
  arquivo4 varchar(255) NOT NULL default '',
  arquivo5 varchar(255) NOT NULL default '',
  arquivo6 varchar(255) NOT NULL default '',
  PRIMARY KEY  (idfoto)
) TYPE=MyISAM;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ai tem 8 campos de legenda e 6 de arquivo O.o' ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ai tem 8 campos de legenda e 6 de arquivo O.o' ^^

huasuhas ^_^ nem tinha visto...vou mudar aqui e ja passo o codigo de novo...só que mesmo assim se eu mudar isso e deixar 7 para cada vai enviar do jeito que eu to falando? um ID para todas as fotos e legendas?? a programacao que montei ai vai dar certo? abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao eu mudei la..agora ta 7 pra cada...

 

#
# Estrutura da tabela `fotos`
#

CREATE TABLE fotos (
  idfoto int(11) NOT NULL auto_increment,
  legenda1 text NOT NULL,
  legenda2 text NOT NULL,
  legenda3 text NOT NULL,
  legenda4 text NOT NULL,
  legenda5 text NOT NULL,
  legenda6 text NOT NULL,
  legenda7 text NOT NULL,
  arquivo1 varchar(255) NOT NULL default '',
  arquivo2 varchar(255) NOT NULL default '',
  arquivo3 varchar(255) NOT NULL default '',
  arquivo4 varchar(255) NOT NULL default '',
  arquivo5 varchar(255) NOT NULL default '',
  arquivo6 varchar(255) NOT NULL default '',
  arquivo7 varchar(255) NOT NULL default '',
  PRIMARY KEY  (idfoto)
) TYPE=MyISAM;

soh que mesmo assim nao ta dando certo, pq nem la na pasta de fotos esta indo as imagens =/

ondi esta errado no codgio? o codigo esta aqui:

 

<?
	session_start();
	if (session_is_registered("idusuario"))
	{
	
	?>

<?php

if( isset( $_POST['enviar'] ) ) {

	$pathToSave = 'fotos/';
	
	$legenda1 = $_POST['legenda1'];
	$legenda2 = $_POST['legenda2'];
	$legenda3 = $_POST['legenda3'];
	$legenda4 = $_POST['legenda4'];
	$arquivo1 = $_FILES['arquivo1'];
	$arquivo2 = $_FILES['arquivo2'];
	$arquivo3 = $_FILES['arquivo3'];
	$arquivo4 = $_FILES['arquivo4'];
	
	// Conecta ao banco, mude a senha, o usuario, e o nome do banco
	require_once('conexao.php');
	
	// Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la
	for($i=0; $i<4; $i++) {
		if($arquivos['name'][$i] == '') {
			continue;
		}
		$arquivoTmp = $arquivos['tmp_name'][$i];
		$arquivo = $pathToSave.$arquivos['name'][$i];
		if(!move_uploaded_file($arquivoTmp, $arquivo)) {
			$msg[$i] = 'Erro no upload do arquivo '.$i;
		} else {
			$res = mysql_query("insert into fotos (arquivo1, arquivo2, arquivo3, arquivo4, legenda1, legenda2, legenda3, legenda4) values ('" . $legenda1 . "', '" . $legenda2 . "', '" . $legenda3 . "', '" . $legenda4 . "', '" . $arquivo1 . "', '" . $arquivo2 . "', '" . $arquivo3 . "', '" . $arquivo4 . "')");
			if($res) {
				$msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
			} else {
				$msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i);
			}
		}
	}
}

?>

<form method='POST' enctype='multipart/form-data'>
	Arquivo1: <input type='file' name='arquivo1'><br>
	Legenda1: <input type='text' name='legenda1'><br>
	Arquivo2: <input type='file' name='arquivo2'><br>
	Legenda2: <input type='text' name='legenda2'><br>
	Arquivo3: <input type='file' name='arquivo3'><br>
	Legenda3: <input type='text' name='legenda3'><br>
	Arquivo4: <input type='file' name='arquivo4'><br>
	Legenda4: <input type='text' name='legenda4'><br>
	<br>
	<input type='submit' value='Enviar' name='enviar'>
</form>


<?
	}
	else
		header("Location: area.php");
?>

espero resposta...

Abraços!

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.