Ir para conteúdo

POWERED BY:

Arquivado

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

~ Suuh

Php

Recommended Posts

lol so falta as questões

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obs: Estamos trabalhando com formularios em php, e NÃO utilizamos banco de dados ainda.

Obs²: A parte de HTML ja esta feita.

 

 

1- em um formulario leia 2 numeros e entao gere aleatoriamente 10 valores no intervalo os 2 numeros lidos, armazenando-os em um vetor, em seguida faça:

 

a ) imprima o vetor gerado.

b ) imprima o vetor em ordem crescente de valores

c ) imprima o vetor em ordem decrescente de valores

 

2- Faça um formulario onde o usuario informa seu nome, rua, cidade, e estado (utiliz um menu suspenso com a sigla de todos os estados, por exemplo: SP, MT, MS...) Em seguida, escolha entre dois tipos de vinho (branco ou tinto - utilize botões radio) e o periodo ideal para beber (manhã, tarde, noite ou madrugada - utiliza checkbox).Faça um script PHP para:

 

a ) Verificar se todos os dados foram preenchidos.

b ) Apresente a lista de erros.

c ) Apresente todos os dados que foram preenchidos no formulario, utilize uma tabela para a apresentação das informações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A 1º eu nao sei como posso fazer, mas a 2º eu fiz assim:

 

$campo1 = $_POST["nome"];

$campo2 = $_POST["rua"];

$campo3 = $_POST["cidade"];

$campo4 = $_POST["estado"];

$campo5 = $_POST["vinho"];

$campo6 = $_POST["periodo"];

 

if($campo1 == "" && $campo2 == "" && $campo3 == "" && $campo4 == "" && $campo5 == "" && $campo6 == ""){

echo "os campos não foram preenchidos";

} else {

echo "os campos foram preenchidos";

}

 

porem esta dando erro, e tambem, ele valida como "tudo ou nada" sabe ? e na verdade ele deveria validar 1 campo por vez, tentei mudar o codigo mais parece que o erro fica pior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sabe a difrença entre &&(E logico) e ||(OU logico)?

 

o && so é verdadeiro se todas as proposições forem verdadeiras.

o || é verdadeiro quando tem pelo menos um valor verdadeiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta assim:

 

$campo1 = $_POST["nome"];

$campo2 = $_POST["rua"];

$campo3 = $_POST["cidade"];

$campo4 = $_POST["estado"];

$campo5 = $_POST["vinho"];

$campo6 = $_POST["periodo"];

 

// && = E

// || = OU

 

if($campo1 == "" || $campo2 == "" || $campo3 == "" || $campo4 == "" || $campo5 == "" || $campo6 == "" ){

echo "os campos não foram preenchidos";

} else {

echo "os campos foram preenchidos";

}

 

O problema é que quando eu preencho tudo da certo, aparece "Os campos foram preenchidos" mais qnd eu preencho apenas um campo ou nao preencho da erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que erro da?

 

você num ta verificando a existência dos POST qndo passa um POST vazio a variável fica indefinida!

 

use o ISSET pra isso;


$campo['nome'] = isset($_POST["nome"])?$_POST["nome"]:null;
$campo['rua'] = isset($_POST["rua"])?$_POST["rua"]:null;
$campo['city'] = isset($_POST["cidade"])?$_POST["cidade"]:null;
$campo['uf'] = isset($_POST["estado"])?$_POST["estado"]:null;

var_dump($campo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for isso ... o primeiro fica por ai ...


$x = 100;
$y = 800;
$v = array();

for( $i = 0 ; $i < $y , $i < 10 ; ++ $i ) {
	$v[ $i ] = rand( $x , $y );	
}


var_dump( 
		$v , 
		arsort( $v ) ? $v : array(),
		asort( $v ) ? $v : array()
);

 

Saída

array (size=10)
 0 => int 160
 1 => int 310
 2 => int 783
 3 => int 790
 4 => int 230
 5 => int 444
 6 => int 289
 7 => int 509
 8 => int 512
 9 => int 129

array (size=10)
 3 => int 790
 2 => int 783
 8 => int 512
 7 => int 509
 5 => int 444
 1 => int 310
 6 => int 289
 4 => int 230
 0 => int 160
 9 => int 129

array (size=10)
 9 => int 129
 0 => int 160
 4 => int 230
 6 => int 289
 1 => int 310
 5 => int 444
 7 => int 509
 8 => int 512
 2 => int 783
 3 => int 790

 

Sobre o segundo, por farra vai uma solução ai ..

<?php

// ... supondo $_POST

$_POST[ 'nome' ] = 'Test';
$_POST[ 'rua' ] = null;
$_POST[ 'estado' ] = '';

// ...

$unfilled = array();
array_walk( $_POST , function( $v , $k ) 
use( & $unfilled ) {
	if( empty( $v ) || is_null( $v ) ) {
		$unfilled[ $k ] = ucfirst( $k );
	}	
} );

if( count( $unfilled ) ) {
	printf( 'O(s) seguinte(s) campo(s) não foram preenchido(s): <strong>%s</strong>' , 
	implode( ', ' , $unfilled ) );
} else {

	// exiba os dados.

}

 

Saída aqui foi:

O(s) seguinte(s) campo(s) não foram preenchido(s): Rua, Estado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Andrey, ganhou nota 10.

E a Suuh, se usar, leva 0. :P

 

Bah, é pra pegar pesado ? porque se for, só falar, posso fritar uns neurônios ainda.

 

;)

 

Agora, se o que você quis dizer com 'usar' for: pegar o pronto ao invés de tentar fazer, aí tudo bem, fica lá com zero mesmo. Aí eu só lamento, ... em ter postado ou de você ter copiado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nops...

 

O primeiro ta bom, num nível razoável, da pra entender numa boa desde que domine o conceito de vetores.

 

O negócio é que a solução do segundo esta num nível de complexidade alto, se ela usar igual o professor vai dar zero pq, se for um bom professor, sabe exatamente o nível de cada aluno, se do dia para noite aparece alguém com tal solução... zero na hora! ;)

 

você já pegou pesado, não precisa escovar mais bits! :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se posso mas,

Uma dúvida referente ao segundo script do Andrey:

 

No caso de um campo no formulário estar desse jeito:

<input type="text" name="emails[]" />

 

Trocando o array_walk por array_walk_recursive, o closure funcionaria da mesma forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas aí você deve levar em conta que os valores enviados para unfilled serão valores numéricos (... os índices) de cada e-mail preenchido ou não, portanto tem que formatar a resposta de outra forma.

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.