Jump to content
Larry Ullman's Book Forums

StephenM

Members
  • Posts

    59
  • Joined

  • Last visited

Everything posted by StephenM

  1. Hi there, I'm not sure if this is the source of the problem but you could check. What happens if you make the following change on line 3: <?php if ($_POST) { $myoptions=$_POST['options'][0];
  2. Does this modification make any difference? SELECT DISTINCT (h.hotel_name) , r.room_name, f.features_name
  3. Hi, Did you try and run the SQL query on its own in phpmyadmin? It might reveal more information.
  4. Hi. Check the tip on page 124. mysql -u yourusername -p sitename If successful login, it will directly open the sitename database.
  5. It talks about that a bit more here: http://dev.mysql.com/doc/refman/4.1/en/time-zone-support.html
  6. Somebody else who uses the same OS as you with XAMPP installed might know how to go about it?
  7. Hi, does mysql start without problems from the shell (without navigating to the mysql bin directory) ?
  8. I tested this code and it worked for me without changing your code. So I'm not sure why either.
  9. I am not sure what is wrong either but here are some suggestions of things to have a second look at: See at the end of your code, an extra bracket looks out of place and I wonder is it messing things up? exit(); }else{//IF THE EMAIL ADDRESS IS ALREADY REGISTERED echo '<p class="error">The email address is not acceptable because it is already registered</p>'; } } Another security issue consider is lack of filtering of the email variable although I don't think this is your current problem (you didn't use real escape string function here) // Check for an email address: if (empty($_POST['email'])) { $errors[] = 'You forgot to enter your email address.'; } else { $e = trim($_POST['email']); } And finally, it could really help to follow Larry's advice and see what the query is. To help that, you could temporarily remove the header and exit functions yourself so the data is echoed to the page and you can see it without the page moving off somewhere else. Perhaps something along these lines: if (empty($errors)) { // If everything is OK //DETERMINE WHETHER THE EMAIL ADDRESS HAS ALREADY BEEN REGISTERED $q = "SELECT user_id FROM users WHERE email = '$e'"; $result = mysqli_query ($dbcon, $q); echo '<h1>'; // TEMPORARY TO SEE QUERY - remove this line later echo $q; // TEMPORARY TO SEE QUERY - run this query in phpmyadmin and remove this line later echo '</h1>'; // TEMPORARY TO SEE QUERY - remove this line later if (mysqli_num_rows($result) == 0){//The mail address has not been registered already therefore... // Register the user in the users table $q = "INSERT INTO users (user_id, title, fname, lname, email, psword, registration_date, uname, class, addr1, addr2, city, county, pcode, phone, paid) VALUES (' ', '$title', '$fn', '$ln', '$e', SHA1('$p'), NOW(), '$uname', '$class', '$ad1', '$ad2', '$cty', '$cnty', '$pcode', '$ph', '$pd' )"; $result = @mysqli_query ($dbcon, $q); // Run the query. if ($result) { // If it ran OK. header ("location: register-thanks.php"); exit(); } else { // If it did not run OK // Error message: echo '<h2>System Error</h2> <p class="error">Registration failed because of a system error. We apologize for the inconvenience.</p>'; // Debugging message: echo '<p>' . mysqli_error($dbcon) . '<br><br>Query: ' . $q . '</p>'; } // End of if ($result) mysqli_close($dbcon); // Close the database connection // Include the footer and stop the script include ('footer.php'); exit(); } else { //IF THE EMAIL ADDRESS IS ALREADY REGISTERED echo '<p class="error">The email address is not acceptable because it is already registered</p>'; echo '<h2>Error!</h2> <p class="error">The following error(s) occurred:<br>'; foreach ($errors as $msg) { // Print each error. echo " - $msg<br>\n"; } echo '</p><h3>Please try again.</h3><p><br></p>'; }// End of if (empty($errors)) }
  10. to be honest, I've had to read some of the code a few times myself when reading the book. sometimes it's difficult to read the code when it's on the two column layout because it's all bundled up together.
  11. If you have a closer look, you will probably notice that this is due to if statements inside if statements rather than any mistake.
  12. I can't find anything obvious wrong. In your login.php, what argument is inside the redirect_user() function. At the moment, you are being redirected to index.php. This is the default setting for the redirect_user() function. What you need to have is redirect_user('loggedin.php') Can you confirm what code you have running on the server for redirect_user()?
  13. But there should be only one row of results since this user has selected just one county --> i'm not sure if that is the problem. $tresult is an associative array but you have not referenced any values in the array. $q = "SELECT title, description, image, x_id FROM x_representatives WHERE county_id = '$tresult' ORDER BY $order_by LIMIT $start, $display"; perhaps it should be something like: $county = $tresult['county_id']; $q = "SELECT title, description, image, x_id FROM x_representatives WHERE county_id = '$county' ORDER BY $order_by LIMIT $start, $display"; I could have some syntax errror here above but you see the idea I'm getting at.
  14. Hi Hartley, Thanks, padding was the issue. I hadn't expected that since I didn't add any whitespace. I had already checked for the type but that was not the issue. Was it whitespace around "CORRECT" or is it apostrophes? Do you know why? [ I wasn't expecting that at all] Thanks again for your assistance, here is the code with the solution: options.success = function(response) { console.log(response); // I see CORRECT in the console. console.log(response.length); // returns 9 console.log(typeof response); // returns string var trimmed_response = $.trim(response); console.log(trimmed_response.length); // returns 7 // Worked: switch(trimmed_response) { case "CORRECT": console.log('I can see the response!'); //works // Hide the form: $('#login').hide(); // Show a message: $('#results').removeClass('error'); $('#results').text('You are now logged in!'); break; case 'INCORRECT': console.log('I can see the response!'); //works $('#results').text('The submitted credentials do not match those on file!'); $('#results').addClass('error'); break; case 'INCOMPLETE': $('#results').text('Please provide an email address and a password!'); $('#results').addClass('error'); break; case 'INVALID_EMAIL': console.log('I can see the response!'); //works $('#results').text('Please provide a valid email address!'); $('#results').addClass('error'); break; default : console.log('why can i not see the response?'); // successfully executed } console.log('got this far'); }; // End of success. options.url = 'login_ajax.php';
  15. Hi all, I've hit a roadblock and I can't debug this issue. Infact, I'm amazed that it's not working. It seems like something trivial but i can't see it. So in chapter 15, there is an AJAX request and everything works fine except the switch statement is not working as I would expect and as a result, the jQuery code is not being executed. The console returns CORRECT so this means the response is returned from the php file successfully but I can't figure out why the switch statement doesn't take this response variable and compare it with the case statements. Can anyone see what is wrong? options.success = function(response) { console.log(response); // I see CORRECT in the console. switch(response) { case 'CORRECT': console.log('I can see the response!'); //fails // Hide the form: $('#login').hide(); // Show a message: $('#results').removeClass('error'); $('#results').text('You are now logged in!'); break; case 'INCORRECT': console.log('I can see the response!'); //fails $('#results').text('The submitted credentials do not match those on file!'); $('#results').addClass('error'); break; case 'INCOMPLETE': console.log('I can see the response!'); //fails $('#results').text('Please provide an email address and a password!'); $('#results').addClass('error'); break; case 'INVALID_EMAIL': console.log('I can see the response!'); //fails $('#results').text('Please provide a valid email address!'); $('#results').addClass('error'); break; default : console.log('why can i not see the response?'); // successfully executed } console.log('got this far'); // successfully exectued }; // End of success. options.url = 'login_ajax.php';
  16. Just wondering, why do you leave a comma at the end of your array? Will this cause an error? [ I don't know, anybody elso know?]
  17. Can you add anymore information or clues? are you running xampp or some other WAMP system successfully? What address are you entering? (eg localhost/path_to_website)
  18. Also, perhaps you can point out the differences between the code that worked and the code that didn't work. That should help figure out what the problem is. And by the way, there is a comma here at the end of your array. $allowed = array ('application/pdf', 'application/DXF','application/dxf', 'application/DWG', 'application/dwg','image/pjpeg', 'image/jpeg', 'image/JPG', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png',);
  19. use this function to check the mime type: [it's discussed on page 414 in chapter 13, not chapter 11] $mime_type = finfo_file( finfo_open(FILEINFO_MIME_TYPE), $YOUR_FILE ); I also had some problems with mime types and headers for .ogg files. In the end I couldn't solve it but I will post that as a separate topic at some stage in the future.
  20. StephenM

    Java Or C#

    thanks for the replies antonio, it really does help. i think you are probably right, i could put js on hold and do what i can in terms of php. knowing how to build an ecommerce site is one of my main goals though but i think ill wait until edition 2 comes out. i will start java once the course starts. i have to say contributors on this forum and these forums of larrys are excellent.
×
×
  • Create New...