Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Zmienna sesyjna
Forum PHP.pl > Forum > Przedszkole
sokole_oko
Witam !
Chciałbym aby możliwość edycji miał tylko autor czyli dokładnie zalogowana osoba. Przy tm kodzie edytować może każdy
Używam mechanizmu sesji a kody w których występuje błąd prezentuje poniżej.

index.php
  1. <?php
  2. session_register("zalogowany");
  3. $_SESSION['login'] = $_POST['login'];
  4.  
  5. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  6. include("dbinfo.inc.php");
  7. function ShowLogin($komunikat=""){
  8.    echo "$komunikat<br>";
  9.    echo "<form action='index.php' method=post>";
  10.    echo "Login: <input type=text name=login><br>";
  11.    echo "Hasło: <input type=password name=haslo><br>";
  12.    echo "<input type=submit value='Zaloguj!'>";
  13.    echo "</form>";
  14.    echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  15. }
  16. ?>
  17. <!DOCTYPE html
  18.    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  19.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  20. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  21. <head>
  22.    <meta http-equiv="Content-type" content="application/xhtml+xml; charset=windows-1250" />
  23.    <title>Strona główna</title>
  24. </head>
  25. <body>
  26. <?php
  27. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  28. if($_SESSION["zalogowany"]!=1){
  29.    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  30.        if(mysql_num_rows(mysql_query("select * from user where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".htmlspecialchars(md5($_POST["haslo"]))."'"))){
  31.            echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  32.            $_SESSION["zalogowany"]=1;
  33.            }
  34.        else echo ShowLogin("Podano złe dane!!!");
  35.        }
  36.    else ShowLogin();
  37. }
  38. else{
  39. ?>
  40. Zalogowałeś się pomyślnie! Możesz zacząć wprowadzać dane używając formularza<br />
  41. <a href="formularz.php">wprowadzaj</a>
  42. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>
  43. <?php
  44. }
  45. ?>
  46. </body>
  47. </html>
  48. <?php mysql_close(); ?>


pokazdane.php tutaj prezentuje dane z bazy mysql

  1. <?php require("sprawdz.php"); ?>
  2. <?php
  3. include("dbinfo.inc.php");
  4. $query="SELECT id, tytul, ob, tsp, autor FROM siedlisko";
  5. $result = mysql_query($query);
  6. $num=mysql_numrows($result);
  7. if ($num > 0)
  8. {
  9.  echo ' <table align="center" cellspacing="10" callpadding="10">
  10.  <tr>
  11.  <td align="center"><b>Id </b></td>
  12.  <td align="center"><b>Tytul </b></td>
  13.  <td align="center"><b>Obszar </b></td>
  14.  <td align="center"><b>Typ siedliska </b></td>
  15.  <td align="center"><b>Autor </b></td>
  16.  </tr> ';
  17.  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  18.  {
  19.  echo ' <tr>
  20.  <td align="center"> ' . $row['id'] . ' </td>
  21.  <td align="center"> ' . $row['tytul'] . ' </td>
  22.  <td align="center"> ' . $row['ob'] . ' </td>
  23.  <td align="center"> ' . $row['tsp'] . ' </td>
  24.  <td align="center"> ' . $row['autor'] . ' </td>
  25.  <td align="center"> <a href="aktualizuj.php?id=' . $row['id'] .' "target="_blank">Edytuj </a> </td>
  26.  <td align="center"> <a href="usun.php?id=' . $row['id'] .' "target="_blank">Usun </a> </td>
  27.  </tr> ';
  28.  }
  29.  echo '</table>';
  30.  mysql_free_result ($result);
  31. } else
  32.  {
  33.  echo '<p class="error"> Brak danych.</p>';
  34.  }
  35. ?>


