Last active
November 2, 2015 04:17
-
-
Save fxcosta/fe576e2c28c2a143826e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Script PHP simples que ilustra e resolve o problema de troca de lâmpadas proposto por @fxcosta para ser solucionado | |
* em conjunto com Mateus e Luis, como forma de fortalecer nossos conhecimentos em lógica | |
**/ | |
// Esse será o start do script, ou seja, a função principal | |
apertarBotao(); | |
function apertarBotao() | |
{ | |
$resultado = ligarLampada(); | |
if($resultado === true) { | |
echo 'Pode ir embora, já deu tudo de boa'; | |
} else { | |
trocarLampada(); | |
echo 'A lampada foi trocada'; | |
} | |
} | |
function ligarLampada() | |
{ | |
$rand = rand(0, 1); | |
if($rand === 1) { | |
echo 'Ok, estamos ligando a lampada!'; | |
return true; | |
} | |
echo 'Não está ok. A lampada não ligou...'; | |
return false; | |
} | |
function trocarLampada() | |
{ | |
subirBanquinho(); | |
echo 'estou trocando a lampada!'; | |
} | |
function subirBanquinho() | |
{ | |
echo 'subindo'; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Script em PHP simples que resolve e ilustra o segundo problema proposto por mim para ser resolvido em conjunto, igualmente o file acima, | |
* e o principal ganho foi ter aprendido a trabalhar com sessions de um modo cru usando arrays. | |
* O problema em si trata-se de descobrir se determinada pessoa, previamente enviada via formulário, está na lista de | |
* convidados ou não. Caso sim, é bem vinda e seu nome é removido, caso não, nada de especial acontece, apenas o barramento da mesma. | |
**/ | |
session_start(); | |
$convidados = array( | |
'Felix', | |
'Mateus', | |
'Luis' | |
); | |
// preciso definir isso para garantir qua e session criada não vai acabar sendo sobescrita a cada nova sessão iniciada pelo cliente | |
if(!isset($_SESSION['sessao'])) { | |
$_SESSION['sessao'] = $convidados; | |
} | |
if(isset($_POST['nome']) && !empty($_POST['nome'])) { | |
$convidado = $_POST['nome']; | |
$achei = array(); | |
foreach($_SESSION['sessao'] as $key => $conv) { | |
if($conv === $convidado) { | |
$achei = array('indice' => $key, 'nome' => $conv); // queremos tanto o indice do array como o seu valor. | |
} | |
} | |
if(empty($achei)) { | |
echo "Não encontrei ninguém! <br>"; | |
} else { | |
echo 'Achei, seja bem vindo: '. $achei['nome']. '<br>'; | |
unset($_SESSION['sessao'][$achei['indice']]); // destruo esse elemento da sessão iniciada por nós de acordo com a key salvaa | |
} | |
// se a sessão estiver vazia, destroi ela, para que seja iniciada novamente na parte superior do script e tudo | |
// possa ser feito novamente, sem ser preciso limpar cache e etc. | |
if(empty($_SESSION['sessao'])) { | |
unset($_SESSION['sessao']); | |
} | |
} | |
?> | |
<form method="post" action="index.php"> | |
Nome:<input type="text" name="nome"> | |
<input type="submit" value="Enviar" name="enviar"> | |
</form> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment