Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Linki do usuwania tylko po zalogowaniu
Forum PHP.pl > Forum > Przedszkole
Strarus
cześć:)
Chciałbym zrobić obok treści linki do ich usuwania. Oczywiście wszystko opiera się o MySQL, a linki gdy są osadzone na stałe działają. Jednak nie jest praktyczne, aby każdy mógł wszystko usuwać haha.gif Dlatego chciałbym zrobić coś takiego, że tylko po zalogowaniu mogę usuwać linki, bo tylko wtedy pokazuje się link do usuwania. Próbowałem na takim kodzie:
  1. <?php
  2.  
  3.  
  4. if(isSet($_SESSION['zalogowany'])) {
  5.  
  6.   $usun =  '<a href="comment.php?delete=' . $id . '">Usuń ten wpis</a>';
  7.  
  8.  }
  9. else {
  10.   $usun = '<a class="strona" href="login.php">Zaloguj</a>';
  11. }
  12.  ?>


I w tabeli wyświetlającej wpisy dawałem zmienną $usun. Niestety nic się nie pokazywało (i jak byłem zalogowany i nie). Może ktoś ma inny pomysł?
webdice
W tabeli musisz dać:

  1. <?php
  2. echo $usun;
  3. ?>
Strarus
ale ta tabela jest już w echo...
  1. <?php
  2. echo '<table>..........</table><p>' . $usun . '</p>';
  3. ?>


i mi coś nie działa...
webdice
Pokaż cały kod.
Strarus
  1. <?php
  2.  
  3. if(isSet($_SESSION['zalogowany'])) {
  4.  
  5.   $usun =  '<a href="challenge.php?delete=' . $id . '">Usuń</a>';
  6.  
  7.  }
  8. else {
  9.   $usun = '<a class="strona" href="login.php">Zaloguj</a>';
  10. }
  11.  
  12.  
  13.  
  14. if (isset($_POST['tekst'])) {
  15.     $text = strip_tags($_POST['tekst']);
  16.     $ip = $_POST['ip'];
  17.     $ksywa = strip_tags($_POST['ksywa']);
  18.     $www = strip_tags($_POST['www']);
  19.     $sql = "INSERT INTO kawal SET
  20.         tekst='$text',
  21.         www='$www',
  22.         ip='$ip',
  23.         ksywa='$ksywa',
  24.         data=CURDATE()";
  25.     if (@mysql_query($sql)) {
  26.       echo '<p>Twój tekst został dodany.</p>';
  27.     } else {
  28.       echo '<p>Bład podczas dodawania tekstu: ' .
  29.           mysql_error() . '</p>';
  30.     }
  31.   }
  32.  
  33.  
  34.  
  35. if (isset($_GET['delete'])) {
  36.     $id = $_GET['delete'];
  37.     $sql = "DELETE FROM test
  38.         WHERE id=$id";
  39.     if (@mysql_query($sql)) {
  40.       echo '<p>Tekst został usunięty.</p>';
  41.     } else {
  42.       echo '<p>Bład podczas usuwania: ' .
  43.           mysql_error() . '</p>';
  44.     }
  45.   }
  46.  
  47.  
  48.  
  49.  
  50. while ($row = mysql_fetch_array($result)) {
  51.     $date = $row['data'];
  52.     $ksywa = $row['ksywa'];
  53.     $ip = $row['ip'];
  54.     $www = $row['www'];
  55.     $id = $row['id'];
  56.     $text = $row['tekst'];
  57.     $explode = explode(".", $ip);
  58.     $ip = $explode[0].".".$explode[1].".".$explode[2].".xxx";
  59.      echo ' <table class="comment3">
  60. <tr>
  61. <td><font class="nick"><b>Dodane przez: </b>' . $ksywa . '</font></font><font class="date"><b>Dnia: </b><i>' . $date . '</i></font></td>
  62. </tr>
  63. </table>
  64. <table class="coment">
  65. <tr>
  66. <td><font class="comments_news"><b>Komentarz: </b>' . $text . '</font></td>
  67. </tr>
  68. </table>
  69. <table class="coment2">
  70. <tr>
  71. <td><font class="www"><b>www: </b><a href=" . $www . ">' . $www . '</a></font><font class="ip"><b>IP: </b>' . $ip . '</font></td>
  72. </tr>
  73. </table><br/>' . $usun . '
  74. ';
  75.   }
  76. ?>


Pominąłem logowanie itp.
nospor
zacznij uzywac wlasciwe bbcode

DO $usun przypisujesz $id, ale te $id pojawiac ci sie bedzie dopiero później w petli. No tak nie mozna smile.gif

edit: i nie pisz "cos nie dziala" tylko napisz co konkretnie nie dziala....
Strarus
Ok. przeniosłem to isset tuż pod $id = ...
Niestety gdy się zaloguję, nadal jest zaloguj. Jak dałem znak ! na początek isset'a to pokazuje się usuń kawał nawet jak nie jestem zalogowany. zmieniałem wartości else i true... Nie działa poprawnie sad.gif

ref
nospor
no to najwyraźniej $_SESSION['zalogowany'] jest nieustawione. czyli problem masz w sesji smile.gif
Strarus
Skrypt logowania:
  1. <?php
  2.  
  3.  function checkPass()
  4.  {
  5.    $haslo = $_POST["haslo"];
  6.    if($haslo <> "passwd"){
  7.      return false;
  8.    }
  9.    else{
  10.      return true;
  11.    }
  12.  }
  13.  
  14.  if(isSet($_SESSION['zalogowany'])){
  15.    header("Location: comment.php");
  16.    exit();
  17.  }
  18.  else if(isSet($_POST["haslo"]) && checkPass()){
  19.    $_SESSION['zalogowany'] = true;
  20.    header("Location: comment.php");
  21.    exit();
  22.  }
  23.  ?>

Oczywiście plus formularz. Co jest nie tak?
webdice
~nospor Cię prosił o korzystanie z odpowiedniego bbcode (dla PHP jest to [php][/php]), popraw swoje posty i pamiętaj o tym.
Strarus
spoko, a co z tymi sesjami?? smile.gif co robię nie tak? może jest jakieś lepsze rozwiązanie?
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.