Script werkt niet meer
Ik wil iets testen via c:\xamp
1) Ik heb een ontwerp terug gevonden waarbij men verbinding maakt met de DB via connect.php
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("sponsorgroephageland") or die (mysql_error());
?>
mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("sponsorgroephageland") or die (mysql_error());
?>
Doch dit werkt niet
2)met onderstaande kan ik verbinding maken met de db waarom lukt dat niet met het bovenstaande?
Code (php)
1
2
3
2
3
<?php
$db = new PDO('mysql:host=localhost;dbname=sponsorgroephageland', 'root', '');
?>
$db = new PDO('mysql:host=localhost;dbname=sponsorgroephageland', 'root', '');
?>
=> dus ik wil met onderstaande settings de settings laten werken onder punt 1. Volgens mij staat dit toch goed?
Kan iemand mij helpen hiermee?
Thx
mvg,
Geert B
Gewijzigd op 05/05/2022 20:38:55 door - Ariën -
https://www.php.net/manual/en/function.mysql-connect.php
Gebruik het voorbeeld op deze pagina.
https://www.php.net/manual/en/mysqli.quickstart.connections.php
https://www.php.net/manual/en/mysqli.select-db.php
Gewijzigd op 17/01/2022 17:26:25 door Adoptive Solution
Via onderstaande kan ik connectie maken
Code (php)
Maar ik moet uiteraard verbinding maken met geert geef ik dit dan in localhost:\geert?
Hierna krijg ik een error in line 8
Ik ben een leek en zou graag dit terug werkende krijgen
Thx
mvg,
Geert B
Gewijzigd op 17/01/2022 17:58:53 door - Ariën -
Idd mijn kennis is te klein om dit "verouderd" php'tje werkende te krijgen
Login werkt nu maar wanneer ik inlog krijg ik volgende fouten
Fatal error: Uncaught ArgumentCountError: mysqli_query() expects at least 2 arguments, 1 given in /customers/8/9/e/sponsorgroep3provincies.be/httpd.www/hagelandrace/login.php:15 Stack trace: #0 /customers/8/9/e/sponsorgroep3provincies.be/httpd.www/hagelandrace/login.php(15): mysqli_query('SELECT `kbdb` F...') #1 /customers/8/9/e/sponsorgroep3provincies.be/httpd.www/hagelandrace/index.php(73): require_once('/customers/8/9/...') #2 {main} thrown in /customers/8/9/e/sponsorgroep3provincies.be/httpd.www/hagelandrace/login.php on line 15
Ik heb dan in login.php mysql al vervangen door mysqli maar blijft de fout op line 15 zitten, jammer maar is niet op 1-2-3 te fixen vrees ik wa dus niet enkel een probleem van connectie met de db te maken
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$kbdb = "";
if (isset($_POST['submit-login'])) {
$login_membership = $_POST['membership'];
if (empty($login_membership)) {
echo '<div class="error"><span>Vul uw KBDB lidnummer in.</span></div>';
}
else {
$account_result = mysqli_query("SELECT `kbdb` FROM user WHERE kbdb='$login_membership'") or die (mysqli_error());
while($account_result_row = mysqli_fetch_array( $account_result )) {
$kbdb = $account_result_row['kbdb'];
}
if (!empty($kbdb)) {
$_SESSION['membership'] = $kbdb;
header('Location: user/');
exit();
}
else {
echo '<div class="error"><span>Er is geen account gevonden met het KBDB lidnummer <strong>'. $login_membership. '</strong>.</span></div>';
}
}
}
?>
$kbdb = "";
if (isset($_POST['submit-login'])) {
$login_membership = $_POST['membership'];
if (empty($login_membership)) {
echo '<div class="error"><span>Vul uw KBDB lidnummer in.</span></div>';
}
else {
$account_result = mysqli_query("SELECT `kbdb` FROM user WHERE kbdb='$login_membership'") or die (mysqli_error());
while($account_result_row = mysqli_fetch_array( $account_result )) {
$kbdb = $account_result_row['kbdb'];
}
if (!empty($kbdb)) {
$_SESSION['membership'] = $kbdb;
header('Location: user/');
exit();
}
else {
echo '<div class="error"><span>Er is geen account gevonden met het KBDB lidnummer <strong>'. $login_membership. '</strong>.</span></div>';
}
}
}
?>
Code (php)
1
2
3
2
3
<?php
$account_result = mysqli_query($conn, "SELECT `kbdb` FROM user WHERE kbdb='$login_membership'") or die (mysqli_error());
?>
$account_result = mysqli_query($conn, "SELECT `kbdb` FROM user WHERE kbdb='$login_membership'") or die (mysqli_error());
?>
Ik raad persoonlijk aan om óf de functies óf object-georiënteerd óf procedureel te gebruiken.
Procedureel is met PHP-functions:
mysqli_query($conn, "SELECT... FROM.. etc...");
Object-georiënteerd is met objecten, herkenbaar aan pijlen:
$result = $mysqli->query("SELECT... FROM.. etc...");
Zie ook: https://www.php.net/mysqli_query
Ikzelf gebruik de object-georiënteerde versie omdat je die, als je wat gevorderd bent, uit kan breiden.
Je kan ze ook mixxen, maar omdat de opbouw van de functies en de objecten anders is, kan het verwarrend zijn.
Daarnaast raad ik aan om je ook te wapenen tegen SQL-injection. $_POST['membership'] is niet beveiligd, en ieder kan nu eenvoudig je query manipuleren om bijvoorbeeld je data te stelen.
Zie ook: mysqli_real_escape_string
Gewijzigd op 17/01/2022 18:40:15 door - Ariën -
.