Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Zadanie zaliczeniowe przedmiot, Problem z operatorami logicznymi oraz inne błędy
Sinolop
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.02.2014
Skąd: G

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


Witam Serdecznie,
Dostałem zadanie zaliczeniowe na przedmiot Aplikacje Internetowe i co tutaj dużo mówić, kompletnię sobie z nim nie radzę.

Jego treść
Cytat
Wykonaj prosty skryptu z logowaniem dla 2 użytkowników: admin i użytkownik (admin pełne uprawnienia, user 'widzi' tylko swoje zadania).

Skrypt ma 2 zadania:

a. Dodawanie do bazy danych zadań do wykonania:

1. Dodaj zadanie
pola: tytuł zadania (najlepiej z podpowiedzią, czyli dopisane, sklep, strona www, itp), treść pełna, termin (kalendarz), kto wykonuje (admin lub user do wyboru), kwota, % zrobionego zadania,

2. Wyświetl zadania - pokazuje zaraz po zalogowaniu się tabelka z zadaniami wg daty dodania z sortowaniem wg daty zakończenia oraz zadania niedokończone zawsze na górze.
Możliwe opcje: edycja, usunięcie, zakończenie zadania (daje 100%), przycisk: dodaj 1 dzień, dodaj 10%.

Całość najlepiej na PHP 5.4 i wyższym, mile widzialny system Smarty (http://www.smarty.net/)


  1. <?php session_start();
  2. require_once('db.php');
  3. error_reporting(E_ALL ^ E_NOTICE);
  4. ?>
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <link href="css/style.css" rel="stylesheet" type="text/css" />
  9. <title></title>
  10. <meta name="description" content="" />
  11. <meta name="keywords" content="" />
  12. </head>
  13.  
  14. <body>
  15.  
  16. <?php if ($_SESSION['auth'] == TRUE) {
  17. echo "Witaj $_SESSION[user] <br />" ;
  18.  
  19.  
  20. }
  21. else {
  22. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  23. echo '<p style="padding-top:10px;color:white";><strong>Próba nieautoryzowanego dostępu...</strong><br />trwa przenoszenie do formularza logowania</p>';
  24. }
  25.  
  26. $data = date;
  27. $tytul = mysql_real_escape_string(htmlspecialchars($_POST['tytul']));
  28. $tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
  29. $uzytkownik = mysql_real_escape_string(htmlspecialchars($_POST['uzytkownik']));
  30. $kwota = mysql_real_escape_string(htmlspecialchars($_POST['kwota']));
  31.  
  32. if(isset($_POST['submit']))
  33. {
  34. if(!$tytul) || (!$tresc ) || (!$tresc ) || (!$uzytkownik) || (!$kwota)
  35. {
  36. echo "Nazwa lub treść są puste";
  37. }
  38. else{
  39. $zapytanie = mysql_query("INSERT INTO `zadania` (`id_zad`, `tytul_zadania`, `tresc_pelna`, `termin`, `użytkownik`, `kwota`) VALUES ('', '$tytul', '$tresc', '$data', '$uzytkownik', '$kwota' )");
  40. }
  41.  
  42. if($zapytanie)
  43. {
  44. echo "zadanie dodane poprawnie ";
  45. }else{
  46. echo "zadanie nie zostalo dodane ";
  47. }
  48. }
  49. ?>
  50.  
  51. <form action="" method="post">
  52. <input type="text" name="tytul" value="tytul" /> <br />
  53. <input type="text" name="tresc" value="tresc" /> <br />
  54. <input type="text" name="uzytkownik" value="uzytkownik" /> <br />
  55. <input type="text" name="kwota" value="kwota" /> <br />
  56.  
  57. <input type="submit" name="submit" value="Dodaj" />
  58. </form>
  59.  
  60.  
  61. </body>
  62.  
  63. </html>

Przy próbie dodania nowego zadania mam błąd Parse error: syntax error, unexpected '||' (T_BOOLEAN_OR) in C:\xampp\htdocs\zadanie\dodaj.php on line 42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sinolop
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.02.2014
Skąd: G

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


Rozumiem że edytuj , usuń mają być w osobnych plikach i ma być odnośnik do nich? Przykładowo edytuj
  1. $zapytanie = mysql_query("UPDATE `zadania` SET `tytul_zadania`= '$tytul', `tresc_pelna`= '$tresc', `termin`= '$termin', `użytkownik`= '$uzytkownik', `kwota`= '$kwota' WHERE id_zad='$id'");
do tego formularz który aktualizuje dane, a jak zrobić przycisk który dodaje procent wykonania oraz dzień?

Mam również pytanie co do uprawnień a mianowicie w treści jest
Cytat
(admin pełne uprawnienia, user 'widzi' tylko swoje zadania
jak mogę to zrealizować? Napisałem tak
  1. <?php session_start();
  2. require_once('db.php');
  3. ?>
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <link href="css/style.css" rel="stylesheet" type="text/css" />
  8. <title></title>
  9. <meta name="description" content="" />
  10. <meta name="keywords" content="" />
  11. </head>
  12.  
  13. <body>
  14.  
  15. <?php
  16. /* jeżeli nie wypełniono formularza - to znaczy nie istnieje zmienna login, hasło i sesja auth
  17.   * to wyświetl formularz logowania
  18.   */
  19. if (!isset($_POST['login']) && !isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
  20. ?>
  21.  
  22. <form name="form-logowanie" action="index.php" method="post">
  23. Login: <input type="text" name="login" /><br />
  24. Hasło: <input type="password" name="password" />
  25. <input type="submit" name="zaloguj" value="Zaloguj" />
  26. </form>
  27.  
  28. <?php
  29. }
  30. /* jeżeli istnieje zmienna login oraz password i sesja z autoryzacją użytkownika jest FALSE to wykonaj
  31.   * skrypt logowania
  32.   */
  33. elseif (isset($_POST['login']) && isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
  34.  
  35. // jeżeli pole z loginem i hasłem nie jest puste
  36. if (!empty($_POST['login']) && !empty($_POST['password'])) {
  37.  
  38. // dodaje znaki unikowe dla potrzeb poleceń SQL
  39. $login = mysql_real_escape_string($_POST['login']);
  40. $password = mysql_real_escape_string($_POST['password']);
  41.  
  42. // szyfruję wpisane hasło za pomocą funkcji md5()
  43. $password = md5($password);
  44.  
  45. /* zapytanie do bazy danych
  46.   * mysql_num_rows - sprawdzam ile wierszy odpowiada zapytaniu mysql_query
  47.   * mysql_query - pobierz wszystkie dane z tabeli user gdzie login i hasło odpowiadają wpisanym danym
  48.   */
  49. $sql = mysql_num_rows(mysql_query("SELECT * FROM `user` WHERE `login` = '$login' AND `password` = '$password'"));
  50.  
  51. // jeżeli powyższe zapytanie zwraca 1, to znaczy, że dane zostały wpisane poprawnie i rejestruję sesję
  52. if ($sql == 1) {
  53.  
  54. // zmienne sesysje user (z loginem zalogowanego użytkownika) oraz sesja autoryzacyjna ustawiona na TRUE
  55. $_SESSION['user'] = $login;
  56. $_SESSION['auth'] = TRUE;
  57.  
  58. // przekierwuję użytkownika na stronę z ukrytymi informacjami
  59. echo '<meta http-equiv="refresh" content="1; URL=hide.php">';
  60. echo '<p style="padding-top:10px";><strong>Proszę czekać...</strong><br />trwa logowanie i wczytywanie danych</p>';
  61. }
  62.  
  63. // jeżeli zapytanie nie zwróci 1, to wyświetlam komunikat o błędzie podczas logowania
  64. else {
  65. echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />';
  66. echo '<a href="index.php">Wróć do formularza</a></p>';
  67. }
  68. }
  69.  
  70. // jeżeli pole login lub hasło nie zostało uzupełnione wyświetlam błąd
  71. else {
  72. echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />';
  73. echo '<a href="index.php">Wróć do formularza</a></p>';
  74. }
  75. }
  76.  
  77. // jeżeli sesja auth jest TRUE to przekieruj na ukrytą podstronę
  78. elseif ($_SESSION['auth'] == TRUE && !isset($_GET['logout'])) {
  79. echo '<meta http-equiv="refresh" content="1; URL=hide.php">';
  80. echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />trwa wczytywanie danych</p>';
  81. }
  82.  
  83. // wyloguj się
  84. elseif ($_SESSION['auth'] == TRUE && isset($_GET['logout'])) {
  85. $_SESSION['user'] = '';
  86. $_SESSION['auth'] = FALSE;
  87. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  88. echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />trwa wylogowywanie</p>';
  89. }
  90. ?>
  91.  
  92. </body>
  93.  
  94. </html>

Po zalogowaniu admin przekierowany jest na stronę hide.php w której ma prawa dodawać,usuwać,edytować zadania a user ma tylko widzieć zadania, jak to zrealizować w tym przypadku ?

Ten post edytował Sinolop 19.02.2014, 19:14:56
Go to the top of the page
+Quote Post

Posty w temacie
- Sinolop   [PHP][MYSQL] Zadanie zaliczeniowe przedmiot   18.02.2014, 22:17:55
- - gitbejbe   jeśli masz problem z takimi rzeczami to nie wróżę ...   18.02.2014, 22:30:13
- - jarek0203   [PHP] pobierz, plaintext if(!$tytul) || ...   18.02.2014, 22:31:38
- - kujol   To zastąp: [PHP] pobierz, plaintext if (! $t...   18.02.2014, 22:34:18
- - gitbejbe   @kujol To żeś też dorzucił do pieca...   18.02.2014, 22:41:06
- - kujol   Nie pójdzie to? z isset() działa normalnie   18.02.2014, 22:47:10
- - Kshyhoo   Że też nie widziałem tego wcześniej. Nie odrabiamy...   18.02.2014, 23:02:26
- - com   Kshyhoo takie pytanie od kiedy && to lub?   18.02.2014, 23:36:48
- - Kshyhoo   A ja wkleiłem &&, poprawiam Co nie zmieni...   18.02.2014, 23:55:59
- - com   a kto tu mówi o zmianie zasady użycia? CytatPrzy...   19.02.2014, 00:34:31
- - Sinolop   Dzięki za szybką odpowiedź,Kshyhoo nie chcę żeby k...   19.02.2014, 16:53:06
|- - mar1aczi   Cytat(Sinolop @ 19.02.2014, 16:53:06 ...   19.02.2014, 17:01:24
- - emillo91   Cytat(Sinolop @ 18.02.2014, 22:17:55 ...   19.02.2014, 17:45:33
- - Sinolop   Rozumiem że edytuj , usuń mają być w osobnych plik...   19.02.2014, 21:12:10
- - mar1aczi   Najprościej: w tabeli users dajesz kolumnę privila...   19.02.2014, 22:26:16
- - Sinolop   Z prawami dostępu zrobiłem tak że przygotowałem 2 ...   19.02.2014, 23:23:59
- - KR2615   Cytat(mar1aczi @ 19.02.2014, 22:26:16...   20.02.2014, 09:23:35
- - Sinolop   Niezabardzo rozumiem jak usunięcie wykonać za pomo...   20.02.2014, 13:49:01
- - Kshyhoo   W linku misi być zawarta fraza, np.: edytuj=10, gd...   20.02.2014, 13:58:24
- - c4ash   Cytat(Sinolop @ 20.02.2014, 13:49:01 ...   20.02.2014, 14:22:21


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: 9.10.2025 - 01:03