Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] ćwiczenia, zadania jako praca domowa :)
sebus79
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 22.06.2013
Skąd: Łódź

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


Witajcie.

Jeśli wybrałem zły dział, to przepraszam i proszę o przeniesienie.


Otóż, jak wiecie, pilnie szkole się PHP.
Na razie tylko podstawy, czytam książki, oglądam kursy, piszę kod, czytam książki, oglądam kursy, piszę kod itd.

Wydaje mi się, iż nawet już coś łapię z podstaw. Brakuje mi jednak jednego - ćwiczeń (czyt. zadań).
Niestety w kursach i książkach mało jest ćwiczeń :-(

Czy możliwe jest abyście podali (czyt. zadali) mi jakiś zestaw ćwiczeń, zadań do wykonania tak abym sprawdził, czy faktycznie potrafię (oraz jeśli nie - to abym się douczyć)?
Mówię tutaj o podstawach czyli pętle, funkcje, operatory, tablice, klasy (mysql zostawiłem na później nieco).
Zależy mi aby te zadania byłe w miarę realne także do zastosowania na www - bo jak na razie - owe podstawy wydają mi się, że mają małe zastosowanie pod kątem www (nie mówię o mysql-u).


Podsumowując proszę o pracę domową :-)

Z góry wielkie dzięki.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


1. Jeden plik:
  1.  
  2.  
  3.  
  4. Podaj liczbe sekund<br />
  5.  
  6. <form action="sekundy.php" method="post">
  7.  
  8. <input type="text" name="sekundy"><br />
  9.  
  10. <input type="submit" method="post" value="Wyslij" />
  11.  
  12. </form>
  13.  
  14. </body>
  15.  
  16. </html>




Drugi plik:

  1. <?php
  2.  
  3. $sekundy = $_POST['sekundy'];
  4.  
  5. echo "Ilosc podanych sekund wynosi: ".$sekundy."<BR /><BR />";
  6.  
  7.  
  8.  
  9. $minuty=$sekundy/60;
  10.  
  11. $godziny=$sekundy/3600;
  12.  
  13. $dni=$godziny/24;
  14.  
  15. $lata=$dni/365;
  16.  
  17.  
  18.  
  19. echo "Ilosc minut wynosi: ".$minuty."<BR />";
  20.  
  21. echo "Ilosc godzin wynosi: ".$godziny."<BR />";
  22.  
  23. echo "Ilosc dni wynosi: ".$dni."<BR />";
  24.  
  25. echo "Ilosc lat wynosi: ".$lata."<BR />";
  26.  
  27.  
  28.  
  29. ?>

a nie wszystko w jednym, nie powinno się mieszać HTML z PHP

2. Jeśli już chcesz mieszać to w pierwszych linijkach kod PHP, a na samym końcu kod HTML. W tym skrypcie to akurat chyba nie robi, ale już w innych tak.
Go to the top of the page
+Quote Post
sebus79
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 22.06.2013
Skąd: Łódź

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


Cytat(Damonsson @ 28.06.2013, 12:28:46 ) *
(...) a nie wszystko w jednym, nie powinno się mieszać HTML z PHP

2. Jeśli już chcesz mieszać to w pierwszych linijkach kod PHP, a na samym końcu kod HTML. W tym skrypcie to akurat chyba nie robi, ale już w innych tak.


hehe, też tak chciałem zrobić, ale pomyślałem sobie, że na forum lepiej będzie widoczne jak połączę. :-)
Ogólnie mam dwa osobne pliki, jak pisałeś (IMG:style_emoticons/default/smile.gif)

A jak sam kod? Można byłoby go nieco ulepszyć?


Pozdrawiam serdecznie.
Seb.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(sebus79 @ 28.06.2013, 12:33:54 ) *
hehe, też tak chciałem zrobić, ale pomyślałem sobie, że na forum lepiej będzie widoczne jak połączę. :-)
Ogólnie mam dwa osobne pliki, jak pisałeś (IMG:style_emoticons/default/smile.gif)

A jak sam kod? Można byłoby go nieco ulepszyć?


Pozdrawiam serdecznie.
Seb.


Ogólnie w zadaniu chodziło o to byś przeliczył, że np. 3600 sec to 1 godzina i 0 minut i 0 sekund, a nie że jest to 1 godzina, 60 minut, 3600 sekund. Rozumiesz? Zadanie jest nieco bardziej utrudnione, może się źle wyraziłem początkowo. No i mógłbyś dorzucić właśnie walidację oraz to żeby nie wyświetlało wyników, jeśli np. lat będzie 0. Może też odmieniać końcówkę, że np. 1 rok, 2 lata, 3 lata, itd. albo 1 sekunda, 2 sekundy, 10 sekund, itd.
Go to the top of the page
+Quote Post
sebus79
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 22.06.2013
Skąd: Łódź

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


