Duvidas Sobre Php
#1
Posted 02/05/2007, 12:56
Não sei se aqui é o local certo para minha duvida, mas gostaria de saber se o código abaixo esta errado, pois executo ele e ele só me retorna o primeiro if, posso escrever no campo uma outra palavra, mas mesmo assim ele só retorna o primeiro.
Caso alguem saiba como fazer para pegar dados do arquivo texto, mas precisa ser no mesmo formato que foi gravado, eu consegui pegar de um arquivo apenas, o problema é poder escolher qual é o arquivo.
Desde já agradeço a todos.
<html>
<head><title>Principal</title></head>
<body>
<?php
$escolha = "";
if ($escolha = "pri")
{
$principal = fopen ("principal.txt", "r");
while (!feof ($principal))
{
$linha = fgets($principal, 4096);
echo $linha."<br>";
}
fclose ($principal);
}
else
{
if ($escolha = "sob")
{
$sobempresa = fopen ("empresa.txt", "r");
while (!feof ($sobempresa))
{
$linha = fgets($sobempresa, 4096);
echo $linha."<br>";
}
fclose ($sobempresa);
}
else
{
if ($escolha = "forum")
{
$forum = fopen ("forum.txt", "r");
while (!feof ($forum))
{
$linha = fgets($forum, 4096);
echo $linha."<br>";
}
fclose ($forum);
}
else
{
if ($escolha = "obj")
{
$objetivo = fopen ("objetivo.txt", "r");
while (!feof ($objetivo))
{
$linha = fgets($objetivo, 4096);
echo $linha."<br>";
}
fclose ($objetivo);
}
else
{
if ($escolha = "cal")
{
$calendario = fopen ("calendario.txt", "r");
while (!feof ($calendario))
{
$linha = fgets($calendario, 4096);
echo $linha."<br>";
}
fclose ($calendario);
}
else
{
if ($escolha = "cont")
{
$contato = fopen ("contato.txt", "r");
while (!feof ($contato))
{
$linha = fgets($contato, 4096);
echo $linha."<br>";
}
fclose ($contato);
}
}
}
}
}
}
?>
<form method=post action="<? $escolha ?>">
<input type="text" name="escolha" value="" size=10>
<br>
<input type="submit" name="sub" value="Enviar!">
</form>
</body>
</html>
#2
Posted 02/05/2007, 15:56
Pode usar switch para este caso tambem, até fica melhor, em minha opinião:
http://br.php.net/switch
#3
Posted 02/05/2007, 20:19
Só para ficilitar a leitura, você pode trocar os elses por else if (condicao) {}.
Pode usar switch para este caso tambem, até fica melhor, em minha opinião:
http://br.php.net/switch
Valew obrigado estarei alterando e postando novamente
#4
Posted 03/05/2007, 00:16
<?php if ($escolha == "pri") { echo file_get_contents("principal.txt"); } elseif ($escolha == "sob") { echo file_get_contents("empresa.txt"); } elseif ($escolha == "forum") { echo file_get_contents("forum.txt"); } elseif ($escolha == "obj") { echo file_get_contents("objetivo.txt"); } elseif ($escolha == "cal") { echo file_get_contents("calendario.txt"); } elseif ($escolha == "cont") { echo file_get_contents("contato.txt"); } ?>
Edição feita por: sk15, 03/05/2007, 00:18.
#5
Posted 03/05/2007, 16:29
O erro mais grave que vi é que para fazer comparativos em "If's" vc deve usar "==" (2 iguais) e não 1 só como está atualmente, sem contar que os "If's" para um melhor aproveitamento deve formar um conjunto e não fica em "else/if", sem contar que a função de abrir arquivos pode ser melhorada .... veja um pequeno exemplo:
<?php if ($escolha == "pri") { echo file_get_contents("principal.txt"); } elseif ($escolha == "sob") { echo file_get_contents("empresa.txt"); } elseif ($escolha == "forum") { echo file_get_contents("forum.txt"); } elseif ($escolha == "obj") { echo file_get_contents("objetivo.txt"); } elseif ($escolha == "cal") { echo file_get_contents("calendario.txt"); } elseif ($escolha == "cont") { echo file_get_contents("contato.txt"); } ?>
Só para abrir uma discussão parelalea.
Não acharia melhor usar um switch?
Tipo quando a mesma variavel pode passar vários parâmetros, o switch é uma boa .
Pelo menos na minha lógica
#6
Posted 03/05/2007, 16:42
O erro mais grave que vi é que para fazer comparativos em "If's" vc deve usar "==" (2 iguais) e não 1 só como está atualmente, sem contar que os "If's" para um melhor aproveitamento deve formar um conjunto e não fica em "else/if", sem contar que a função de abrir arquivos pode ser melhorada .... veja um pequeno exemplo:
<?php if ($escolha == "pri") { echo file_get_contents("principal.txt"); } elseif ($escolha == "sob") { echo file_get_contents("empresa.txt"); } elseif ($escolha == "forum") { echo file_get_contents("forum.txt"); } elseif ($escolha == "obj") { echo file_get_contents("objetivo.txt"); } elseif ($escolha == "cal") { echo file_get_contents("calendario.txt"); } elseif ($escolha == "cont") { echo file_get_contents("contato.txt"); } ?>
Só para abrir uma discussão parelalea.
Não acharia melhor usar um switch?
Tipo quando a mesma variavel pode passar vários parâmetros, o switch é uma boa .
Pelo menos na minha lógica
Obrigado pela resposta....
Sim acho melhor colocar Switch mesmo....rs
Na verdade nunca programei em PHP, somente em Delphi, VB.NET, C ++, pelo que estou vendo do PHP é bem parecido com o C ++.
Estarei arrumando e postando novamente se tiver mais alguma duvida.
Valew pessoal, muito obrigado
#7
Posted 03/05/2007, 16:52
Mas tudo se deriva do C mesmo.
Mas como você tá acostumado com linguagens procedurais, recomendo você ler uns materias de php, porque sua mente iria se expandir ao mundo OO. (Se você querer aprender java, daer sim que vai expandir mesmo)
#8
Posted 03/05/2007, 22:42
<?php // Pagina Padrao $pagina = 'principal'; // Paginas Validas $paginas = array('pri' => 'principal', 'sob' => 'empresa', 'forum' => 'forum', 'cal' => 'calendario', 'cont' => 'contato'); if (isset($paginas[$escolha])) $pagina = $paginas[$escolha]; echo file_get_contents($pagina); ?>
[]'s
Renan Gonçalves
renan.saddam@gmail.com
(WebSite / Gmail / orkut / Windows Live! Messenger)
"Aquele que se define se limita."
#9
Posted 04/05/2007, 14:06
Estarei melhorando o código assim como vcs me avisarão.
Muito obrigado.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)