Witam,
Tworzę w swoim skrypcie możliwość modyfikowania opcji dla konkretnie wybranej rzeczy.
Skrypt wygląda tak:
<?php
include "header.php";
include "sesja.php";
$owner = $pokaz[ownerid];
// sprawdzenie czy mamy dostęp do celu
if ($stat[id] != $owner){
print "<br><br><center><p><h2>Nie możesz wchodzić do ustawień nie swoich celów.</h2></p><p><a href=cele.php>wróć do swoich celów</a></p><center>"; }else{
?>
<body>
<!-- start header -->
<div id="header">
<form id=search method=post action=logout.php?action=logout>
<fieldset>
<legend>Search</legend>
<input id="searchsubmit" type="submit" value="Wyloguj" />
</fieldset>
</form>
<h1><a href="#">Bądź<span>Lepszy</span></a></h1>
</div>
<!-- end header -->
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h2 class="title">Ustawienia dla celu
<?php print"$pokaz[nazwa]"; ?></h2>
<p class="meta"><small></small></p>
<div class="entry">
<form method=post action=ustawienia.php?action=zmiana>
<ul class="form">
<?php
print "<input type=\"hidden\" name=\"owner\" value=\"$owner\" /> <input type=\"hidden\" name=\"id\" value=\"$pokaz[id]\" />";
?>
<li><label for="prywatne">Czy cel jest prywatny</label>
<select name="prywatne" multiple="multiple" size="2">
<?php
if ($pokaz[prywatne] == "TAK"){
print"<option selected=\"selected\">Tak</option> <option>Nie</option>";
}else{
print "<option>Tak</option> <option selected=\"selected\">Nie</option>";
}
?>
</select></li>
<li><label for="link">Adres celu publicznego</label><input name="nazwa" type="text" maxlength="20" value="
<?php print"http://www.badzlepszy.pl/$pokaz[nazwalink]/"; ?>"/></li>
<li><label></label><input type="submit" value="Zapisz" class="button" /></li>
</ul>
</form>
<?php
if ($action == "zmiana"){
include("config.php");
if (!$problem){
echo("<br><p><h2>Zmiany zostały zapisane</h2></p>");
}else{
echo("<br><p>Zmiany nie zostały zapisane, popraw błedy.</p>"); }
}
?>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<?php
include "sidebar2.php";
?>
<!-- end sidebar -->
</div>
<!-- end page -->
<?php
include "footer.php";
}
?>
</body>
</html>
Jak napisałem sprawdzenie czy jest się właścicielem celu:
if ($stat[id] != $owner){
...
to, oczywiście zabezpieczenie działa tylko problem w tym, że po wysłaniu formularza zawsze wywala komunikat zabezpieczenia i nie modyfikuje nam ustawień.
podczas
if ($action == "zmiana"){
nie działa nam zmienna $owner przez co wywala błąd i nic się nie zmienia/działa
ale dlaczego tak się dzieje skoro wysyłam zmienna $owner poprzez formularz?