Jump to content


Photo

Duvidas Sobre Php


  • Faça o login para participar
8 replies to this topic

#1 hiroyugi

hiroyugi

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado
  • Localidade:Americana
  • Interesses:ASP, Flash, WebDesigner, WebMaster, Delphi, VB.NET

Posted 02/05/2007, 12:56

E ae Galera Boa Tarde,

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>
Onde ha vontade, ha um caminho... Onde ha boa vontade, ha vários caminhos

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 02/05/2007, 15:56

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

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 hiroyugi

hiroyugi

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado
  • Localidade:Americana
  • Interesses:ASP, Flash, WebDesigner, WebMaster, Delphi, VB.NET

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

(y)



Valew obrigado estarei alterando e postando novamente
Onde ha vontade, ha um caminho... Onde ha boa vontade, ha vários caminhos

#4 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 03/05/2007, 00:16

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");
}

?>

Edição feita por: sk15, 03/05/2007, 00:18.


#5 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

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 :D.
Pelo menos na minha lógica <_<

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#6 hiroyugi

hiroyugi

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado
  • Localidade:Americana
  • Interesses:ASP, Flash, WebDesigner, WebMaster, Delphi, VB.NET

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 :D.
Pelo menos na minha lógica <_<

(y)


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
Onde ha vontade, ha um caminho... Onde ha boa vontade, ha vários caminhos

#7 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 03/05/2007, 16:52

É mais parecido com perl mesmo xD

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)

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#8 Renan Gonçalves

Renan Gonçalves

    Web Developer

  • Usuários
  • 771 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP
  • Interesses:Programar PHP, Java (e JSP), Javascript (com Ajax, claro), Ruby (on Rails) !

Posted 03/05/2007, 22:42

Para deixar ainda mais simples, que tal usar um vetor para as possibilidades de ocorrências ?

<?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 hiroyugi

hiroyugi

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado
  • Localidade:Americana
  • Interesses:ASP, Flash, WebDesigner, WebMaster, Delphi, VB.NET

Posted 04/05/2007, 14:06

Galera muito obrigado pelas dicas, funcionou o que eu queria...
Estarei melhorando o código assim como vcs me avisarão.

Muito obrigado.
Onde ha vontade, ha um caminho... Onde ha boa vontade, ha vários caminhos




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq