Jump to content

maxxd

Gurus
  • Posts

    1,698
  • Joined

  • Last visited

  • Days Won

    53

Everything posted by maxxd

  1. You're going to have to post your code. PHP inside HTML may not be the best idea in the world, but it works pretty flawlessly assuming everything is done correctly. My bet is that if your JavaScript stopped working, something didn't get named what it is later called and the error is pretty standard once you see it. As far as which should be done first (PHP/HTML/JavaScript), if you're determined to combine PHP and HTML, put the PHP code first. Deal with any form handling, collate the page variables, and deal with the system business logic, then render the HTML display. Keep your JavaScript entirely separate from all of that so that you can minimize and uglify it via webpack or gulp. This will at least get you a step or two closer to true separation of concerns, and that'll save you refactoring time in the future. Oh - and a form action is "run" when the form is submitted. Nothing's actually run as such, the browser redirects to the page named in the form's action property and passes the data from the form to the page via either $_GET or $_POST, depending on the method attribute of the forms.
  2. OK - I assume the 'installation & loading' section of the readme got you sorted? Ask any questions you've got on it here, but I can almost guarantee that you'll have a much, much better experience using PHPMailer than you've had using PHP's native mail() function.
  3. Yes. Entirely and completely.
  4. Or $_POST or $_GET as well as the WHERE clause; the important part here is that you're gonna need a WHERE clause in your SQL statement.
  5. OK - this is not a session problem, it's a problem of not understanding variables or SQL. Your SQL statement is currently looping through every record in the table and saying 'update the current record if the ID value of the current record is equal to the ID of the current record'. Which, as Barand pointed out, will always be true. So if you're wanting to only update one specific record at a time, you'll have to get the user_id of the specific record you want to update and then assign that value to a php variable (which begins with a dollar sign), which you will then use as the value of `user_id` in the WHERE clause.
  6. I recommend reading this page - https://www.php.net/manual/en/language.variables.basics.php
  7. You set $_SESSION['eqname'] before your inner-most if statement. There are no else clauses for the other two if statements, so I assume that's the one you're talking about. For now, don't worry about running the second query or redirecting the user. Just do this until you get the results you expect: echo "<p>{$stmt->num_rows()}</p>"; if($stmt->num_rows() > 0){ die('rows were found'); }else{ die('nothing there'); }
  8. I could be completely wrong, but I think the official Docker PHP image is built on Ubuntu with Apache2x. So it theoretically should be almost as simple as `docker-up` And @dalecosp, You're kinda killing me with that - I miss Virtualbox and Vagrant by now. Docker is great, but really fiddly and docker-compose files don't make as much sense to me as Vagrantfiles did...
  9. If you've got some time, you could use Docker or install WSL. Otherwise, you'll have to set up another version of your production server and blow things up there instead of the live site.
  10. // $id may or may not exist, doesn't matter for ($i = 0; $i <= 5; $i++) { if (isset($_REQUEST["element_id_$i"])) { // Now you're checking _any_ input for anything called element_id_{0-5} and assigning it to the session variable. // $id is still potentially undefined $_SESSION["element_id_$i"] = $_REQUEST["element_id_$i"]; // OK, so now $id is a string or integer or float or whatever (validate your input, please) $id = $_SESSION["element_id_$i"]; // $_SESSION['element_id'] is an array because you're using array_push array_push($_SESSION["element_id"], $id); } // And now $id is an array because you're overwriting the value you've already put in there // Also, at this point if $_REQUEST['element_id_{0-5}'] _isn't_ set, $_SESSION['element_id'] should // not exist and you'll get an error $id = $_SESSION["element_id"]; } So $id is an array. You can use variables as array keys, but the value of those variables has to be a string or integer - you can't use an array as an index in another array.
  11. $cart_items[$id] = $quantity; and $cart_items = array($id => $quantity); are two very different things. What's the value of $id?
  12. You can use variables as the index when you create an associative array. Considering that, and as you already have the variables that contain the id and quantity, the solution should be pretty obvious...
  13. Comment when and where it's necessary. When it comes to methods, I'm a fan of always writing documentation but at least document the parameters, regardless the scope of the method - I've heard people say it's only important to document the public API of a class. This is utter bullshit. However, when it comes to initial documentation for a class if it does something weird, then yeah - document that sucker. For instance, your Formatter class seems simple enough - it formats a thing. However, if you're not using namespaces and your system formats both HTML and JSON, but Formatter only deals with JSON then document that. I'd argue you should use namespaces or rethink your class naming scheme, but sometimes you come into legacy code and have to do what you have to do.
  14. Yeah, I got nothin'. The only thing I know about cars is where the gas goes and where to take it when something sounds weird. Again, I know very little but serial numbers should be specific to each engine, correct? So that doesn't seem like an issue in any way. Wut? At any rate, I would think if you're trying to keep track of modifications to cars and car parts the best bet would be a car table, a parts table, and a modifications table with a compound foreign key of car_id and part_id. That _theoretically_ should give you a time-specific snapshot of parts and mods per car.
  15. I strongly recommend against that. As one who will drive a car until it falls apart completely, I can see a situation where a single car can could have multiple motors, the defining data of which could be repeated. [Disclaimer: I know nothing about cars or engines, so please don't take my example as a real-world situation] If my Honda Element has a Hemi when I buy it, but I drive it to the point that the hemi dies and I put a V8 in there, cool with the unique limiter. However, if I then drive the same Element until the V8 dies and I decide to put different hemi in there, well then there's a problem. Play it safe for the future - Barand's junction table is the way to go; even if you don't use it as a many-to-many junction point right now, you may have to later.
  16. I'm sorry, but what? I'm not trying to be an ass, but take a breath, step back, and describe what you want to do one simple step at a time. Write out the pseudo-code, then post it here.
  17. And thankfully, those versions are mostly dead at this point. Or so I choose to believe, anyway...
  18. The two chunks of code you've posted are completely unrelated. I don't know what mf_get_option('login_reg_popup') should or could return, but if it's falsey it'll set the action parameter of your checkout button link to the login page. If it's truthy it'll set it to ... nothing, really. Your second chunk of code redirects everything to $_SERVER['HTTP_REFERRER'] (which I'm pretty sure is a massive security issue, not to mention the fact that it applies to everything). Then, later - assuming the code gets there after the ill-advised redirect - it sets up an action handler for template_redirect that again calls the wpse_131562_redirect() function on every page load. Assuming mf_get_option('login_reg_popup') returns false if the user is not logged in, I think what you want to do is replace the '#' in your first code chunk with wc_get_checkout_url().
  19. <td><?= $bitcoinPrice->dash->usd_24h_change ?>%</td> <td><?= $dashPrice->dash->usd_24h_change ?>%</td> <td><?= $netchainPrice->dash->usd_24h_change ?>%</td> <td><?= $pivxPrice->dash->usd_24h_change ?>%</td> Your markup is malformed - use this instead.
  20. OK - we don't know what playServerURL() or getURL() look like, so no idea what those are doing in the meantime. However, in my experience when you're dealing with AJAX you'll need to stop the actual click event from happening until you want it to. However, before we even consider that, there's a syntax error you should be seeing: $('.btn').click( function() startSound(); }); Note that there's no opening brace after the function() declaration, but there is a closing brace before the closing parenthesis. This alone should be breaking everything. Once that's fixed, I still think you'll need to block the submit until you've got done what you need done, so update like so: $('.btn').click( function(e){ e.preventDefault(); startSound(); });
  21. Just feel like this should be repeated (maybe some of my coworkers will happen across it).
  22. It's a longshot, but try flushing your rewrite rules. In WordPress admin, got to Settings > Permalinks and click 'Save'.
  23. You don't have a function named 'drop_2'. Check the documentation - the second parameter of add_action() is the function to be run. So instead of randomly having this: if (isset($_GET['func'])&& $_GET['func'] == 'drop_bl' ) { drop_bl($_GET['drop_var']); } in your functions file, change the 'action' parameter of your AJAX call to 'drop_bl'. Then don't expect to pass a parameter to the function, just check $_POST directly. Which brings up another point, you're checking $_GET but using jQuery's post() method, which is basically a shortcut for using jQuery's ajax() function with method $_POST.
  24. Few things here. I could be wrong, but I think it's too late to call the wp_enqueue_scripts hook after the template is loaded. In the JavaScript file, your AJAX url value is incorrectly formed - you're using `nova_ajax_url,ajax_url`. You need to use a period between the object and the property, not a comma. WordPress doesn't know what 'func' means as a parameter passed to the AJAX handlers - it's looking for 'action'. I don't have the slightest idea what `drop_var` is. You show a functions file, but there's no AJAX handling in what you've shown. WordPress looks for `wp_ajax_{whatever_your_action_value_is}` and `wp_ajax_nopriv_{whatever_your_action_value_is}` action hooks to handle AJAX functionality. If you're using setTimeout() to wait for a response to be returned, it's unnecessary - AJAX is asynchronous and the .done() or .fail() chained functions await the promise resolution.
  25. Describe "working" and "not working". I've just eaten and had a couple glasses of wine so I may be missing something glaring, but the code you've posted should work. Of course, that assumes your query returns more than one page of posts.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.