Hejsa derude!
Jeg har et system hvor der er både brugere og administratorer. I systemet kan brugerne og administratorerne oprette en event og herefter redigere den. Systemet bestemmer hvilke events der er den bestemtes brugers, ud fra hans userid som bliver tilføjet til selve eventen når den oprettes.
Jeg ønsker at gøre sådan at alle administratorer kan redigere i alle events og brugerne kun kan redigere i de events de har oprettet.
Min configuration.php fil viser en liste over de events brugeren har oprettet:
<?
session_start();
if(session_is_registered("user") AND ("pass")) {
include("events/inc/cfg.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Oversigt over begivenheder</title>
<link rel="stylesheet" type="text/css" href="../stylesheet/default.css">
</head>
<body>
<?
$get_info = mysql_query("SELECT * FROM events_user WHERE brugernavn = '$_SESSION[user]'") or die(mysql_error());
$show = mysql_fetch_array($get_info);
$q = mysql_query("SELECT * FROM events WHERE userid='$show[id]' ORDER BY id DESC") or die(mysql_error());
if(mysql_num_rows($q)) {
$i = 0;
while($v = mysql_fetch_array($q)) {
if(($i%2)? $color = '#ef0de2': $color = '#0687ed');
$i++;
?>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="15" colspan="2"><b><? echo $v[overskrift]; ?></b></td>
<td rowspan="2" align="right"><img src="<? echo $v[billede]; ?>" width="50" height="30"></span></td>
<td rowspan="2" align="right"> </td>
</tr>
<tr>
<td height="15" colspan="2"><? echo substr($v[text],0,90); ?>...</td>
</tr>
<tr>
<td width="40%" height="20" style="border-bottom: solid <? echo $color;?> 1px">Oprettet af: <? echo $v[forfatter]; ?></td>
<td width="40%" style="border-bottom: solid <? echo $color;?> 1px">Den. <? echo $v[dato]; ?></td>
<td width="20%" height="20" colspan="2" align="right" style="border-bottom: solid <? echo $color;?> 1px"><a href="index.php?side=users_index&menu=edit_event&id=<? echo $v[id]; ?>">Rediger</a> || <a href="index.php?side=users_index&menu=delete_event&id=<? echo $v[id]; ?>">Slet </a></td>
</tr>
</table>
<?
}
} else {
echo "Du har ikke ingen events i vores database.";
}
?>
</body>
</html>
<?
mysql_close();
} else {
echo "Du er ikke logget ind!";
}
?>
Og selve min fil til at redigere events i hedder edit_event.php:
<?
session_start();
if(session_is_registered("user") AND ("pass")) {
include("events/inc/cfg.php");
$get_info = mysql_query("SELECT * FROM events_user WHERE brugernavn = '$_SESSION[user]'") or die(mysql_error());
$show = mysql_fetch_array($get_info);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Rediger begivenhed</title>
<link rel="stylesheet" type="text/css" href="events/stylesheet/default.css">
<link rel="stylesheet" type="text/css" href="../stylesheet/default.css">
<script type="text/javascript">
function chooseEndDate(){
var d = document.getElementById("day");
var m = document.getElementById("month");
var y = document.getElementById("year");
var dato = new Date(y.value,m.value-1,d.value);
if(dato.getFullYear() != +y.value || dato.getMonth()+1 != +m.value || dato.getDate() != d.value){
alert("Ugyldig startdato");
y.selectedIndex = 0;
d.focus();
return false;
}
dato.setDate(+d.value+1);
var eD = document.getElementById("endday");
var eM = document.getElementById("endmonth");
var eY = document.getElementById("endyear");
eD.selectedIndex = dato.getDate()-1;
eM.selectedIndex = dato.getMonth();
eY.selectedIndex = y.selectedIndex - (dato.getYear() == +y.value ? 1 : 0);
}
</script></head>
<body>
<?
if($_GET[id] == "") {
echo("Intet ID.");
} else {
include("events/inc/cfg.php");
$tjek_id = mysql_query("SELECT * FROM events WHERE id LIKE '$_GET[id]'");
if(mysql_num_rows($tjek_id) == "0") {
echo("Der findes ingen begivenhed med dette id!");
} else {
$check_access = mysql_query("SELECT * FROM events WHERE userid = '$show[id]'") or die(mysql_error());
$s = mysql_fetch_array($check_access);
if($show[id] != $s[userid]) {
echo "Du har ikke adgang til denne side!";
} else {
if(isset($_POST['rediger'])) {
$ok=0;
if($_FILES[billede][name]) {
$size = $_FILES[billede][size] / 512;
if($size > 0 && $size < 511) {
$fra = $_FILES[billede][tmp_name];
$fra2 = $_FILES[billede][name];
$tilp = $_FILES[billede][type];
$tiltype = strstr($_FILES[billede][type],"/");
$tiltype = substr($tiltype,1);
if($tiltype == "gif" || $tiltype == "pjpeg" || $tiltype == "x-png") {
$tiltype = str_replace("x-png","png",$tiltype);
$tiltype = str_replace("pjpeg","jpg",$tiltype);
$til = "events/users/events_pics/".time().rand(0000,9979)."-".$fra2;
if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til);
$billede = "$til";
$ok=1;
} else {
copy($fra, $til);
$billede = "$til";
$ok=1;
}
} else {
$fejl[] = "Ulovlig fil-format. Du kan kun uploade GIF, JPG og PNG filer.";
}
} else {
$fejl[] = "Billedet fylder over 500 kb.";
}
unlink($_GET[piclink]);
} else {
$hent_pic = mysql_query("SELECT billede FROM events WHERE id = '$_GET[id]'") or die(mysql_error());
$vis_pic = mysql_fetch_array($hent_pic);
$billede = $vis_pic[billede];
}
if($fejl) {
echo("<b><font color='red'>Fejl:</font></b><br>");
for($i=0;
sizeof($fejl) > $i;
$i++) {
echo("<font color='red'><b>$fejl[$i]</b></font><br>");
}
} else {
if(!get_magic_quotes_gpc()) {
$forfatter = addslashes($_POST[forfatter]);
$overskrift = addslashes($_POST[overskrift]);
$pris = addslashes($_POST[pris]);
$alder = addslashes($_POST[alder]);
$adresse = addslashes($_POST[adresse]);
$postnr = addslashes($_POST[postnr]);
$city = addslashes($_POST[city]);
$beskrivelse = addslashes($_POST[beskrivelse]);
}
$forfatter = htmlspecialchars($_POST[forfatter]);
$overskrift = htmlspecialchars($_POST[overskrift]);
$pris = htmlspecialchars($_POST[pris]);
$alder = htmlspecialchars($_POST[alder]);
$adresse = htmlspecialchars($_POST[adresse]);
$postnr = htmlspecialchars($_POST[postnr]);
$city = htmlspecialchars($_POST[city]);
// Valgt startdato:
$day = $_POST[day];
$month = $_POST[month];
$year = $_POST[year];
// Automatisk slutdato:
$endday = $_POST[endday];
$endmonth = $_POST[endmonth];
$endyear = $_POST[endyear];
$fra_time = $_POST[fra_time];
$fra_minut = $_POST[fra_minut];
$til_time = $_POST[til_time];
$til_minut = $_POST[til_minut];
$beskrivelse = $_POST[beskrivelse];
$kategori = $_POST[kategori];
$date = date('Y-m-d');
mysql_query("UPDATE events SET date = '$year-$month-$day', kategori = '$kategori', startdate = '$year-$month-$day', enddate = '$endyear-$endmonth-$endday', forfatter = '$forfatter', overskrift = '$overskrift', pris = '$pris', alder = '$alder', adresse = '$adresse', postnr = '$postnr', city = '$city', fra_time = '$fra_time', fra_minut = '$fra_minut', til_time = '$til_time', til_minut = '$til_minut', text = '$beskrivelse', billede = '$billede' WHERE id = '$_GET[id]'") or die(mysql_error());
echo "<font color='#ef0de2'>Begivenheden blev redigeret!</font>";
}
}
if($fejl || !$_POST['rediger']) {
$update = mysql_query("SELECT * FROM events WHERE id='$_GET[id]'") or die(mysql_error());
$show = mysql_fetch_array($update);
?>
<table width="100%">
<tr>
<td height="14" align="left" valign="top" style="border-bottom: solid #FFFFFF 1px"><strong>Redigér event</strong></td>
</tr>
<tr>
<td height="14" align="left" valign="top"><font color="#E30000"><b>HUSK:</b></font> Opdater altid start og
slut datoen! </td>
</tr>
</table>
<form action="index.php?side=users_index&menu=edit_event&id=<? echo $show[id]; ?>&piclink=<? echo $show[billede]; ?>" method="POST" enctype="multipart/form-data">
<table border="0" width="100%">
<tr>
<td width="222">Forfatter:</td>
<td width="1009"><input name="forfatter" type="text" class="tekstboks" value="<? echo $show[forfatter]; ?>" size="29"></td>
</tr>
<tr>
<td width="222">Overskrift:</td>
<td width="1009"><input name="overskrift" type="text" class="tekstboks" value="<? echo $show[overskrift]; ?>" size="29"></td>
</tr>
<tr>
<td width="222">Entrépris:</td>
<td width="1009">
<input name="pris" type="text" class="tekstboks" value="<? if($_GET[pris] == "0") { echo ""; } else { echo $show[pris]; } ?>" size="2">
(Lad feltet forblive tomt, hvis der er gratis entré)</td>
</tr>
<tr>
<td width="222">Aldersgrænse:</td>
<td width="1009"><input name="alder" type="text" class="tekstboks" value="<? if($_GET[alder] == "0") { echo ""; } else { echo $show[alder]; } ?>" size="2">
(Lad feltet
forblive tomt, hvis der ingen aldersgrænse er.)</td>
</tr>
<tr>
<td width="222">Start dato:</td>
<td width="1009">
<select name="day" class="tekstboks" id="day">
<?
for($i=1; $i<32; $i++) {
?>
<option value='<? echo $i; ?>'><? echo $i; ?></option>
<?
}
?>
</select>
<select name="month" class="tekstboks" id="month">
<option value="1">Januar</option>
<option value="2">Februar</option>
<option value="3">Marts</option>
<option value="4">April</option>
<option value="5">Maj</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="year" size="1" class="tekstboks" id="year" onChange="chooseEndDate();">
<option>--Vælg år--</option>
<?
for($i = (date('Y')-0);$i <= (date('Y')+2); $i++) {
?>
<option value='<? echo $i; ?>'><? echo $i; ?></option>
<?
}
?>
</select> </td>
</tr>
<tr>
<td width="222">Slut dato:</td>
<td width="1009">
<select name="endday" class="tekstboks" id="endday">
<?
for($i=1; $i<32; $i++) {
?>
<option value='<? echo $i; ?>' <? if($show[endday] == "$i") { print "selected"; } ?>><? echo $i; ?></option>
<?
}
?>
</select>
<select name="endmonth" class="tekstboks" id="endmonth">
<option value="1">Januar</option>
<option value="2">Februar</option>
<option value="3">Marts</option>
<option value="4">April</option>
<option value="5">Maj</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="endyear" size="1" class="tekstboks" id="endyear">
<option>--Vælg år--</option>
<?
for($i = (date('Y')-0);$i <= (date('Y')+2); $i++) {
?>
<option value='<? echo $i; ?>'><? echo $i; ?></option>
<?
}
?>
</select> </td>
</tr>
<tr>
<td width="222">Klokkeslæt:</td>
<td width="1009">
<input name="fra_time" type="text" class="tekstboks" value="<? if($_GET[fra_time] == "00") { echo "00"; } else { $v[fra_time]; } ?><? echo $show[fra_time]; ?>" size="1" maxlength="2">
<input name="fra_minut" type="text" class="tekstboks" value="<? if($_GET[fra_minut] == "00") { echo "00"; } else { $v[fra_minut]; } ?><? echo $show[fra_minut]; ?>" size="1" maxlength="2">
- <input name="til_time" type="text" class="tekstboks" value="<? echo $show[til_time]; ?>" size="1" maxlength="2">
<input name="til_minut" type="text" class="tekstboks" value="<? echo $show[til_minut]; ?>" size="1" maxlength="2"></td>
</tr>
<tr>
<td width="156">Kategori:</td>
<td width="1075">
<select name="kategori" class="tekstboks">
<?
$query = mysql_query("SELECT kategori FROM event_kategori ORDER BY kategori ASC") or die(mysql_error());
while($kategori = mysql_fetch_array($query)) {
?>
<option value="<? echo $kategori[kategori]; ?>"><? echo $kategori[kategori]; ?></option>
<?
}
?>
</select>
</td>
</tr>
<tr>
<td width="156" valign="top">Billede:</td>
<td width="1075"><input name="billede" type="file" class="tekstboks" size="29">
<br>(Hvis du ikke vil skifte billedet, så se venligst bort fra dette felt)<br>
</td>
</tr>
<tr>
<td width="1235" colspan="2">Beskrivelse: (HTML er tilladt)</td>
</tr>
<tr>
<td width="1235" colspan="2" valign="top">
<textarea name="beskrivelse" cols="95" rows="15" class="tekstboks"><? echo $show[text]; ?></textarea></td>
</tr>
<tr>
<td width="1235" colspan="2"><input name="rediger" type="submit" class="tekstboks" value="Redigér begivenhed"></td>
</tr>
</table>
</form>
<? $enter = ereg-replace("\\n", "<br>\\n", $enter); ?>
<?
}
}
}
?>
</body>
</html>
<?
mysql_close();
}
} else {
echo "Du er ikke logget ind!";
}
?>
Jeg håber nogen kan hjælpe mig med mit lille problem her, så vil jeg være meget taknemmlige, og selvfølgelig kvittere med 50 dejlige point