Jump to content
Larry Ullman's Book Forums


  • Posts

  • Joined

  • Last visited

mimerkou's Achievements


Newbie (1/14)



  1. Hi there! I'm facing a problem with script 9.3 I wrote the code identically as the author did in the book, but it doesn't work. When I'm trying to edit a user, it only shows the h1: Edit a User I checked the source code, but it also doesn't work properly. It allows the user to be edited even if you enter the same email address. I include my code to this message (comments are in greek): <?php # Script 9.3 - edit_user.php // Αυτή η σελίδα επεξεργάζεται την εγγραφή ενός χρήστη // Η σελίδα προσπελάζεται από το σενάριο view_users.php $page_title = 'Edit a User'; include('includes/header.html'); echo '<h1>Edit a User</h1>'; // Έλεγχος του αναγνωριστικού χρήστη, με τη μέθοδο GET ή με τη μέθοδο POST: if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // Από το view_users.php $id = $_GET['id']; } elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Υποβολή της φόρμας $id = $_POST['id']; } else { // Μη έγκυρο αναγνωριστικό, τερματισμός του σεναρίου echo '<p class="error">This page has been accessed in error</p>'; include('includes/footer.html'); exit(); } require_once('../mysqli_connect.php'); // Έλεγχος αν υποβλήθηκε η φόρμα if (isset($_POST['submitted'])) { $errors = array(); // Ελέγξτε για μικρό όνομα if (empty($_POST['first_name'])) { $errors[] = 'You forgot to enter your first name'; } else { $fn = mysqli_real_escape_string($dbc, trim($_POST['first_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'])); } // Έλεγχος για διεύθυνση ηλεκτρονικού ταχυδρομείου if (empty($_POST['email'])) { $errors[] = 'You forgot to enter your email'; } else { $e = mysqli_real_escape_string($dbc, trim($_POST['email'])); } if (empty($errors)) { // Αν όλα είναι εντάξει // Έλεγχος για μοναδική διεύθυνση ηλεκτρονικού ταχυδρομείου $q = "SELECT user_id FROM users WHERE email='$e' AND user_id != $id"; $r = @msqli_query($dbc, $q); if (mysqli_num_rows($r) == 0) { // Δημιουργία του ερωτήματος $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) { // Αν εκτελέστηκε σωστά // Εμφάνιση μηνύματος echo '<p>The user has been edited</p>'; } else { // Αν δεν εκτελέστηκε σωστά echo '<p class="error">The user could not be edited due to a system error. We apologize for any inconvience.</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 { // Αναφορά σφαλμάτων echo '<p class="error">The following error(s) occured:<br>'; foreach ($errors as $msg) { // Εκτύπωση κάθε σφάλματος echo " - $msg<br>\n"; } echo '</p><p>Please try again</p>'; } } // Πάντα εμφάνιση της φόρμας... // Ανάκτηση στοιχείων του χρήστη $q = "SELECT first_name, last_name, email FROM users WHERE user_id=$id"; $r = @mysqli_query($dbc, $q); if (mysqli_num_rows($r) == 1) { // Έγκυρο αναγνωριστικό χρήστη, εμφάνιση της φόρμας // Λήψη στοιχείων του χρήστη $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="40" value="'.$row[2].'"></p> <p><input type="submit" name="submit" value="Submit"></p> <input type="hidden" name="submitted" value="TRUE"> <input type="hidden" name="id" value="'.$id.'"> </form>'; } else { // Μη έγκυρο αναγνωριστικό echo '<p class="error">This page has been accessed in error.</p>'; } mysqli_close($dbc); include('includes/footer.html'); ?> Any suggestions or help please!?
  • Create New...