Cytat(b4rt3kk @ 28.06.2013, 13:15:30 ) *
Ogólnie w zadaniu chodziło o to byś przeliczył, że np. 3600 sec to 1 godzina i 0 minut i 0 sekund, a nie że jest to 1 godzina, 60 minut, 3600 sekund. Rozumiesz? Zadanie jest nieco bardziej utrudnione, może się źle wyraziłem początkowo. No i mógłbyś dorzucić właśnie walidację oraz to żeby nie wyświetlało wyników, jeśli np. lat będzie 0. Może też odmieniać końcówkę, że np. 1 rok, 2 lata, 3 lata, itd. albo 1 sekunda, 2 sekundy, 10 sekund, itd.


Ufff... ale się namęczyłem... google i inne fora baaaardzo pomocne mino, ze nie znalazłem identycznego skryptu łączącego wszystkie Twoje wymagania (czyt. z odmianą słowną).
Ale udało się!
Dużo się także nauczyłem, choćby funkcji floor, ceil i innych rzeczy :-)

Kod poniżej. Chyba wszystko działa.
Proszę o uwagi.

  1. Podaj liczbe sekund<br />
  2. <form action="sekundy.php" method="post">
  3. <input type="text" name="sekundy"><br />
  4. <input type="submit" method="post" value="Wyslij" />
  5. </form>


  1. <?php
  2.  
  3. $sek_w_min = 60;
  4. $sek_w_godz = 60 * $sek_w_min;
  5. $sek_w_dniu = 24 * $sek_w_godz;
  6.  
  7. // dni
  8. $dni = floor($sekundy / $sek_w_dniu);
  9.  
  10. // godziny
  11. $godzinoSekundy = $sekundy % $sek_w_dniu;
  12. $godz = floor($godzinoSekundy / $sek_w_godz);
  13.  
  14. // minuty
  15. $minutoSekundy = $godzinoSekundy % $sek_w_godz;
  16. $min = floor($minutoSekundy / $sek_w_min);
  17.  
  18. // sekundy
  19. $sekundy2 = $minutoSekundy % $sek_w_min;
  20. $sek = ceil($sekundy2);
  21.  
  22.  
  23. function odmiana($sek,$odmiana1,$odmiana234,$odmianainna) {
  24. if($sek == 1)
  25. return $odmiana1;
  26. elseif($sek % 100 >= 10 && $sek % 100 <= 20)
  27. return $odmianainna;
  28. elseif(in_array($sek%10,array(2,3,4)))
  29. return $odmiana234;
  30. return $odmianainna;
  31. }
  32.  
  33. function odmiana2($min,$odmiana1,$odmiana234,$odmianainna) {
  34. if($min == 1)
  35. return $odmiana1;
  36. elseif($min % 100 >= 10 && $min % 100 <= 20)
  37. return $odmianainna;
  38. elseif(in_array($min%10,array(2,3,4)))
  39. return $odmiana234;
  40. return $odmianainna;
  41. }
  42.  
  43. function odmiana3($godz,$odmiana1,$odmiana234,$odmianainna) {
  44. if($godz == 1)
  45. return $odmiana1;
  46. elseif($godz % 100 >= 10 && $godz % 100 <= 20)
  47. return $odmianainna;
  48. elseif(in_array($godz%10,array(2,3,4)))
  49. return $odmiana234;
  50. return $odmianainna;
  51. }
  52.  
  53. function odmiana4($dni,$odmiana1,$odmiana234,$odmianainna) {
  54. if($dni == 1)
  55. return $odmiana1;
  56. elseif($dni % 100 >= 10 && $dni % 100 <= 20)
  57. return $odmianainna;
  58. elseif(in_array($dni%10,array(2,3,4)))
  59. return $odmiana234;
  60. return $odmianainna;
  61. }
  62.  
  63. $odmiana = odmiana($sek,'a','y','');
  64. $odmiana2 = odmiana2($min,'a','y','');
  65. $odmiana3 = odmiana3($godz,'a','y','');
  66. $odmiana4 = odmiana4($dni,'dzien','dni','dni');
  67.  
  68. echo $sekundy." sekund".$odmiana." to ".$dni." ".$odmiana4." ".$godz." godzin".$odmiana3." ".$min." minut".$odmiana2." i ".$sek." sekund".$odmiana;
  69. echo "<BR /><BR /><BR />";
  70.  
  71. ?>




