-
Posts
15,053 -
Joined
-
Last visited
-
Days Won
413
Posts posted by requinix
-
-
All those URLs are working for me.
-
PHPMailer will also help you send emails that are less likely to be discarded by spam filters. And it doesn't need to rely on the system's emailing configuration.
But even then, you can never be totally sure that the email has actually reached its recipient.
-
1 hour ago, Table said:
Why do you reply in the first case?
The other problems are:
1. Connecting to the database as root and without a password
2. Running 26 separate queries to get row counts for each letter
3. Running the same query multiple times without using a prepared statement
4. The line that calls mysqli_fetch_assoc
5. Using PHP_SELF
6. Trying to navigate from one letter page to another won't work
7. Freeing a result in a variable that doesn't exist
8. Closing a connection in a variable that doesn't existI assumed that you would fix your current problem, find some of the others, and probably have more questions to ask. Then I would try to help answer them. But if you'd prefer I don't reply to you then I won't do that anymore.
- 1
-
Here's the code you have:
$query_result = mysqli_query($query);
The "procedural style" mentioned in the docs shows this:
mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
1. This is a function named "mysqli_query"
2. The first parameter is called $mysql - at least in the documentation itself, you can name your variables whatever you want - and it is a mysqli (that's a class) value
3. The second parameter is called $query and is a string value
4. The third parameter is called $result_mode and is an int(eger) value; it has a default value of MYSQLI_STORE_RESULT, which will apply when you do not pass a third argument
5. The function returns a value that is mysqli_result|bool, meaning it will be a mysqli_result (another class) value or a bool(ean) valueThe Parameters section gives more details about those three parameters. Same for the Return Values section and the return value.
There's also an Errors/Exceptions that is useful to understand when and why the function may or may not behave correctly.But back on topic:
The first parameter is not optional - there is no default value, so you must provide one yourself. You have done so with your $query variable; remember, your variable can be named whatever you want.
But there's a problem: the parameter is supposed to be a mysqli value, and you provided a query string.The second parameter is not optional either, however you are not providing one. That's what PHP is complaining about.
If you combine those two facts together, the problem should be pretty clear: you need to call the function with a mysqli and a query string, but you only called it with a query string.
I'm guessing this was originally based on mysql (no 'i') code? There is a mysql_query function but it isn't the same as the mysqli_query function.- 1
-
Before I dig much further, does the state problem happen only if both the users (you and me, in your example) request users 3/4 at the same time, or does it also happen if I request first and then you request within ~5 seconds?
-
11 minutes ago, Table said:
Fatal error: Uncaught ArgumentCountError: mysqli_query() expects at least 2 arguments, 1 given in on line 19
The error message is telling you that the function requires at least two arguments but you only passed one.
Perhaps the documentation may be of help?
There are other... issues in here, though.
-
-
Sounds more like a concurrency problem: you've got two things reading state at the same time, both finding out that the room is available, and both trying to use that room.
Operations need to be atomic, meaning the act of checking for an available room and joining the room need to work as one cohesive unit, with state information that can't be unknowingly modified by something else.How are you finding a room to assign to a user? Is it something straightforward like "SELECT available room" and then "UPDATE room SET is not available anymore"?
If not that then I don't follow what this "can't tell whether the user is 1 or 2". AJAX polling will start a request, and that request should most definitely be able to identify which user is making it...
-
Because require() isn't like PHP where you "require" a file and then you get the variables in it. In Javascript, each file is like an independent module, so if you want to share - or export - data from a file then you need to use module.exports as Strider64 showed. What require() will then do, internally, is run the file and then return to you what was exported.
If you wanted to export just the one value then you can set module.exports like that. If you had multiple values then you can treat module.exports as an object (which is what it is by default) and set properties on it; this pairs well with destructuring.
const arrayOfObjects = [ ... ]; const anotherArrayOfObjects = [ ... ]; module.exports = { arrayOfObjects, anotherArrayOfObjects };
const { arrayOfObjects } = require("./data");
-
Images are for memes. If you want to show code then please use the Code <> button and paste it into your post.
$header1 = "Content-Type text/csv"; $header2 = "Content-Disposition: attachment; filename='" . $csvname . "';";
They're both malformed: the first one is missing a colon, and the second one is using single-quotes when they're supposed to be double-quotes (and it has an extra semicolon that doesn't belong).
-
Your first goal should be to reproduce the problem - because you can't know what to fix if you don't know what it is, and if you can't reproduce the problem then how will you know if your fix is working?
1. Gather more information. What SSL error? Surely there's some more specific information someone can give you? Like an actual error message, maybe?
2. Apply some logic. Which users are seeing this? What do they have in common? Do they have anything in common at all? Can the users successfully log in at another time?
3. Think about it from a technical standpoint. There are tons of possible SSL errors (see action item 1) but most of them boil down to the server not giving an appropriate cert. Do you have multiple servers? Is there a load balancer? Geographic CDNs? Are you sure they're all configured with identical information and up-to-date certificates?
4. Examine the details. "Certain static content not found" isn't any error message I've ever seen before - assuming it's a literal message. Where is it coming from? Under what conditions will it be emitted?- 1
-
You're using the htmlentities function when you should not be.
1. You should be using htmlspecialchars instead when outputting something safely to HTML. htmlentities is unnecessary, and if you "need" it to make something look correct then that means you have other character encoding problems that need to be solved.
2. You should only be doing that at the very last moment right when you're doing the output - never before, or else you'll run into problems such as your current issue. -
Start with the values in $_POST. That will tell you only the checkboxes that were checked. Then you find out what the corresponding costs are and add them to your table - something which you can do easily with an INSERT...SELECT query.
-
What kind of "news" are you talking about? What does it look like? What information is part of the news item, by which I mean things like author names or publish dates or tags or banner images... Because unless you literally want the most basic-looking "news" ever, you're going to need something more than just plain text.
Because "build a simple flat file" is an implementation decision, and how can you decide that if you don't even know yet what you want implemented?
-
The way you describe this makes it sound like you're doing something more complicated than what it should be...
With a proper server, you can use a normal <link> to your CSS file and never need to clear a cache - if you do then that means it's not configured properly.The question to answer first is whether your browser is receiving the correct <link>, and if so why it isn't loading the CSS. My guess would be the file path, as you need to remember that $stylecss is relative to the webpage URL and not to the config.php file path.
-
If you want a distinction between $this (use the instance) and self (use the class statically) then create an enum with cases for instance vs. static, and take that enum as the argument to your attribute.
But ultimately, the caring about the instance/class needs to happen by whatever code is reading the attribute. As in, you must necessarily already have code that says "for this particular class, find me the attributes" - so reuse that information.
-
And a description of what's going on here would be...?
-
Remember the part where I said
On 10/16/2023 at 2:12 AM, requinix said:["result"]=> array(6) {
It has a "result" property, which is an array.
And remember the part where I posted
On 10/16/2023 at 2:12 AM, requinix said:$results = array_reduce($object->results, function($array, $result) {
Take the time to understand what I was describing about how to read the var_dump output, then look at that one line of code I posted to see if it makes sense according to what I described. It should not make sense, and you should be able to spot a small error.
I'm trying to get you to learn here, instead of just accepting what a person on the internet says and copy/pasting their code. You can't be a chef by copying someone else, and you can't be a programmer by copying someone else.
-
1 hour ago, ohno said:
I then have this code lower down in my script :
But what's everything in between?
Or rather, what's the whole script? Because there's something important here that isn't shown in what you've posted - if statements, function calls, reused variables...
Also, partly for good measure and partly because there's a rather high likelihood that doing so will help you discover the problem: have you verified that your error reporting/logging settings are appropriate, and then checked for error messages?
-
39 minutes ago, rick645 said:
ok maybe it's right, in my case, to use inheritance
Probably.
Inheritance represents an "is a" relationship. Would it be accurate to say that your custom exception class "is an" InvalidArgumentException? If I had code that caught InvalidArgumentException, should that code also be able to catch your exception?
Composition represents a "has a" relationship - or "needs a", or something else similar to that. Would it be accurate to say that your exception class "has an" InvalidArgumentException? Is your class a distinct form of exception separate, but not entirely unrelated to, an InvalidArgumentException?The answer seems like it would be the first one, however the $otherDetails is suspicious and suggests something more than an invalid argument, thus perhaps composition is more appropriate, however the fact that you chose to make it anonymous means it will be impossible to catch or type guard for that particular class in the first place, which makes composition almost useless.
In other words, your example doesn't make sense. If you want a special exception class then it should be a full named class. If you want special exception data then it needs to be a full named class.
And that is the real code smell.
-
Read my description of the var_dump output, then look closely at the code I posted (hint: the error message tells you exactly where to look). There was a typo.
- 1
-
Most editors and IDEs will let you open an entire folder as a project and then search across all the files for something you want. If you know what the text says, or the filename of the image, then you can search for that and see where it is.
-
Read my description of the var_dump output, then look closely at the code I posted (hint: the error message tells you exactly where to look). There was a typo.
- 1
-
51 minutes ago, rick645 said:
Many say they avoid inheritance and to encourage composition.
But do you actually understand why they say that? Because they are not saying that inheritance is bad.
So tell me: in this situation you find yourself in, why do you feel that composition is better than inheritance?
What is it for ReflectionAttribute::IS_INSTANCEOF
in PHP Coding Help
Posted
The targets are the Attribute::TARGET values.
https://www.php.net/manual/en/language.attributes.classes.php
Since an attribute can be applied to more than one type of thing, getTarget() returns the bitmask of those TARGETs. Then you can use normal bit arithmetic to find out if it applies to a class, or method, or whatever.