Hi Larry great book. Hey everyone! This is my first time being stuck in the book. I've worked my way out from everything else. But now for the life of me I can't figure this out. I've stepped away from the computer overnight only to return the next day and be stuck once again. I keep on getting a "This page No valid ID, has been accessed in error" when I try to edit a users first or last name. I have replaced my code with Larry's code downloaded from the books/His website and Larry's code works fine. I have examined line by line, side by side Larry's code vs my code. I'm stuck. Any suggestions why My copied code no worky? Thank You... everyone..
php version PHP Version 5.2.4-2ubuntu5.19
Mysql Verion 5.0.51a-3ubuntu5.8 (Ubuntu)
Apache/2.2.8 (Ubuntu)
Edit a User
<?php #Script 10.3 Edit_user.php
//
//
$page_title = 'Edit a User';
include ('includes/header.html');
echo '<h1>Edit a User</h1>';
// check for a first name Verifiy Url submittal/ Verifiy post info
if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // From view_users.php
$id = $_GET['id'];
} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Form submission.
$id = $_POST['id'];
} else { // No valid ID, kill the script.
echo '<p class="error">This page No valid ID has been accessed in error.</p>';
include ('includes/footer.html');
exit();
}
// Connect Sql
require_once ('../mysqli_connect.php');
// check if form has been submitted
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
if (empty($_POST['first_name'])) {
$errors[] = 'You forgot to enter
your fist name';
} else {
$fn = mysqli_real_escape_string($dbc, trim($_POST['first_name']));
}
// Check for last name
if (empty($_POST['last_name'])) {
$errors[] = 'You forgot to enter
your last name';
} else {
$ln = mysqli_real_escape_string($dbc, trim($_POST['last_name']));
}
// check for empty email
if (empty($_POST['email'])) {
$errors[] = 'You forgot to enter
your email.';
} else {
$e = mysqli_real_escape_string($dbc, trim($_POST['email']));
}
if (empty($errors)) { //no errors
// tests for unique email
$q = "SELECT user_id FROM users WHERE email='$e' AND user_id != $id";
$r = @mysqli_query ($dbc, $q);
if (mysqli_num_rows($r) == 0) {
// makes the query:
$q = "UPDATE users SET first_name='$fn', last_name='$ln', email='$e' WHERE
user_id=$id LIMIT 1";
$r = @mysqli_query ($dbc, $q);
if (mysqli_affected_rows($dbc) == 1) {
//if it ran ok
//print a message
echo '<p>The user has been edited.</p>';
} else {
// if it did not run
echo '<p class="error"> The user could no be updated due to a system
error. We Apologize for any inconvenience.</p>';
// public message
echo '<p>' . mysqli_error($dbc) . '<br />Query: ' . $q . '</p>';
}
} else {
echo '<p class="error">The email address has already been registered.</p>';
}
} else { //report the errors
echo '<p class="error">The Following error(s) occurred:<br />';
foreach ($errors as $msg) {
echo " -$msg<br />\n";
}
echo '</p><p>Please try again.</p>';
}
} // end of submit conditional
// Retrieve user infor
$q = "SELECT first_name, last_name, email FROM users WHERE user_id=$id";
$r = @mysqli_query ($dbc, $q);
if (mysqli_num_rows($r) == 1) { // valid user id
//get the user id
$row = mysqli_fetch_array ($r, MYSQLI_NUM);
echo '<form action="edit_user.php" method="post">
<p>First Name: <input type="text" name="first_name" size="15" maxlength="15" value="' . $row[0] . '" /></p>
<p>Last Name: <input type="text" name="last_name" size="15" maxlength="30" value="' . $row[1] . '" /></p>
<p>Email Address: <input type="text" name="email" size="20" maxlength="60" value="' . $row[2] . '" /></p>
<p><input type="submit" name="submit" value="Submit" /></p>
<input type="hidden" name="id" value"' . $id . '" />
</form>';
} else {
echo '<p class="error">This page has been 1 accessed in error.</p>';
}
mysqli_close($dbc);
include ('includes/footer.html');
?>