i aktualizuj.php

  1. <?php require("sprawdz.php"); ?>
  2. <?php
  3. if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) {
  4. $id = $_GET['id'];
  5. } elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) {
  6. $id = $_POST['id'];
  7. } else {
  8. echo '<h1> BLAD</h1>
  9. <p class="error"> Blad dostepu do strony. </p>';
  10. exit();
  11. }
  12.  
  13. include("dbinfo.inc.php");
  14.  
  15. if (isset($_POST['submitted'])) {
  16. if (($_POST['sure'] == 'Yes') && ($_SESSION['login'] = "'.$autor.'"])) {
  17. $query='UPDATE `siedlisko` SET `ob`="'.$ob.'",`tsp`="'.$tsp.'",`autor`="'.$autor.'" WHERE `id`="'.$id.'"';
  18. $result = @mysql_query ($query);
  19. if (mysql_affected_rows() == 1)
  20. {
  21.  echo '<h1 id="mainhead"> Aktualizuj Dane</h1> <p> Dane zostały Zaktualizowane.</p><br /><br /></p>';
  22. } else
  23.  {
  24.  echo '<h1 id="mainhead"> Błąd systemu</h1>
  25.  <p class="error"> Dane nie zostały zaktualizowane z powodu błedu systemu</p>';
  26.  }
  27. } else {
  28.  echo '<h1 id="mainhead"> Aktualizuj Dane</h1><p>Dane NIE zostały zaktualizowane.</p><p><br /></p>';
  29.  }
  30. } else {
  31. $query = "SELECT * FROM siedlisko WHERE id=$id";
  32. $result = @mysql_query ($query);
  33. if (mysql_num_rows($result) == 1) {
  34. $row = mysql_fetch_array ($result, MYSQL_NUM);
  35. <form action="aktualizuj.php" method="post">
  36. <h3> ID  ' . $row[0] . '</h3>
  37. <input type="text" name="tytul" value="' . $row[1] . '"><br />
  38. <input type="text" name="ob" value="' . $row[2] . '"><br />
  39. <input type="text" name="tsp" value="' . $row[3] . '"><br />
  40. <input type="text" name="autor" value="' . $row[4] . '" readonly="readonly"><br />
  41. <p>Czy na pewno chcesz zaktualizować dane?<br />
  42. <input type="radio" name="sure" value="Yes" /> TAK
  43. <input type="radio" name="sure" value="No" checked="checked" /> NIE</p>
  44. <p><input type="submit" name="submit" value="Aktualizuj" /> </p>
  45. <input type="hidden" name="submitted" value="TRUE" />
  46. <input type="hidden" name="id" value="' . $id .'"/>
  47. </form>';
  48. } else {
  49. echo '<h1 id="mainhead">Bład</h1><p class="error">Błąd podczas dostępu do strony.</p><p><br /><br /></p>';
  50.  }
  51. }
  52. ?>


a sprawdz.php wygląda następująca
  1. <?php
  2. ?>
  3. <!DOCTYPE html
  4.    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  7. <head>
  8.    <title>podstrona</title>
  9. </head>
  10. <body>
  11. <?php
  12. if($_SESSION["zalogowany"]==0){echo "nie masz dostępu do tej części witryny. <a href='index.php'>Zaloguj się</a></body></html>;"; exit();}
  13. ?>
Fifi209
Cytat(sokole_oko @ 10.07.2009, 09:56:22 ) *
Witam !
Chciałbym aby możliwość edycji miał tylko autor czyli dokładnie zalogowana osoba. Używam mechanizmu sesji a kody w których występuje błąd prezentuje poniżej.


Nie napisałeś nawet jaki to błąd. winksmiley.jpg
lewy87r
kod w miare ladnie sformatowany ;] hehe ale gdzie ten blad ? napisz o co konkretnie chodzi ;] a jak nie napiszesz to chyba pojde herbatke sobie zaparzyc ;]
sokole_oko
Więc tak.
Loguje się jako xxx. Następnie wprowadzam jakieś dane i w autora wpisuje również xxx wyświetlam dane i w kolumnie autor jest wpisany xxx. Wylogowuje się i loguje się jako yyy przechodzę do wyświetlania a potem do edycji zmieniam dane i daje aktualizuj.Dane aktualizują się a tego właśnie chciałbym uniknąć dlatego sprwdzanie

  1. <?php
  2. if (isset($_POST['submitted'])) {
  3. if (($_POST['sure'] == 'Yes') && ($_SESSION['login'] = "'.$autor.'"])) {
  4. $query='UPDATE `siedlisko` SET `ob`="'.$ob.'",`tsp`="'.$tsp.'",`autor`="'.$autor.'" WHERE `id`="'.$id.'"';
  5. $result = @mysql_query ($query);
  6. ?>


Coś źle sformatowałem tylko gdzie tkwi błąd ?
lewy87r
heh czytalem co napisales 5razy ale juz wiem o co chodzi ;]

  1. <?php
  2. if (isset($_POST['submitted'])) {
  3. if (($_POST['sure'] == 'Yes') && ($_SESSION['login'] = "'.$autor.'"])) {
  4. $query='UPDATE `siedlisko` SET `ob`="'.$ob.'",`tsp`="'.$tsp.'",`autor`="'.$autor.'" WHERE `id`="'.$id.'"';
  5. $result = @mysql_query ($query);
  6. ?>


rozumiem ze zmienna $autor jest pobierana wczesniej z zapytania ;] i posiada wartosc autora ;]

linijka:
  1. <?php
  2. ... ($_SESSION['login'] = "'.$autor.'"]) ...
  3. ?>

zawsze daje true ;]
bo jest jedno "="
zmien to na:

  1. <?php
  2. .. ($_SESSION['login'] == $autor) ..
  3. ?>


dziwnie dajesz znaki ' i " zupelnie niepotrzebnie i momentami zle ;]
pamietaj że w php:
  1. <?php
  2. $zmienna = 'tekst ze zmiennej';
  3. echo '$zmienna'; // $zmienna
  4. echo $zmienna; // tekst ze zmiennej
  5. echo "$zmienna"; // tekst ze zmiennej
  6. ?>


ale jak dziala to znaczy ze jest ok wszystko ;]
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-2025 Invision Power Services, Inc.