Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [skrypt] działania z prądem
Forum PHP.pl > Inne > Oceny
Flips
Witam, uczę się php z kursów internetowych, jest to mój pierwszy skrypt, który napisałem sam, bez siedzenia z otwartą stroną z kursem, po prostu z głowy. Napiszcie co o nim sądzicie. Zdaję sobie sprawę że to wygląda dziecinnie (zwłaszcza html między php), ale chciałbym żeby tak nie było, dlatego proszę o porady. Pozdrawiam.

  1. <html>
  2. <head><title>Działania z prądem<?if($_GET['action']=='opor') echo ' (obliczanie oporu)';?></title></head>
  3. <body>
  4.  
  5. <?if($_GET['action']=='opor'){ //początek części skryptu dotyczącej obliczania oporu
  6. $opor2 = $_POST['opor2'];
  7. $liczba = $_POST['liczba'];
  8. $polaczenie = $_POST['polaczenie']; //zamiana zmiennych z formularzy na zmienne w PHP
  9. ?>
  10. <p><font size="5">Obliczanie oporu</font></p>
  11. Sposób połączenia oporników:<br/><br/>
  12. <form action="<?echo $_SERVER['SCRIPT_NAME']; echo '?action=opor';?>" method="POST">
  13. <input type="radio" name="polaczenie" value="rownolegle" <?if($polaczenie == 'rownolegle')echo'checked="checked:"';?>/>Równolegle<br/>
  14. <input type="radio" name="polaczenie" value="szeregowo" <?if($polaczenie == 'szeregowo')echo'checked="checked:"';?>/>Szeregowo<br/>
  15. <br/>(zakładamy że wszystkie oporniki mają taki sam opór)<br/><br/>
  16.  
  17. Opór:<br/>
  18. <input type="text" name="opor2" size="5" value="<?echo $_POST['opor2'];?>"/> Ω
  19. <br/><br/>
  20.  
  21. Liczba oporników:<br/>
  22. <input type="text" name="liczba" size="5" value="<?echo $_POST['liczba'];?>"/>
  23. <br/><br/>
  24.  
  25. <input type="submit" value="Oblicz"/>
  26. </form>
  27. <?
  28. if(($liczba != 0) && ($opor2 != 0)){ //tu trzeba jeszcze coś poprawić, patrz komentarz niżej
  29. if($polaczenie == 'rownolegle'){
  30. @$oporzastepczy = 1/($liczba * 1/$opor2);
  31. echo "Opór zastępczy: <b>$oporzastepczy Ω</b>";}
  32.  
  33. elseif($polaczenie == 'szeregowo'){
  34. $oporzastepczy = $opor2 * $liczba;
  35. echo "Opór zastępczy: <b>$oporzastepczy Ω</b>";}
  36.  
  37. else
  38. echo "Wybierz sposób połączenia oporników"; //nie wiem jak zrobić żeby wyświetlało ten napis tylko wtedy, gdy
  39. } //wpisze się dane, ale nie wybierze sposobu połączenia oporników
  40.  
  41. } // koniec części skryptu dotyczącej obliczania oporu
  42. else{
  43. //początek części skryptu dotyczącej działań z prądem
  44. ?>
  45. <p><font size="5">Działania z prądem</font></p>
  46.  
  47. Wpisz dane w <b>dwóch</b> z czterech poniższych pól. Pozostałe parametry zostaną obliczone automatycznie.<br/>Uwaga! W ułamkach zamiast przecinków należy pisać kropki.<br/><br/>
  48. <form action="<?echo $_SERVER['SCRIPT_NAME']?>#wynik" method="POST">
  49.  
  50. Napięcie:<br/>
  51. <input type="text" name="napiecie" size="5" value="<?echo $_POST['napiecie'];?>"/> V
  52. <br/><br/>
  53.  
  54. Opór:<br/>
  55. <input type="text" name="opor" size="5" value="<?echo $_POST['opor'];?>"/> Ω <br/> <a target="_blank" href="<?echo $_SERVER['SCRIPT_NAME']; echo '?action=opor';?>">Obliczanie oporu</a>
  56. <br/><br/>
  57.  
  58. Natężenie:<br/>
  59. <input type="text" name="natezenie" size="5" value="<?echo $_POST['natezenie'];?>"/> A
  60. <br/><br/>
  61.  
  62. Moc:<br/>
  63. <input type="text" name="moc" size="5" value="<?echo $_POST['moc'];?>"/> W
  64. <br/><br/>
  65.  
  66. Pojemność akumulatora (opcjonalnie):<br/>
  67. <input type="text" name="pojemnosc" size="5" value="<?echo $_POST['pojemnosc'];?>"/> Ah
  68. <br/><br/>
  69.  
  70. <br/><input type="submit" value="Oblicz"/>
  71. </form>
  72. <br/>
  73.  
  74. <?
  75. $U=$_POST['napiecie'];
  76. $R=$_POST['opor'];
  77. $I=$_POST['natezenie'];
  78. $P=$_POST['moc']; //zamiana danych z formularza na zmienne o krótkich nazwach
  79. $Id2=$I*$I; // I do kwadratu
  80. $Ud2=$U*$U; // U do kwadratu
  81.  
  82.  
  83. if($U==0){ //jeśli nie zostało wpisane napięcie, to zostanie obliczone
  84. if($R!=0&&$I!=0)$U=$R*$I; //najpierw z pierwszego wzoru (opór i natężenie)
  85. elseif($P!=0&&$I!=0)$U=$P/$I; //jeśli tych danych też nie ma, to z drugiego
  86. elseif($P!=0&&$R!=0){$PrR=$P*$R; $U=sqrt($PrR);}; //a na koniec z trzeciego
  87. };
  88.  
  89. if($R==0){
  90. if($U!=0&&$I!=0)$R=$U/$I; //tutaj to samo, tylko co do oporu
  91. elseif($P!=0&&$I!=0)$R=$P/$Id2;
  92. elseif($U!=0&&$P!=0)$R=$Ud2/$P;
  93. };
  94.  
  95. if($I==0){
  96. if($U!=0&&$R!=0)$I=$U/$R; //itd.
  97. elseif($P!=0&&$U!=0)$I=$P/$U;
  98. elseif($P!=0&&$R!=0){$PpR=$P/$R; $I=sqrt($PpR);};
  99. };
  100.  
  101. if($P==0){
  102. if($U!=0&&$I!=0)$P=$U*$I;
  103. elseif($U!=0&&$R!=0)$P=$Ud2/$R;
  104. elseif($I!=0&&$R!=0)$P=$Id2*$R;
  105. };
  106.  
  107. if(
  108. ($U!=0&&$R!=0) || //jeśli co najmniej jedna z tych kombinacji istnieje,
  109. ($R!=0&&$I!=0) || //to zostanie wyświetlony wynik
  110. ($U!=0&&$I!=0) ||
  111. ($P!=0&&$I!=0) ||
  112. ($U!=0&&$P!=0) ||
  113. ($P!=0&&$U!=0) ||
  114. ($P!=0&&$R!=0)
  115. ){
  116. echo "<a name='wynik'></a>"; //wyświetlanie wyników
  117. echo "<table><tr>";
  118. echo "<td>Napięcie:</td><td><b>$U V</b></td></tr>";
  119. echo "<tr><td>Opór:</td><td><b>$R Ω</b></td></tr>";
  120. echo "<tr><td>Natężenie:</td><td><b>$I A</b></td></tr>";
  121. echo "<tr><td>Moc:</td><td><b>$P W</b></td></tr></table>";
  122.  
  123. if($_POST['pojemnosc']!=0){
  124. $pojemnosc = $_POST['pojemnosc'];
  125. $czasdzialania = @$pojemnosc/$I;
  126. $godziny = floor($czasdzialania); //godziny działania, zaokrąglone w dół
  127. $minuty = floor(($czasdzialania - $godziny) * 60); //reszta z zaokrąglenia godzin przekonwertowana na minuty, również zaokrąglona w dół
  128. $sekundy = round(((($czasdzialania - $godziny) * 60) - (floor(($czasdzialania - $godziny) * 60))) * 60); // reszta z minut przekonwertowana na sekundy, zaokrąglona normalnie
  129. echo "<br/>W pełni naładowany akumulator o pojemności <b>$pojemnosc Ah</b> wystarczy na <b>$godziny h $minuty min $sekundy s</b> działania pod takim prądem.";
  130. };
  131. };
  132. }; //koniec części skryptu dotyczącej działań z prądem
  133. ?>
  134.  
  135. </body>
  136. </html>
emajl22
Po 1: używamy <?php, a nie <? !
Po 2: bałagan w kodzie, brak wcięć, wszystko napisane zbyt chaotycznie.

Kodu nie chce mi się analizować biggrin.gif
pablo89pl
Cytat(emajl22 @ 29.11.2010, 09:44:59 ) *
Kodu nie chce mi się analizować biggrin.gif

Jak Ci się nie chce to nie zajmuj głosu...


@Flips
- staraj się wydzielić czesci kodu (roddziel php od html)
- zamiast <? używaj <?php
- znaki specjalne : Ω wpisuj za pomocą encji
- unikaj stosowania @ - a już na pewno do dzielenia przez zero smile.gif
- poprzegladaj sobie kody projektow open source, czytaj ksiązki, rozwijaj się

..To tyle na początek...
Milego kodowania

motyl-pl
Oddziel php'a od html'a : )
Flips
Co macie na myśli z tym oddzieleniem PHP od HTML? jak to dokładnie ma wyglądać?
emajl22
system szablonów
http://webinside.pl/artykul-63-oddzielanie...hp-od-html.html na samym dole masz kilka słów na ten temat
http://pornel.net/szablony i tutaj jeszcze pare zdan
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.