Jump to content
Larry Ullman's Book Forums

Larry

Administrators
  • Posts

    5413
  • Joined

  • Last visited

  • Days Won

    155

Everything posted by Larry

  1. I think you're missing an equals sign. This code-- if (mysqli_num_rows($r) = $username) { --is trying to assign the value of $username to mysqli_num_rows($r), which of course isn't possible. You want == $username instead. But that still won't work because mysqli_num_rows() is going to return an array and what you need to do is compare an element in that array to $username.
  2. You'll just need to use the mail() function. You can learn all the details and see examples in the PHP manual: http://php.net/manual/en/function.mail.php
  3. Ah, excellent find and fix! Kudos for figuring that out and thanks for sharing the solution!
  4. Yes, you're on the right path. And the concepts are a bit confusing. Remember that cookies are sent back and forth between the server and the browser. The $_COOKIES array is populated by the browser sending cookies back to the server. On the login page, the PHP script sets the cookie which means the cookie doesn't exist when the page is first loaded (i.e., it's not sent from the browser to the server upon login submission). So the logic has to factor in that the login page DOESN'T have the cookie, despite actually setting the cookie. Conversely, the cookie exists on the logout page when the page is first loaded but is then deleted (i.e., the cookie is sent from the browser to the server when accessing the logout script). This means the logic has to factor in that the cookie DOES exist upon first running the page. It probably also helps to remember that the includes become part of the page that included them. So when login.php is run without receiving a cookie from the browser, the included file also don't receive that cookie. (In other words, the execution of the included file is not a separate request from the browser.)
  5. It looks like PayPal is now using the lowercase "verified" for the payer_status. You could switch to that or use stricmp() instead.
  6. There shouldn't be. Part of the point of paying for a web host is they should have this stuff set up and working for you.
  7. This should do it: $sql_money = "SELECT j_id, amount_invested FROM j_members WHERE j_activated = 1 LIMIT 5"; $result_money = mysqli_query($conn, $sql_money); $split = mysqli_fetch_all($result_money, MYSQLI_ASSOC); Yours wasn't working, by the way, because the query selects j_id and your code refers to $data['id'].
  8. The log file helps a lot to debug this. It doesn't look like there's anything obviously amiss, which is to say it looks like all checks are passing. I would next debug this by running your MySQL queries by hand with dummy data to make sure they're all syntactically correct. You can also write more debugging info to the log file, things like "Running the SELECT query." and "No records selected." This should help you know what lines get executed and which don't.
  9. You're running the values through escape_data(), which probably means that the incoming \n (for example) gets turned into \\n which is why nothing else works from there on. And I would just use nl2br() instead of str_replace().
  10. Working backwards, that error should be given when the page does not receive a numeric ID passed in the URL. I'd check for that first.
  11. That means your SELECT query isn't working. You'll need to run it separately on the server to see what the results are. Hint: the problem is syntactical, from "WHERE" on.
  12. Sorry to hear you're still having problems. I haven't been able to test anything yet, but I just found a version of an IPN PHP example from PayPal. The key bits are: https://github.com/paypal/ipn-code-samples/blob/master/php/PaypalIPN.php#L63-L139 Some modifications would be required (including changing self::VALID to "VERIFIED" on line 135). Let me know if you need any more details on how to adapt this.
  13. When you use mysqli_fetch_array(), you're fetching only a single record at a time. Therefore, in your loop, the $menu_row variable represents a single record. It does not represent every record. The elements within $menu_row are columns of the single record. The code you have is attempting to create ALL the navigation items once for each record in the database. This isn't what you want to do for several reasons. What you need to do here is fetch all the MySQL records first (using, say, mysql_fetch_all()). Then you'll have a multidimensional array. Then you create all the navigation items just one time, referring to the proper array element in each spot. As a debugging and learning trick, I'd recommend you get in the habit of using print_r() on your variables to see what values they have at certain points. That might help you understand better what's going on.
  14. You're definitely on the right path! The next step would be start creating additional tables. For example, you'd want a students table that maps student IDs to the student's name. That's all I'll say for now so you can continue to learn yourself, but let me know if you have more questions.
  15. You only fetched a single row, which is why you got that error. As I said previously, you need to fetch all the rows from MySQL first.
  16. Right, so as I said before, you'll want to fetch the records in order and then pull them all into an array and then use PHP to display them accordingly. So with 6 columns and under 12 items, you'd display $row[0], $row[2], $row[4], $row[6], $row[8], $row[10] in the first HTML row and then $row[1], $row[3], etc. in the second HTML row. To dynamically support additional languages in the future, you'd just need to change the logic accordingly. It'll be additionally complicated if the number of languages is not divisible by 6 (the number of columns). If you write this up and start playing with it, it should become pretty obvious pretty fast how to tweak and perfect it.
  17. Glad you got this working and thanks for letting us know. If I understand you correctly, what you'll want to do is fetch the results from MySQL in the right order and then use PHP logic to output them in the desired manner. You'd want to fetch all the results into one array and then pull from it accordingly. For example, you pull in all the rows and then output, maybe, row 0, 4, 1, 5, 2, 6, 3, 7.
  18. Awesome. I've never gone down this particular path (I don't think).
  19. Yes, yes: walking away and taking a break is the most reliable debugging technique for complex problems!
  20. Okay, that's good. Except if your header file defines the $words variable, then you can't set $page_title to $words['anything'] before the header b/c $words doesn't exist yet.
  21. Thanks for the request! Unfortunately I haven't used or looked at the authorize.net API in a while, so I'm not in a position today where I could do that. I'll see if I can make the time in the future to look into this, though, but it won't be soon. Sorry about that! If anyone else has used it recently and can share any changes, that'd be most appreciated!
  22. You can only apply CSS to HTML but you can create or reference CSS from a PHP script, yes.
  23. I'm not exactly sure what "LI" means but I assume you're referring to the login credentials. If you look at the login script, you'll see the email address and password are hardcoded: https://github.com/LarryUllman/phpvqs-5ed/blob/master/13/htdocs/login.php#L14
×
×
  • Create New...