Script werkt niet meer

Overzicht

Sponsored by: Vacatures door Monsterboard

Geert Buelens

Geert Buelens

17/01/2022 17:18:26
Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 $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 -
 
PHP hulp

PHP hulp

27/05/2022 20:11:15
 
Adoptive Solution

Adoptive Solution

17/01/2022 17:23:35
 
Geert Buelens

Geert Buelens

17/01/2022 17:48:09
Anchor link
Hallo,

Via onderstaande kan ik connectie maken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$servername
= "localhost";
$username = "root";
$password = "";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";
?>


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
 
- Ariën -
Beheerder

- Ariën -

17/01/2022 17:58:26
Anchor link
Je moet uiteindelijk wel een database opgeven. Zie de quickstart waar Adoptive Solution naar linkte, anders kan je nog vrij weinig.
Gewijzigd op 17/01/2022 17:58:53 door - Ariën -
 
Geert Buelens

Geert Buelens

17/01/2022 18:28:50
Anchor link
Hi 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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
            }
            
        }
                
    }


?>
 
- Ariën -
Beheerder

- Ariën -

17/01/2022 18:37:59
Anchor link
Klopt, mysqli_query verlangt ook een tweede parameter voor de verbinding.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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 -
 
- Ariën -
Beheerder

- Ariën -

20/05/2022 09:03:06
Anchor link
.
 
 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.