Muszę odpocząć...


Pozdrawiam
Seb.

Cytat(b4rt3kk @ 28.06.2013, 07:48:24 ) *
3. Napisz skrypt, który pozwoli użytkownikowi wprowadzić swoje imię (przed dodaniem sprawdź czy nie zawiera niedozwolonych znaków, jeśli tak wyświetl komunikat i poproś o ponowne wprowadzenie imienia) i gdy użytkownik wejdzie po raz kolejny na stronę (po zamknięciu przeglądarki i ponownym otworzeniu) to zobaczy komunikat 'Witaj imie' oraz dane na swój temat, takie jak adres IP, przeglądarka, strona z której przyszedł. Znajdź optymalny sposób na zapamiętanie wprowadzonego imienia. Użytkownik po kliknięciu będzie mógł usunąć zapamiętanie i dopiero wtedy wprowadzić inne imię.


Witajcie.

Pomęczyłem się strasznie. Walczyłem z ciasteczkami, potem przeszedłem na sesje, logowania, i znów wróciłem na ciasteczka... Masakra - ale powiem jedno dla Przedszkolaków: SUPER NAUKA!!!

Oto mój kod. Pewnie nie o to chodziło, ale działa podobnie. Nie wiem tylko dlaczego, jak zamknę przeglądarkę to bardzo szybko ucieka mi cookie - raz się trzyma, innym razem już go nie ma :-( Może to wina ustawień w przeglądarce? Hm... Mam nadzieję, że nie i że to mój brak wiedzy.

oki, stworzyłem 3 pliki.
imie.html
imie.php
imiezap.php - do zniwelowania sesji.

PLIK imie.html
  1.  
  2.  
  3. <form method="post" action="imie.php">
  4. Podaj swoje imie: <input type="text" name="imie">
  5. <input type="submit" value="ok">
  6. </form>
  7.  
  8. </body>
  9. </html>
  10.  


PLIK imie.php
  1. <?php
  2. setcookie("imie",($_POST['imie']), time()+36000);
  3.  
  4. $imie=$_POST['imie'];
  5. if (preg_match('@^[A-Z][a-z]{2,15}$@',$imie)){
  6.  
  7. echo "<BR />Witaj ".$_COOKIE['imie']."<BR />";
  8. echo "<BR />Twoj adres IP to: ".$_SERVER['REMOTE_ADDR']."<BR />";
  9. echo "Twoja przegladarka to: ".$_SERVER['HTTP_USER_AGENT']."<BR />";
  10. echo "Zawitales do nas z: ".$_SERVER['HTTP_REFERER']."<BR /><BR /><BR /><BR />";
  11.  
  12. echo '<a href="imiezap.php">Zapomnij mnie</a>';
  13.  
  14.  
  15. }
  16.  
  17. else {
  18. echo("Wpisales znaki niedozwolone."."<BR>"."Sprobuj jeszcze raz"."<BR>");
  19. setcookie("imie",($_POST['imie']), time()-360000);
  20. echo '<a href="imie.html">Jeszcze raz</a>';
  21. }
  22. ?>


PLIK imiezap.php
  1. <?php
  2. setcookie("imie",($_POST['imie']), time()-360000);
  3. @header("Location: imie.html");
  4. ?>


Co o tym sądzicie?
Chyba nieźle zakręciłem, co?
Natomiast znów się wieeele nauczyłem, wiem jak niszczyć cookies, przeładować szybko stronę itp (IMG:style_emoticons/default/smile.gif)


Proszę o komentarze.

Pozdrawiam.
Seb.

Cytat(b4rt3kk @ 28.06.2013, 07:48:24 ) *
Tyle, że baza danych to podstawa, na samych plikach bardziej zaawansowanej strony nie postawisz. Nie mówię, że to niemożliwe, ale czasochłonne by było.

Zgadzam się. Jednak patrząc z drugiej strony, strasznie wkurzają mnie "programiści php", którzy trochę poczytali o Mysql, umieją edytować bazę za pomocą phpmyadmin i uważają się za SUPER programistów nie mając zielonego pojęcia o podstawach php (np. tworzenie funkcji). Dlatego najpierw wziąłem się za dokładną naukę strukturalnego php a dopiero potem ruszę dalej (choć mysql nieco łapię)
Cytat(b4rt3kk @ 28.06.2013, 07:48:24 ) *
1. Napisz skrypt (klasę) pozwalający użytkownikowi wrzucać obrazki na stronę oraz który wyświetla wszystkie wrzucone obrazki.

Najpierw stworzyłem poprzez funkcję potem zobaczyłem, że ma być poprzez klasę. No cóż... Wrzucam funkcję - przeanalizujcie.

  1.  
  2. <form enctype="multipart/form-data" action="obrazki.php" method="POST">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  4. Wybierz plik do wyslania:<br /> <input name="userfile" type="file" />
  5. <input type="submit" value="Wyslij" />
  6. </form>
  7.  
  8. </body>
  9. </html>


  1. <?php
  2.  
  3. $location = 'obrazki/' . basename($_FILES['userfile']['name']);
  4.  
  5. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) {
  6. echo "Obrazek zostal zaladowany :-)";
  7. } else {
  8. echo "Blad w zaladowaniu obrazka";
  9. }
  10. ?>
  11.  
  12. <html>
  13. <body>
  14. <br />Jesli chcesz to zaladuj kolejne obrazki:<BR /><BR />
  15. <form enctype="multipart/form-data" action="obrazki.php" method="POST">
  16. <input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
  17. Wybierz plik do wyslania:<br /> <input name="userfile" type="file" />
  18. <input type="submit" value="Wyslij" />
  19. </form>
  20. <BR /><BR /><BR />
  21. </body>
  22. </html>
  23.  
  24. <?php
  25. function obrazki($dir)
  26. {
  27. $tab=array();
  28. $handle=opendir($dir);
  29.  
  30. while ($file = readdir($handle)){
  31. if($file=='.'||$file=='..' || is_dir($dirname.$file)) continue;
  32. array_push($tab,$file);}
  33. closedir($handle);
  34. return $tab;
  35. }
  36.  
  37. //wyswielanie obrazka
  38. $tab = obrazki('obrazki/');
  39. foreach($tab as $value)
  40. {
  41. echo '<img src="obrazki/'.$value.'">';
  42. }
  43. ?>


