|
Posted by Breklin on 10/17/06 20:20
I see now. Nice script. Might be a bit advanced for a beginner, though.
Steve wrote:
> "linda" <newsaccount@tiscali.co.uk> wrote in message
> news:4533f42a$1_2@mk-nntp-2.news.uk.tiscali.com...
> |I very new to php could someone please explain how to write an error
> message
> | into my AddNew.php below. id is set to unique so at the moment if someone
> | adds a product and the id is already in the database, it just doesn't
> enter
> | anything. Ideally I would like to display an error message, with a back
> | button to correct the id.
> |
> | So far I've tried running a SELECT query with an if statement prior to
> the
> | INSERT but I just don't know enough php to get this to work. I would be
> | very greatful for any info and advice from those in this newsgroup.
> |
> | Many, many thanks in advance,
> | Linda
>
>
> linda,
>
> here's a basic maintenence script i have for managing "people"...forget
> about the require_once files and just look at the programmatic flow. you'll
> need to change the db calls so that they are appropriate for your setup.
> notice there is some validation in javascript but you also need to add the
> same validation in php since not all your visitors/customers will have js
> enabled. sorry for the text-wrapping. and contrary to the dipshit comment
> made by ikciu, this is NOT a stupid question at all.
>
> hth,
>
> me
>
>
> ===========
>
> <?
> $pageTitle = 'People';
> $fullHeader = false;
> $securityEnabled = true;
> require_once 'relative.path.php';
> require_once $relativePath . 'site.cfg.php';
>
> $add = isset($_REQUEST['add']);
> $back = isset($_POST['back']);
> $confirm = isset($_POST['confirm']);
> $delete = isset($_REQUEST['delete']);
> $edit = isset($_REQUEST['edit']);
>
> $action = $add ? 'add'
> : 'edit';
> $method = isset($_POST['method']) ? $_POST['method']
> : '';
>
> $errors = array();
>
> $id = isset($_REQUEST['id']) ?
> $_REQUEST['id'] : 0;
> $personFirstName = isset($_REQUEST['personFirstName']) ?
> $_REQUEST['personFirstName'] : '';
> $personMiddleName = isset($_REQUEST['personMiddleName']) ?
> $_REQUEST['personMiddleName'] : '';
> $personLastName = isset($_REQUEST['personLastName']) ?
> $_REQUEST['personLastName'] : '';
> $personUserName = isset($_REQUEST['personUserName']) ?
> $_REQUEST['personUserName'] : '';
> $personPassword = isset($_REQUEST['personPassword']) ?
> $_REQUEST['personPassword'] : '';
> $personRePassword = isset($_REQUEST['personRePassword']) ?
> $_REQUEST['personRePassword'] : '';
> $personEmail = isset($_REQUEST['personEmail']) ?
> $_REQUEST['personEmail'] : '';
> $personPhoto = isset($_REQUEST['personPhoto']) ?
> $_REQUEST['personPhoto'] : '';
> $setSiteAccess = isset($_REQUEST['setSiteAccess']) ?
> $_REQUEST['setSiteAccess'] : false;
> $copyUserPermissions = isset($_REQUEST['copyUserPermissions']) ?
> $_REQUEST['copyUserPermissions'] : false;
> $passwordMismatch = strtolower($personPassword) !=
> strtolower($personRePassword);
>
> if ($back)
> {
> $add = false;
> $delete = false;
> $edit = false;
> $method = '';
> }
> if ($confirm)
> {
> $add = false;
> $delete = false;
> $edit = false;
> $method = '';
> $sql = "
> DELETE
> FROM people
> WHERE Id = '" . $db->prepare($id) . "'
> ";
> $db->execute($sql);
> header('location:' . $_SERVER['PHP_SELF']);
> exit;
> }
> if (!($delete || $confirm) && $method == 'put')
> {
> $sql = "
> SELECT COUNT(*) PersonExists
> FROM people
> WHERE Id != '" .
> $db->prepare($id) . "'
> AND LOWER(UserName) = LOWER('" .
> $db->prepare($personUserName) . "')
> ";
> unset($records);
> $records = $db->execute($sql);
> $personExists = $records[0]['PERSONEXISTS'] ? true : false;
> if (!$personFirstName)
> {
> $errors['personFirstName'] = 'FIRST NAME is required and cannot be
> blank.';
> }
> if (!$personLastName)
> {
> $errors['personLastName'] = 'LAST NAME is required and cannot be
> blank.';
> }
> if (!$personPassword)
> {
> $errors['personPassword'] = 'PASSWORD is required and cannot be
> blank.';
> }
> if ($personPassword && ($personPassword != $personRePassword))
> {
> $errors['personPassword'] = 'The PASSWORD does not match the PASSWORD
> CONFIRMATION.';
> }
> if ($personExists)
> {
> $errors['personUserName'] = 'A person with this USER NAME is already
> being used.';
> }
> if ($personEmail && !isEmail($personEmail))
> {
> $errors['personEmail'] = 'Invalid EMAIL ADDRESS.';
> }
> if (!count($errors))
> {
> if ($action == 'add')
> {
> $sql = "
> INSERT INTO people
> (
> FirstName ,
> MiddleName ,
> LastName ,
> UserName ,
> Password ,
> Email
> )
> VALUES
> (
> '" . $db->prepare($personFirstName) . "' ,
> '" . $db->prepare($personMiddleName) . "' ,
> '" . $db->prepare($personLastName) . "' ,
> '" . $db->prepare($personUserName) . "' ,
> '" . $db->prepare($personPassword) . "' ,
> '" . strtolower($db->prepare($personEmail)) . "'
> )
> ";
> } else {
> $sql = "
> UPDATE people
> SET FirstName = '" . $db->prepare($personFirstName)
> . "' ,
> MiddleName = '" . $db->prepare($personMiddleName)
> . "' ,
> LastName = '" . $db->prepare($personLastName)
> . "' ,
> UserName = '" . $db->prepare($personUserName)
> . "' ,
> Password = '" . $db->prepare($personPassword)
> . "' ,
> Email = '" .
> strtolower($db->prepare($personEmail)) . "'
> WHERE Id = '" . $id . "'
> ";
> }
> $db->execute($sql);
> header('location:' . $_SERVER['PHP_SELF']);
> exit;
> }
> }
> require_once $site->includeDirectory . 'head.inc.php';
> ?>
> <br>
> <div class="bullet" style="background:white no-repeat url('<?=
> $site->imagesDirectory ?>bullet.jpg');">
> People
> </div>
> <hr>
> <br>
> <?
> if ($add || $edit)
> {
> ?>
> <script language="javascript">
> var skipValidation = false;
> function validate()
> {
> if (skipValidation){ return true; }
> var warning = new String();
> var el = record.personFirstName;
> if (warning.length == 0 && trim(el.value) == '')
> {
> warning = "FIRST NAME is required.";
> }
> var el = record.personLastName;
> if (warning.length == 0 && trim(el.value) == '')
> {
> warning = "LAST NAME is required.";
> }
> var el = record.personUserName;
> if (warning.length == 0 && trim(el.value) == '')
> {
> warning = "USER NAME is required.";
> }
> var el = record.personEmail;
> if (warning.length != 0 && !isEmail(el.value))
> {
> warning = "Invalid EMAIL.";
> }
> if (warning.length)
> {
> alert(warning);
> el.focus()
> el.select();
> return false;
> }
> return true;
> }
> </script>
> <?
> if (!count($errors))
> {
> $sql = "
> SELECT Id ,
> FirstName ,
> MiddleName ,
> LastName ,
> UserName ,
> Password ,
> Email
> FROM people
> WHERE id = '" . $db->prepare($id) . "'
> ";
> unset($records);
> $records = $db->execute($sql);
> $id = $records[0]['ID'];
> $personFirstName = $records[0]['FIRSTNAME'];
> $personMiddleName = $records[0]['MIDDLENAME'];
> $personLastName = $records[0]['LASTNAME'];
> $personUserName = $records[0]['USERNAME'];
> $personPassword = $records[0]['PASSWORD'];
> $personRePassword = $records[0]['PASSWORD'];
> $personEmail = $records[0]['EMAIL'];
> }
> if (count($errors))
> {
> $displayedErrors = array_unique(array_values($errors));
> ?>
> <div style="color:#660000; font-size:10pt; font-weight:bold;">
> ERROR
> </div>
> <hr style="background-color:#660000; color:#660000;">
> <ol>
> <?= '<li style="color:#660000; font-size:8pt;">' . implode('<li
> style="color:#660000; font-size:8pt;">' . "\r\n", $displayedErrors) ?>
> </ol>
> <hr style="background-color:#660000; color:#660000;">
> <br>
> <br>
> <?
> }
> if ($delete)
> {
> ?>
> <div style="color:#CC0000; font-size:10pt; font-weight:500;
> margin-bottom:20px;">
> Are you sure you want to delete this record?
> <br>
> If so, click the "Confirm" button below. Otherwise, click the "Back"
> button below to return.
> </div>
> <?
> }
> ?>
> <form name="record" method="post" onsubmit="return validate();">
> <table style="width:600px;">
> <tr>
> <td class="label" style="vertical-align:top;">
> First Name
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personFirstName']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personFirstName"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personFirstName ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> Middle Name
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personMiddleName']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personMiddleName"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personMiddleName ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> Last Name
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personLastName']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personLastName"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personLastName ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> User Name
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personUserName']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personUserName"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personUserName ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> Password
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personPassword']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personPassword"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personPassword ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> Password Confirmation
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personRePassword']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personRePassword"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personRePassword ?>"
> >
> </td>
> </tr>
> <tr>
> <td class="label">
> Email
> <span style="color:#660000; font-size:10pt;"><?=
> (isset($errors['personEmail']) ? '*' : '') ?></span>
> </td>
> <td colspan="2">
> <input class="value"
> name="personEmail"
> maxlength="255"
> type="text"
> autocomplete="off"
> value="<?= $personEmail ?>"
> style="text-transform:lowercase;"
> >
> </td>
> </tr>
> <tr><td colspan="3"> </td></tr>
> <tr><td colspan="3"> </td></tr>
> </table>
> <?
> if ($delete)
> {
> ?>
> <input name="confirm" type="submit" style="cursor:'hand';
> width:100px;" value="Confirm " onclick="skipValidation=true;">
> <?
> } else {
> ?>
> <input name="<?= $action ?>" type="submit" style="cursor:'hand';
> width:100px;" value="Save ">
> <input name="delete" type="submit" style="cursor:'hand';
> width:100px;" value="Delete " onclick="skipValidation=true;">
> <?
> }
> ?>
> <input name="back" type="submit" style="cursor:'hand';
> width:100px;" value="Back " onclick="skipValidation=true;">
> <input name="id" type="hidden" value="<?= $id ?>">
> <input name="method" type="hidden" value="put">
> </form>
> <script language="javascript">
> record.personFirstName.focus();
> record.personFirstName.select();
> </script>
> <?
> echo $sessionFooter;
> exit;
> }
>
> $lastSort = isset($_REQUEST['lastSort']) ?
> $_REQUEST['lastSort'] : '';
> $sort = isset($_REQUEST['sort']) ? $_REQUEST['sort']
> : 'LASTNAME';
> $sortDirection = isset($_REQUEST['sortDirection']) ?
> $_REQUEST['sortDirection'] : 'ASC';
> if ($sort == $lastSort){ $sortDirection = $sortDirection == 'ASC' ? 'DESC' :
> 'ASC'; }
> $lastSort = $sort;
>
> $group = $_REQUEST['group'];
> $page = $_REQUEST['page'];
> $pages = $_REQUEST['pages'];
> $recordsPerPage = $_REQUEST['recordsPerPage'];
> if (!is_numeric($group)){ $group = 0; }
> if (!is_numeric($page)){ $page = 1; }
> if (!is_numeric($pages)){ $pages = 5; }
> if (!is_numeric($recordsPerPage)){ $recordsPerPage = 10; }
> $sql = "
> SELECT COUNT(*) RecordCount
> FROM people
> ";
> unset($records);
> $records = $db->execute($sql);
> $recordCount = $records[0]['RECORDCOUNT'];
> $currentPage = $page;
> $group = floor((($page - 1) * $recordsPerPage) / ($recordsPerPage *
> $pages));
> $navigation = array();
> $page = $group * $pages + 1;
> $lastPage = $page + $pages;
> $maxPages = ceil($recordCount / $recordsPerPage);
> $range = ($currentPage * $recordsPerPage) - $recordsPerPage;
> if ($group)
> {
> $navigation[] = '<a class="navigation" href="??page=' . ($page - 1) .
> '&sortDirection=' . $sortDirection . '&sort=' . $sort . '"
> title="Previous"><<</a>';
> }
> for ($index = 0; $index < $pages; $index++)
> {
> $navigation[] = '<a class="navigation" href="?page=' . $page .
> '&sortDirection=' . $sortDirection . '&sort=' . $sort . '" title="Page ' .
> $page . '">' . $page. '</a>';
> if ($page == $maxPages){ break; }
> $page++;
> }
> if ($lastPage < $maxPages)
> {
> $navigation[] = '<a class="navigation" href="?page=' . $page .
> '&sortDirection=' . $sortDirection . '&sort=' . $sort . '"
> title="Next">>></a>';
> }
> $navigation[] = '<span style="color:#666666; padding-left:25px;
> font-size:7.25pt;">[Page ' . $currentPage . ' of ' . $maxPages . ']</span>';
> ?>
> <table style="width:730px;">
> <th style="background-color:#336699; border-bottom:1px solid
> lightsteelblue; padding:5px; text-align:center; width:100px;">
> <a
> class="menuItem"
> href="<?= $_SERVER['PHP_SELF'] ?>?add=1"
> style="background-color:#336699; border:none; color:white;
> font-weight:600; text-decoration:underline;"
> >Add Person</a>
> </th>
> <th
> style="border-bottom:1px solid lightsteelblue; border-right:1px solid
> lightsteelblue; cursor:pointer; font-size:8pt;"
> title="Click to sort"
> onclick="document.location='<?= $_SERVER['PHP_SELF'] ?>?lastSort=<?=
> $lastSort ?>&sortDirection=<?= $sortDirection ?>&sort=LASTNAME'"
> >Last Name</th>
> <th
> style="border-bottom:1px solid lightsteelblue; border-right:1px solid
> lightsteelblue; cursor:pointer; font-size:8pt;"
> title="Click to sort"
> onclick="document.location='<?= $_SERVER['PHP_SELF'] ?>?lastSort=<?=
> $lastSort ?>&sortDirection=<?= $sortDirection ?>&sort=FIRSTNAME'"
> >First Name</th>
> <th
> style="border-bottom:1px solid lightsteelblue; border-right:1px solid
> lightsteelblue; cursor:pointer; font-size:8pt;"
> title="Click to sort"
> onclick="document.location='<?= $_SERVER['PHP_SELF'] ?>?lastSort=<?=
> $lastSort ?>&sortDirection=<?= $sortDirection ?>&sort=MIDDLENAME'"
> >Middle Name</th>
> <th
> style="border-bottom:1px solid lightsteelblue; border-right:1px solid
> lightsteelblue; cursor:pointer; font-size:8pt;"
> title="Click to sort"
> onclick="document.location='<?= $_SERVER['PHP_SELF'] ?>?lastSort=<?=
> $lastSort ?>&sortDirection=<?= $sortDirection ?>&sort=EMAIL'"
> >Email</th>
> <?
> $sql = "
> SELECT Id ,
> FirstName ,
> MiddleName ,
> LastName ,
> UserName ,
> Email
> FROM people
> ORDER BY " . $sort . " " . $sortDirection . "
> LIMIT " . $range . ", " . $recordsPerPage . "
> ";
> unset($records);
> $records = $db->execute($sql);
> foreach ($records as $record)
> {
> $description = trim($record['LASTNAME'] . ', ' . $record['FIRSTNAME'] . '
> ' . substr($record['MIDDLENAME'], 0, 1));
> ?>
> <tr>
> <td style="font-size:8pt; text-align:right;">
> <a
> class="menuItem"
> href="<?= $_SERVER['PHP_SELF']?>?edit=1&id=<?= $record['ID'] ?>"
> style="font-size:7.25pt; font-weight:normal;
> text-decoration:underline; white-space:nowrap;"
> title="EDIT [ <?= $description ?> ]"
> >Edit ▷</a>
> <br>
> <a
> class="menuItem"
> href="<?= $_SERVER['PHP_SELF']?>?edit=1&delete=1&id=<?=
> $record['ID'] ?>"
> style="font-size:7.25pt; font-weight:normal;
> text-decoration:underline; white-space:nowrap;"
> title="DELETE [ <?= $description ?> ]"
> >Delete ▷</a>
> </td>
> <td style="width:150px;"><?= $record['LASTNAME'] ?></td>
> <td style="font-size:8pt;"><?= $record['FIRSTNAME'] ?></td>
> <td style="font-size:8pt;"><?= $record['MIDDLENAME'] ?></td>
> <td style="font-size:8pt;"><?= $record['EMAIL'] ?></td>
> </tr>
> <?
> }
> ?>
> </table>
> <br>
> <hr>
> <br>
> <?
> if (!count($records))
> {
> echo 'There are currently no records to display.';
> } else {
> ?>
> <div style="float:right; margin-right:15px;">
> <?
> echo implode("\r\n", $navigation);
> ?>
> </div>
> <br clear="all">
> <br>
> <?
> }
> echo $sessionFooter;
> ?>
>
>
>
Navigation:
[Reply to this message]
|