Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Optymalizacja wyświetlania dynamicznego HTML'a
kyez
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Witajcie.

Piszę sobie taki skrypt mailingowy i zastanawiam się jak tu zopytmalizować wyświetlanie HTML'a. Chodzi o to że PHP kontroluje dane w prowadzane przez użytkownika i wyświetla odpowiedni komunikat po wysłaniu formularza. Ale wydaje mi się że rozwiązanie które zastosowałem nie jest zbyt profesjonale i optymalne.
Proszę was o podpowiedzi. smile.gif
Przy okazji, jak oceniacie napisany przezemnie kod?

  1. <?php
  2. $formtresc = "
  3.  
  4. <style type='text/css'>
  5.  
  6. input{
  7. display: block;
  8. }
  9.  
  10. </style>
  11.  
  12. <div form-wrapper style='width: 400px; height: 500px; margin: 0 auto;'>
  13. <center>
  14. <form action='mail.php' method='get'>
  15. <div class='error' id='imie'></div>
  16. Your name: <input type='text' name='imie' />
  17. <div class='error' id='email'></div>
  18. Your e-mail: <input type='text' name='email' />
  19. Select subject of your message: <div class='error' id='temat'></div>
  20. <select name='subject'>
  21.  
  22. <option>Default</option>
  23. <option>Bug report</option>
  24. <option>Grats</option>
  25.  
  26.  
  27. </select></br>
  28.  
  29. Your message: <textarea name='message' cols='50' rows='10'></textarea></br></br>
  30.  
  31. <input type='submit' name='send' value='Dalej'/>
  32. </form>
  33. </center>
  34. </div>
  35. ";
  36.  
  37. $formtrescE1 = "<form action='mail.php' method='get'>
  38. <div class='error' id='imie'>Podaj imie!</div>
  39. <input type='text' name='imie' /></br>
  40. <div class='error' id='email'></div>
  41. <input type='text' name='email' />
  42. <div class='error' id='temat'></div>
  43. <select name='subject'>
  44.  
  45. <option>Default</option>
  46. <option>Bug report</option>
  47. <option>Grats</option>
  48.  
  49. </select>
  50.  
  51. <textarea name='message' cols='50' rows='10'>Tresc wiadomosci</textarea>
  52.  
  53. <input type='submit' value='Dalej'/>
  54. </form>";
  55.  
  56. $formtrescE2 = "<form action='mail.php' method='get'>
  57. <div class='error' id='imie'></div>
  58. <input type='text' name='imie' /></br>
  59. <div class='error' id='email'>Podaj email</div>
  60. <input type='text' name='email' />
  61. <div class='error' id='temat'></div>
  62. <select name='subject'>
  63.  
  64. <option>Default</option>
  65. <option>Bug report</option>
  66. <option>Grats</option>
  67.  
  68. </select>
  69.  
  70. <textarea name='message' cols='50' rows='10'>Tresc wiadomosci</textarea>
  71.  
  72. <input type='submit' value='Dalej'/>
  73. </form>";
  74.  
  75. $formtrescE3 = "<form action='mail.php' method='get'>
  76. <div class='error' id='imie'></div>
  77. <input type='text' name='imie' /></br>
  78. <div class='error' id='email'></div>
  79. <input type='text' name='email' />
  80. <div class='error' id='temat'>Podaj temat wiadomosci</div>
  81. <select name='subject'>
  82.  
  83. <option>Default</option>
  84. <option>Bug report</option>
  85. <option>Grats</option>
  86.  
  87.  
  88. </select>
  89.  
  90. <textarea name='message' cols='50' rows='10'>Tresc wiadomosci</textarea>
  91.  
  92. <input type='submit' value='Dalej'/>
  93. </form>";
  94.  
  95. $formtrescE4 = "<form action='mail.php' method='get'>
  96. <div class='error' id='imie'></div>
  97. <input type='text' name='imie' /></br>
  98. <div class='error' id='email'></div>
  99. <input type='text' name='email' />
  100. <div class='error' id='temat'></div>
  101. <select name='subject'>
  102.  
  103. <option>Default</option>
  104. <option>Bug report</option>
  105. <option>Grats</option>
  106.  
  107. </select>
  108. <div class='error' id='message'>Podaj tresc wiadomosci</div>
  109. <textarea name='message' cols='50' rows='10'></textarea>
  110.  
  111. <input type='submit' value='Dalej'/>
  112. </form>";
  113.  
  114.  
  115. #--------------Temporary Settings--------#
  116. # error id:
  117. # 1 - brak imienia
  118. # 2 - brak emaila
  119. # 3 - nie wybrany temat
  120. # 4 - brak tresci maila
  121.  
  122.  
  123. #$_GET['error']['id'] = '4';
  124.  
  125. #-------------End of temp. settings------#
  126.  
  127.  
  128.  
  129. #--------Configuration File Info---------#
  130. #--------------READ THIS!----------------#
  131. #
  132. # First Line: There you have an e-mail
  133. # address. Messages will be send to
  134. # that e-mail!
  135. #
  136. # Second Line: There you have color
  137. # of border of the inuts
  138. #
  139. #
  140. #
  141. #
  142. #-----End of conf. file info-------------#
  143.  
  144.  
  145.  
  146. #-------------Functions------------------#
  147. function errorExist(){
  148.  
  149. $error = isset($_GET['error']);
  150. #var_dump($a);
  151. #print_r($_GET);
  152. return $error;
  153. }
  154.  
  155. function errorIdChecker(){ # funkcja zamiast 'echo' ma zwracac id bledu dla innej funkcji
  156. if ($_GET['error']['id'] == 1) {
  157.  
  158. #echo 'brak imienia';
  159. return 1;
  160.  
  161. } elseif ($_GET['error']['id'] == 2) {
  162.  
  163. #echo "brak emaila";
  164. return 2;
  165.  
  166. } elseif ($_GET['error']['id'] == 3) {
  167.  
  168. #echo "brak tematu";
  169. return 3;
  170.  
  171. } elseif ($_GET['error']['id'] == 4) {
  172.  
  173. #echo "wpisz tresc wiadomosci";
  174. return 4;
  175.  
  176. }
  177.  
  178. } #END OF errorIdChecker function
  179.  
  180. function makePage($errorID, $trescE1, $trescE2, $trescE3, $trescE4){ // wyswietlanie odpoiedniej tresci
  181.  
  182. switch ($errorID) {
  183. case 1:
  184. echo $trescE1;
  185. break;
  186.  
  187. case 2:
  188. echo $trescE2;
  189. break;
  190.  
  191. case 3:
  192. echo $trescE3;
  193. break;
  194.  
  195. case 4:
  196. echo $trescE4;
  197. break;
  198.  
  199. default:
  200. echo "Wystapił niesnany błąd";
  201. echo "<a href='mail.php'>Go Back</a>";
  202. break;
  203.  
  204. }# Switch end
  205.  
  206. } #END OF makePage function
  207.  
  208.  
  209. function catchError(){
  210.  
  211. if (empty($_GET['imie'])){
  212. $_GET['error']['id'] = 1;
  213. return;
  214. }
  215. if (empty($_GET['email']) or !preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $_GET['email'])) {
  216. $_GET['error']['id'] = 2;
  217. return;
  218. }
  219. if ($_GET['subject'] == 'Default') {
  220. $_GET['error']['id'] = 3;
  221. return;
  222. }
  223. if (empty($_GET['message'])) {
  224. $_GET['error']['id'] = 4;
  225. return;
  226. }
  227.  
  228. }
  229.  
  230. function loadConfigFile(){
  231.  
  232. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  233. @ $file = fopen('config.txt', 'r');
  234.  
  235. if (!$file) {
  236. echo "Blad otwarcia pliku konfiguracyjnego";
  237. } else {
  238. for ($i=0; !feof($file); $i++) {
  239.  
  240. $config[] = fgetcsv($file, 999, "]");
  241. #print_r($config);
  242. }
  243.  
  244. }
  245. return $config;
  246. }
  247.  
  248.  
  249.  
  250.  
  251. #var_dump($errorE);
  252.  
  253. if(isset($_GET['send'])){
  254. catchError();
  255. $errorE = errorExist(); //sprawdzanie czy przy ladowaniu strony jest jakis error $errorE = false/true
  256. if ($errorE == true) {
  257.  
  258. $errorId = errorIdChecker();
  259.  
  260. makePage($errorId, $formtrescE1, $formtrescE2, $formtrescE3, $formtrescE4);
  261. #print_r($a);
  262. } else{
  263. $configf = loadConfigFile();
  264. echo '<pre>';
  265. print_r($configf);
  266. echo "</pre>";
  267. $message = $_GET['message']."
  268.  
  269.  
  270.  
  271.  
  272. Author e-mail addres: ".$_GET['email'];
  273. mail($configf[0][0], $_GET['subject'], /*$_GET['message']*/$message); //not working on localhost
  274. }
  275. } else {
  276. echo $formtresc;
  277. #echo $_SERVER['DOCUMENT_ROOT'];
  278. }
  279.  
  280. // Imie
  281. // email
  282. // kategoria
  283. // tresc
  284. // dodawanie wyrazow/liczb
  285.  
  286.  
  287.  
  288. ?>
  289.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