Pozdrawiam.
Seb.

Ten post edytował sebus79 28.06.2013, 16:49:08
Go to the top of the page
+Quote Post

Posty w temacie
- sebus79   [PHP] ćwiczenia   28.06.2013, 02:13:37
- - b4rt3kk   Tyle, że baza danych to podstawa, na samych plikac...   28.06.2013, 06:48:24
|- - sebus79   Witajcie. Na początku chciałem bardzo podziękować...   28.06.2013, 10:25:52
- - gitbejbe   dobrym ćwiczeniem jest napisanie skryptu logowania...   28.06.2013, 07:12:39
- - Damonsson   Jak już robisz śmietnik w kodzie, to staraj się na...   28.06.2013, 11:11:25
|- - sebus79   Cytat(Damonsson @ 28.06.2013, 12:11:2...   28.06.2013, 11:17:35
- - Damonsson   1. Jeden plik: [HTML] pobierz, plaintext <html...   28.06.2013, 11:28:46
|- - sebus79   Cytat(Damonsson @ 28.06.2013, 12:28:4...   28.06.2013, 11:33:54
|- - b4rt3kk   Cytat(sebus79 @ 28.06.2013, 12:33:54 ...   28.06.2013, 12:15:30
|- - sebus79   Cytat(b4rt3kk @ 28.06.2013, 13:15:30 ...   28.06.2013, 12:35:09
||- - b4rt3kk   Cytat(sebus79 @ 28.06.2013, 13:35:09 ...   28.06.2013, 13:23:25
|- - sebus79   Cytat(b4rt3kk @ 28.06.2013, 13:15:30 ...   28.06.2013, 23:49:13
- - Damonsson   Walidacja danych wejściowych, może.   28.06.2013, 11:43:42
- - Stelivo   Może nie na temat ale co to są walidacje ? (Prosto...   28.06.2013, 13:42:57
- - porywacz   Raczej nie o to chodzilo z tym zapamietywaniem imi...   29.06.2013, 09:05:15
|- - sebus79   Cytat(porywacz @ 29.06.2013, 10:05:15...   29.06.2013, 11:27:31
|- - porywacz   Cytat(sebus79 @ 29.06.2013, 12:27:31 ...   29.06.2013, 12:46:47
|- - Pjotrek80   Cytat(sebus79 @ 29.06.2013, 12:27:31 ...   29.06.2013, 12:54:21
- - c1chy   PHP samo w sobie nie wymaga znajomości żadnej bazy...   29.06.2013, 13:06:40


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

 



RSS Aktualny czas: 1.01.2026 - 09:11