|
|
Hej
Jeg kender en lille smule til php.
Jeg er kun begyndt på hvordan den skulle se ud, for da jeg skulle til at begynde, blev jeg rimelig forvirret og tænkte på råd fra en.
Du kan evt. skrive til mig her: diverse @ os . dk
mvh
Anette
| |
| Kommentar Fra : Angband |
Dato : 27-04-05 16:24 |
| | |
|
Hvad hedder bogen, linket virker ikke helt.
| |
|
Jeg har den bog, men jeg må være blind, for jeg kan ikke se nogen enkel booking kalender...
| |
| Kommentar Fra : Angband |
Dato : 29-04-05 22:27 |
| | |
| Kommentar Fra : plobber |
Dato : 01-05-05 09:48 |
| | |
|
Ja det er det og så skal de selvfølgelig også kunne bokke med navn og adresse og så skal der også være en administrationsside med login.
| |
| Kommentar Fra : Angband |
Dato : 01-05-05 12:38 |
| | |
|
Der skal selvfølgelig også kunne bookes med navn og adresse og så skal der også være en administrationsside med login.
| |
| Kommentar Fra : funbreak |
Dato : 12-05-05 14:45 |
| | |
|
Ja men hjælp ville hjælpe
| |
|
Problemet er, at det vil tage lige så lang tid hvis ikke længere at undervise i at lave et booking system i PHP som at lave det .. Har I ikke mulighed for at få noget teknisk bistand i jeres vennekreds?
| |
|
Desværre ikke. Det ville da også bare være fint, hvis der var en der ville hjælpe med at lave den
| |
|
Har prøvet at lave en kalender ud fra libris, men der er flere fejl.
Kode <?
function addmeetingwizard($step) {
session_start();
head();
global $fields, $page, $HTTP_POST_VARS, $user;
switch($step) {
case("1"):
if(isset($fields)) { session_unregister("fields"); }
?>
<form action="<?=$page?>" method="post">
<table border=0>
<tr><td colspan=2><h3>Book en dato trin 1</h3></td></tr>
<tr><td>Navn: </td><td><input type="text" name="name"></td></tr>
<tr><td>Dato og tidspunkt:</td>
<td>
<?createdate("start");?>
</td></tr>
<tr><td>Sluttidspunkt: </td>
<td>
<?createdate("end");?>
<br><i>(YYYY-MM-DD HH:MM)</i></td></tr>
<tr><td colspan=2><input type="submit" name="addmeeting" value="Næste"></td><tr>
</table>
<input type="hidden" name="step" value="2">
</form>
<?
break;
case("2"):
?><h2>Trin 2 - Vælg mødelokale</h2><?
session_register("fields");
if($HTTP_POST_VARS['name'] == "") {
?>
<h2>Du skal vælge et navn!</h2>
<form action=<?=$page?> method="post">
<input type="hidden" name="step" value="1">
<input type="submit" name="addmeeting" value="Tilbage">
</form>
<?
} else {
$dbconn = connect();
$sql = "select id from users where email = '$user'";
$result = $dbconn->query($sql);
errortrap($result);
$result->fetchInto($r);
$fields['originator'] = $r['id'];
$fields['name'] = $HTTP_POST_VARS['name'];
$fields['startdate'] = $HTTP_POST_VARS['startyears'] . "-" . $HTTP_POST_VARS['startmonths'] . "-" . $HTTP_POST_VARS['startdays'] . " " . $HTTP_POST_VARS['starthours'] . $HTTP_POST_VARS['startminutes'];
$fields['enddate'] = $HTTP_POST_VARS['endyears'] . "-" . $HTTP_POST_VARS['endmonths'] . "-" . $HTTP_POST_VARS['enddays'] . " " . $HTTP_POST_VARS['endhours'] . $HTTP_POST_VARS['endminutes'];
$sql = "select room from meetings where startdate <= '" . $fields['enddate'] . "' AND enddate >= '" . $fields['startdate'] . "' AND room != '0'";
$result = $dbconn->query($sql);
errortrap($result);
meetingdisplay($fields);
?>
<p>
<h3>Der er følgende lokaler til rådighed på det ønskede mødetidspunkt:</h3>
<form action=<?=$page?> method=post>
<input type="hidden" name="step" value="3">
<p>Vælg et:
<?
$sql = "select * from rooms where id != '";
while($result->fetchInto($row)) {
$sql .= $row['room'] . "' AND id != '";
}
$sql .= "-1'";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchInto($row)) {
$sql = "select * from rooms where id = '" . $row['id'] . "'";
$resultroom = $dbconn->query($sql);
errortrap($resultroom);
$resultroom->fetchInto($roomrow);
if($roomrow['id'] == '0') {
?>
<br><input type="radio" name="roomchoice" value="<?=$roomrow['id']?>" checked> <?=$roomrow['name']?> <?=$roomrow['location']?>
<?
} else {
?>
<br><input type="radio" name="roomchoice" value="<?=$roomrow['id']?>"> <?=$roomrow['name']?> <?=$roomrow['location']?>
<?
}
}
?>
<p><input type="submit" name="addmeeting" value="Næste">
</form>
<?
}
break;
case("3"):
?><h2>Trin 3 - Vælg deltagere</h2><?
$fields['roomchoice'] = $HTTP_POST_VARS['roomchoice'];
$busyuser = array();
$openuser = array();
meetingdisplay($fields);
?>
<p>Vælg de personer, du vil invitere (brug CTRL-Klik for at vælge flere. HUSK at invitere dig selv!):
<?
//afgør ud fra mødetabel, hvilke personer der er ledige, og hvilke der ikke er
$dbconn = connect();
$sql = "select id from meetings where startdate <= '" . $fields['enddate'] . "' AND enddate >= '" . $fields['startdate'] . "'";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchInto($row)) {
$sql = "select userid from meetingusers where meeting = '" . $row['id'] . "' order by userid";
$userresult = $dbconn->query($sql);
errortrap($userresult);
while($userresult->fetchInto($row2)) {
$busyuser[$row2['userid']] = $row2['userid'];
}
}
$sql = "select id from users";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchInto($row)) {
$count = 0;
if(sizeof($busyuser) > 0) {
foreach($busyuser as $buser) {
if($row['id'] == $buser) {
$count++;
}
}
}
if($count == 0) {
$openuser[] = $row['id'];
}
}
?>
<form action="<?=$page?>" method="post">
<select name="attendees[]" size="8" multiple>
<?
foreach($openuser as $ouser) {
$row = datafromid($dbconn, "users", $ouser);
printf("<option value=%s>%s, %s</option>", $row['id'], $row['last'], $row['first']);
}
foreach($busyuser as $buser) {
$row = datafromid($dbconn, "users", $buser);
printf("<option value=%s>%s, %s (optaget)</option>", $row['id'], $row['last'], $row['first']);
}
?>
</select>
<input type="hidden" name="step" value="4">
<p><input type="submit" name="addmeeting" value="Næste">
</form>
<?
break;
case("4"):
?><h2>Trin 4 - Definér agenda, og vælg Tlf./internet</h2><?
if(sizeof($fields['attendees']) == 0) {
if($HTTP_POST_VARS['attendees'] != "") {
$fields['attendees'] = $HTTP_POST_VARS['attendees'];
}
}
if(sizeof($fields['attendees']) == 0) {
?>
<h2>Du skal vælge mindst én deltager!</h2>
<form action=<?=$page?> method="post">
<input type="hidden" name="step" value="3">
<input type="submit" name="addmeeting" value="Tilbage">
</form>
<?
} else {
meetingdisplay($fields);
?>
<p>Definér tlf., internet og agenda:
<form action="<?=$page?>" method="post">
Agenda:<br><textarea cols="20" rows="5" name="agenda"></textarea>
<br>Hjemmeside: <input type="text" name="web">
<br>Telefonnummer: <input type="text" name="phone">
<input type="hidden" name="step" value="5">
<p><input type="submit" name="addmeeting" value="Næste">
</form>
<?
}
break;
case("5"):
?><h2>Trin 5 - Bekræftelse</h2><?
if($HTTP_POST_VARS['agenda'] == "") {
?>
<h2>Du skal indtaste en agenda!</h2>
<form action=<?=$page?> method="post">
<input type="hidden" name="step" value="4">
<input type="submit" name="addmeeting" value="Tilbage">
</form>
<?
} else {
$fields['agenda'] = $HTTP_POST_VARS['agenda'];
$fields['web'] = $HTTP_POST_VARS['web'];
$fields['phone'] = $HTTP_POST_VARS['phone'];
meetingdisplay($fields);
?>
<h2>Klik på knappen nedenfor for at booke Assens Skovpavillon!</h2>
<form action=<?=$page?> method="post">
<input type="hidden" name="step" value="6">
<input type="submit" name="addmeeting" value="Færdig!">
</form>
<?
}
break;
case("6"):
?><h2>Bookningen er gennemført!</h2><?
$dbconn = connect();
$id = $dbconn->nextID('meeting_id',true);
errortrap($id);
$sql = "insert into meetings values('$id', '" . $fields['name'] . "','" . $fields['startdate'] . "','" . $fields['enddate'] . "','" . $fields['roomchoice'] . "','" . $fields['agenda'] . "','" . $fields['phone'] . "','" . $fields['web'] . "','" . $fields['originator'] . "')";
$result = $dbconn->query($sql);
errortrap($result);
foreach($fields['attendees'] as $attendee) {
$sql = "insert into meetingusers values('$id', '$attendee')";
$result = $dbconn->query($sql);
errortrap($result);
}
session_unset();
session_destroy();
notifyusers($id);
choices();
break;
default:
head();
?>
<h3>Der opstod en fejl - begynd venligst forfra.</h3>
<?
session_unset();
session_destroy();
?>
<form action=<?=$page?> method="post">
<input type="hidden" name="step" value="1">
<input type="submit" name="addmeeting" value="Start forfra!">
</form>
<?
break;
} //slut på switch
} //slut på addmeetingwizard
function meetingdisplay($fields) {
?>
<h3>Møde: <?=$fields['name']?></h3>
<h4>Start: <?=$fields['startdate']?></h4>
<h4>Slut: <?=$fields['enddate']?></h4>
<?
if(sizeof($fields) > 4) {
?>
<h4>Mødelokale:
<?
$dbconn = connect();
$row = datafromid($dbconn, "rooms", $fields['roomchoice']);
printf("%s - %s", $row['name'], $row['location']);
?>
</h4>
<?
}
if(sizeof($fields) > 5) {
?>
<h4>Deltagere:</h4>
<?
foreach($fields['attendees'] as $attendee) {
$row = datafromid($dbconn, "users", $attendee);
printf("<li>%s, %s - <a href=mailto:bixen@xxxxx.dk</a>", $row['last'], $row['first'], $row['email'], $row['email']);
}
}
if(sizeof($fields) > 6) {
?>
<h4>Agenda: <?=$fields['agenda']?></h4>
<h4>Hjemmeside: <?=$fields['web']?></h4>
<h4>Telefonnummer: <?=$fields['phone']?></h4>
<?
}
} //slut på meetingdisplay
function viewschedule($email) {
$dbconn = connect();
$sql1 = "select id from users where email = '$email'";
$result1 = $dbconn->query($sql1);
errortrap($result1);
$result1->fetchInto($row1);
$userid = $row1['id'];
$sql2 = "select meeting from meetingusers where userid = '$userid'";
$result2 = $dbconn->query($sql2);
errortrap($result2);
$bgcolor = "#FFFF99";
?>
<p>Du har booket følgende dato:
<p><table border=1 cellspacing=0 cellpadding=4>
<tr bgcolor="<?=$bgcolor?>"><td colspan=3><b>Mødenavn</b></td></tr>
<tr bgcolor="<?=$bgcolor?>"><td><b>Start</b></td><td><b>Slut</b></td><td><b>Lokation</b></td></tr>
<?
$bgcolor ="#FFFFFF";
while($result2->fetchInto($row2)) {
$row3 = datafromid($dbconn, "meetings", $row2['meeting']);
$room = datafromid($dbconn, "rooms", $row3['room']);
?>
<tr bgcolor="<?=$bgcolor?>"><td colspan=2><a href=<?=$page?>?action=viewmeetingdetails&id=<?=$row2['meeting']?>><?=$row3['name']?></a></td><td>
<?
$sql = "select originator from meetings where id = '" . $row2['meeting'] . "'";
$result = $dbconn->query($sql);
errortrap($result);
$result->fetchinto($r);
if($r['originator'] == $userid) {
?><a href=<?=$page?>?action=deletemeeting&id=<?=$row2['meeting']?>><b>Cancel</b><?
} else {
echo " ";
}
?>
</td></tr>
<tr bgcolor="<?=$bgcolor?>"><td><?=$row3['startdate']?></td>
<td><?=$row3['enddate']?></td><td><?=$room['name']?><br><?=$room['location']?></td></tr>
<?
if($bgcolor == "#FFFFFF") {
$bgcolor = "#FFFF99";
} else {
$bgcolor = "#FFFFFF";
}
}
?>
</table>
<?
} //slut på viewschedule
function view_meeting_details($id) {
$dbconn = connect();
$row = datafromid($dbconn, "meetings", $id);
$row2 = datafromid($dbconn, "users", $row['originator']);
$row3 = datafromid($dbconn, "rooms", $row['room']);
$originator = $row2['first'] . " " . $row2['last'];
?>
<h3>Mødedetaljer</h3>
<table border=1 cellspacing=0 cellpadding=5>
<tr><td>Mødenavn: <?=$row['name']?></td><td>Mødeansvarlig: <?=$originator?></td></tr>
<tr><td>Starttidspunkt: <?=$row['startdate']?></td><td>Sluttidspunkt: <?=$row['enddate']?></td></tr>
<tr><td>Mødelokale: <?=$row3['name']?></td><td>Lokation: <?=$row3['location']?></td></tr>
<tr><td colspan=2>Inviterede gæster:
<?
$sql = "select * from meetingusers where meeting = '$id'";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchinto($r)) {
$users = datafromid($dbconn, "users", $r['userid']);
?>
<li><?=$users['first']?> <?=$users['last']?>
<?
}
?>
</td>
<tr><td colspan=2>Agenda:<br><pre><?=$row['agenda']?></pre></td></tr>
<tr><td colspan=2>Hjemmeside: <?=$row['web']?> </td></tr>
<tr><td colspan=2>Opkaldsnummer: <?=$row['phone']?> </td></tr>
</table>
<?
}
function deletemeeting($id) {
$dbconn = connect();
$row = datafromid($dbconn, "meetings", $id);
$row2 = datafromid($dbconn, "users", $row['originator']);
$name = $row['name'];
$start = $row['startdate'];
$end = $row['enddate'];
$originator = $row2['first'] . " " . $row2['last'];
$subject = "Mødet $name er aflyst!";
$msg = "Mødet $name, planlagt af $originator, er blevet aflyst.\n";
$msg .= "Mødet skulle have været afholdt fra $start til $end\n";
$msg .= "Hvis du logger ind i Mødekalenderen, vil du se, at mødet er blevet fjernet fra oversigten over dine møder.\n";
$sql = "select * from meetingusers where meeting = '$id'";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchinto($r)) {
$r2 = datafromid($dbconn, "users", $r['userid']);
$to = $r2['email'];
if(!mail($to, $subject, $msg, "From: Administrator for Mødekalenderen <info@sitewise.dk?"))
{
echo "<h1>Mail blev ikke afsendt!</h1>";
}
echo "<h3>Mødet er aflyst!/h3>";
}
$sql1 = "delete from meetings where id = '$id'";
$result1 = $dbconn->query($sql1);
errortrap($result1);
$sql2 = "delete from meetingusers where meeting = '$id'";
$result2 = $dbconn->query($sql2);
errortrap($result2);
}
function notifyusers($id) {
$dbconn = connect();
$row = datafromid($dbconn, "meetings", $id);
$row2 = datafromid($dbconn, "users", $row['originator']);
$name = $row['name'];
$start = $row['startdate'];
$end = $row['enddate'];
$originator = $row2['first'] . " " . $row2['last'];
$subject = "Møde $name planlagt!";
$msg = "Der er blevet planlagt et møde: $name.\n Mødet er planlagt af $originator.\n";
$msg .= "Mødet vil finde sted fra $start til $end\n";
$msg .= "Hvis du logger ind i Mødekalenderen, vil du se, at mødet er blevet fjernet fra oversigten over dine møder.\n";
$sql = "select * from meetingusers where meeting = '$id'";
$result = $dbconn->query($sql);
errortrap($result);
while($result->fetchinto($r)) {
$r2 = datafromid($dbconn, "users", $r['userid']);
$to = $r2['email'];
if(!mail($to, $subject, $msg, "From: Administrator for Mødekalenderen <noreply@eksempel.dk?")) {
echo "<h1>Mail blev ikke afsendt!</h1>";
}
}
}
function check_user($user, $password) {
$timestamp = date("m-d-Y H:i:s (T)");
$dbconn = connect();
$password_enc = substr(md5($password), 0, 8);
//echo "<P>USERPASS:" . $user . $password_enc;
$sql = "select * from users where email = '$user' and pass = '$password_enc'";
$result = $dbconn->query($sql);
errortrap($result);
if ($result->numRows() == 1) {
setcookie("user",$user);
setcookie("password",$password);
error_log("Login gennemført af $user $timestamp\n",3,"sucessful_logins.txt");
return 1;
} else {
setcookie("user");
setcookie("password");
?>
<h3>Beklager, du er ikke godkendt!</h3>
<?
error_log("Mislykket login-forsøg af $user $timestamp\n",3,"failed_logins.txt");
return 0;
}
}
function login() {
global $page;
?>
<h1>Du skal logge ind for at se denne side</h1>
<form action = "<?=$page?>" method="post">
<P>E-mail: <input type="text" name="user"><br>
Password: <input type="password" name="password" maxlength="8" size="8"><br>
<input type="submit" name="submit" value="Send">
</form>
<?
}
function choices() {
?>
<p>
<li><A href="<?=$page?>?action=viewschedule">Vis planlagte møder</a>
<li><A href="<?=$page?>?action=addmeeting">Tilføj et møde</a>
<?
}
/***** MAIN *****/
$page = "meeting.php";
require_once("meeting_inc.php");
if(!isset($user) or !check_user($user, $password)) {
login();
} else {
if(isset($addmeeting)) {
addmeetingwizard($HTTP_POST_VARS['step']);
} elseif(isset($action)) {
switch($action) {
case("viewschedule"):
head();
choices();
viewschedule($user);
break;
case("addmeeting"):
addmeetingwizard("1");
break;
case("deletemeeting"):
head();
choices();
deletemeeting($id);
break;
case("viewmeetingdetails"):
head();
choices();
view_meeting_details($id);
break;
default;
break;
} //end switch
} else {
head();
choices();
}
}
?>
</body>
</html> |
Den beder om en kode for at logge ind, men det vil jeg ikke have?
Kode <?
/***** FUNKTIONER *****/
function connect() {
ini_set("include_path", "C:\apache\Apache\pear");
require_once("DB.php");
$type = "mysql";
$username = "XXX";
$password = "XXX";
$host = "XXX";
$database = "meeting";
$dsn = $type . "://" . $username . ":" . $password . "@" . $host . "/" . $database;
$dbconn = DB::connect($dsn);
errortrap($dbconn);
$dbconn->setFetchMode(DB_FETCHMODE_ASSOC);
return $dbconn;
}//slut på connect
function errortrap($result) {
if(DB::isError($result)) {
?><h3>Der opstod en fejl!</h3><?
die($result->getMessage());
}
} //slut på errortrap
function datafromid($dbconn, $table, $id) {
$sql = "select * from $table where id = '$id'";
$result = $dbconn->query($sql);
errortrap($result);
$result->fetchInto($row);
return $row;
} //slut på datafromid
function createdate($type) {
$years = array("2002","2003","2004");
$minutes = array(":00", ":15", ":30", ":45");
$months = array();
$days = array();
$hours = array();
for($i = 1; $i < 13; $i++) {
if($i < 10) {
$months[] = "0" . $i;
} else {
$months[] = $i;
}
}
for($i = 1; $i < 32; $i++) {
if($i < 10) {
$days[] = "0" . $i;
} else {
$days[] = $i;
}
}
for($i = 1; $i < 25; $i++) {
$hours[] = $i;
}
$fields = array("years", "months", "days", "hours", "minutes");
foreach($fields as $field) {
?>
<select name="<? echo $type . $field ?>">
<?
foreach($$field as $item) {
echo"<option value=$item>$item</option>\n";
}
?>
</select>
<?
if($field == "days") {
echo " at ";
}
}
} //slut på createdate
function head() {
?>
<html>
<head>
<style type=text/css>
h1, h2, h3, p, td, li {font-family: verdana, sans-serif; }
</style>
</head>
<body bgcolor="#FFFFFF">
<div align=center>
<table width="74%" border="0" cellspacing="0" cellpadding="0" height="128" bgcolor="#FFFFFF">
<tr>
<td height="134" align="center"><h1>En mødekalender</h1></td>
</tr>
</table>
</div>
<?
}
?> |
Her melder den fejl på linie 6 (require_once("DB.php");) ?
| |
|
require_once prøver at indlæse en fil som i dette tilfælde er 'DB.php' som skal ligge i samme folder som den fil, du prøver at køre..
Hvis du ikke vil præsenteres med login skærmen så skal den nederste del af MAIN sektionen se således ud:
/***** MAIN *****/
$page = "meeting.php";
require_once("meeting_inc.php");
if(isset($addmeeting)) {
addmeetingwizard($HTTP_POST_VARS['step']);
} elseif(isset($action)) {
switch($action) {
case("viewschedule"):
head();
choices();
viewschedule($user);
break;
case("addmeeting"):
addmeetingwizard("1");
break;
case("deletemeeting"):
head();
choices();
deletemeeting($id);
break;
case("viewmeetingdetails"):
head();
choices();
view_meeting_details($id);
break;
default;
break;
} //end switch
} else {
head();
choices();
}
?>
</body>
</html>
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|