timon27
post
Post #2





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Robisz bałagan wrzucając 10 różnych stron w 1 plik. Po co?
Skoro masz 5 różnych treści to zrób 5 różnych plików.
Jak bardzo chcesz je mieć pod jednym adresem to np. użyj include();
Takie moje zdanie.

Ten post edytował timon27 18.09.2013, 23:21:15
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ps: $_GET['error']['id'] = 1;
Tablica _GET nie sluzy do zapisuwania w niej jakis swoich danych..... w tej tablicy znajduje sie to co bylo w URL i tak ma pozostac.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kyez
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Czyli tutaj:

  1.  
  2. switch ($errorID) {
  3.  
  4. case 1:
  5.  
  6. echo $trescE1;
  7.  
  8. break;
  9.  
  10.  
  11.  
  12. case 2:
  13.  
  14. echo $trescE2;
  15.  
  16. break;
  17.  
  18.  
  19.  
  20. case 3:
  21.  
  22. echo $trescE3;
  23.  
  24. break;
  25.  
  26.  
  27.  
  28. case 4:
  29.  
  30. echo $trescE4;
  31.  
  32. break;
  33.  
  34.  
  35.  
  36. default:
  37.  
  38. echo "Wystapił niesnany błąd";
  39.  
  40. echo "<a href='mail.php'>Go Back</a>";
  41.  
  42. break;
  43.  
  44.  




zamiast echo mam dać include ?

i pozmieniam wszystkie get'y na post. Tylko czy wszystkie?

Dziękuje wam bardzo za odpowiedzi. Czy macie jeszcze jakieś uwagi ?

Pozdrawiam, Przemek.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i pozmieniam wszystkie get'y na post.
A gdzie ja ci pisalem ze masz get na posty zamienic? Zarowno GET czy POST nie sluzy do przenoszenia wartosci miedzy funkcjami w aplikacji.... GET czy POST to tablice wypelniane danymi z przegladarki.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kyez
post
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


No ale musze jakoś przekazać informacje o błędzie po wysłaniu formularza.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez ty info o errorze zapisujesz i odbierasz w obrebie jednego żądania....
A nawet jakby bylo inaczej to zapisanie tego w GET czy POST by ci wcale nie pomoglo.

POczytaj prosze co to GET, co to POST i nie kloc sie w tak podstawowej kwestii smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kyez
post
Post #8





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


To nie tak, że chcę się kłócić. Poprostu nie wiem jak to inaczej rozwiązać.
Go to the top of the page
+Quote Post
com
post
Post #9





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


a jak chcesz coś już na silę przechowywać to stwórz sobie tablice, albo trzymaj to w sesji, a reszta tak jak mówi nospor .
Go to the top of the page
+Quote Post
kyez
post
Post #10





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Czyli mój kod nie jest dobry? Szczerze się przyznam, że potrzebuję pieniędzy i chciałem napisać coś na codecanyon.net. Powiedzcie szczerze czy nadaje się na sprzedarz po wprowadzeniu wymienionych poprawek? Jeśli nie to czy długa jeszcze droga przedemną? Dodam, że mam zamiar jeszcze dodać wybór stylu w jakim ma być cały formularz przez prostą edycję pliku config.txt (kupujący nie musi znać php, aby konfigurować skrypt)
Go to the top of the page
+Quote Post
Greg0
post
Post #11





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Jeśli nauka PHP ma być motywowana zarabianiem pieniędzy na "tworzeniu" (czyt. nauce tworzenia) i bublach to daruj sobie to na starcie i idź rozdawać ulotki.
Go to the top of the page
+Quote Post
kyez
post
Post #12





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Raz. Piszę w PHP nie od 5 miesięcy a od 2 lat. Dwa. Nie motywuję nauki zarabianiem pieniędzy. Poprostu chcę się dowiedzieć jak dobry jest mój kod. Jak Ci się nie podoba nie musisz dawać złośliwych komentarzy. Nie piszę tu bo jestem chytry i chcę zbić miliony, tylko chcę się dowiedzieć o jakości mojego kodu, to źle ?
Go to the top of the page
+Quote Post
com
post
Post #13





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


przecież jak już powiedziano twój "kod" zawiera błędne zastosowanie GET i POST, wiec czego jeszcze oczekujesz? poza tym czym on się wyróżnia od milionów przykładów w necie ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:23