Letzte Änderung: 17. Dezember 2022
PHP Tipps
require, require_once, include, include_once
include
Beispielsweise bei einem AdServer hilfreich. Wenn die Datei nicht gefunden wird, kann die Website trotzdem angezeigt werden. Außerdem können auch mehrmals neue Werbemittel angezeigt werden.
include_once
Hilfreich, bei Dateien, die nicht unbedingt benötigt werden, aber nur einmal eingebunden werden. Dies kann zum Beispiel bei einer Header / Footer Datei der Fall sein.
require & require_once
Für ein require (ohne _once) fällt mir derzeit einfach kein gutes Beispiel ein.
Wenn eine Datei beispielsweise die Datenbankverbindung herstellt oder prüft ob der Nutzer eingeloggt ist, dann sind diese Dateien unbedingt notwendig und sollten (da sie nur einmal benötigt werden) mit require_once eingebunden werden. Wird die Datei nicht gefunden stoppt das Script mit einem Error.
htmlentities vs htmlspecialchars
I prefer to use htmlspecialchars whenever possible.
For example:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^
mysqli_real_escape_string
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "'s-Hertogenbosch";
// Object-oriented style
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
// Procedural style
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
Deal with $_POST
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = $_POST['name'];
$age = $_POST['age'];
if (empty($name))
echo "Please enter name";
elseif(empty($age))
echo "Please enter age";
else
echo "$name is $age years old.";
}
isset vs empty vs is_null
The isset() function checks if a variable is set, while the empty() function checks if a variable is set and not empty.
The isset() function considers 0 as a variable, while the empty() function considers 0 as empty.
if(isset($_POST[myField]) && $_POST[myField] != "")
{
//Do my PHP code
}
A more efficient way of doing this is obviously to use:
if(!empty($_POST[myField]))
{
//Do my PHP code
}
ISSET:
isset(""): 1
isset('apple'): 1
isset(null):
isset(FALSE): 1
isset(0): 1
isset(undefined):
isset(TRUE): 1
isset(array()): 1
isset(123): 1
EMPTY:
empty(""): 1
empty('apple'):
empty(null): 1
empty(FALSE): 1
empty(0): 1
empty(undefined): 1
empty(TRUE):
empty(array()): 1
empty(123):
IS_NULL:
is_null(""):
is_null('apple'):
is_null(null): 1
is_null(FALSE):
is_null('0'):
is_null(undefined):1, Notice: Undefined variable
is_null(TRUE):
is_null(array()):
is_null(123):