PHP script werkt niet meer.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andre Bourbon

Andre Bourbon

21/09/2025 10:32:44
Quote Anchor link
Hi ,

Ik had volgend PHP script lopen bij een provider voor het ophalen van mijn data uit een sql database en dat werkte perfect .
Na overstap na een andere provider werkt dit script niet meer .
Provider heeft PHP8.4 versie .

Mijn script :

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
<?php
// Database configuration

$Hostname = 'xxxxxxxx';       // Je hostnaam
$User = 'xxxxxxxx';  // Je gebruikersnaam
//$usertable = "xxxxxxxx"; // Database table name that gets created by setup

$Password ='xxxxxx';  // Je wachtwoord
$Database = 'xxxxxxxxx';      // Je databasenaam

// Create database connection

mysqli_connect($Hostname, $User, $Password, $Database);
 
// Check connection
if(mysqli_connect_error())
{

 echo "Connection establishing failed!";
}

else
{
 echo "Connection established successfully.";
}

                                                                    // Tot op dit punt alles ok

// SQL query to select data from database

$sql = " SELECT * FROM OnlineLogBook ORDER BY date DESC limit 10 ";

//$result = $mysqli->query($conn ,$query );                        // aanpassing echter dit geeft dezelfde fout melding

$result = $mysqli->query($sql);                                    //    dit is line 27 met de fout

$mysqli->close();
?>



// fout melding : Got error 'PHP message: PHP Warning: Undefined variable $mysqli in /data/sites/web/on7ykeu/www/loginon7yk.php on line 27; PHP message: PHP Fatal error: Uncaught Error: Call to a member function query() on null in /data/sites/web/on7ykeu/www/loginon7yk.php:27\nStack trace:\n#0 {main}\n thrown in /data/sites/web/on7ykeu/www/loginon7yk.php on line 27'



Iemand kan mij hier een hint geven ??????

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Html zonder PHP script komt perfect op de pagina

<!-- HTML code to display data in tabular format -->
<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">

    <title>Logbook</title>
    <!-- CSS FOR STYLING THE PAGE -->
    <style>
        table {
            margin: 0 auto;
            font-size: small;
            border: 1px solid black;
        }

        h1 {
          font-size : 18px;
          text-align : center;
          color : #fff;
          }

       h2{
          font-size : 16px;
          text-align : center;
          color : #000066;
         }

        th {
            font-weight: bold;
            color: #0f0;
            border: 1px solid black;
            padding: 10px;
            text-align: center;
            font-size : 16px;
        }
        td{
            background-color: #ccc;
            font-weight: bold;
            color: #000;
            
            padding: 5px;
            text-align: center;
            font-size : 14px
        }

    </style>
</head>
<body>
    <section>
        <h1>Multi Call Logbook . Last 10 Qso's for all my calls . </h1>
            <h1>Included expedition and special call sign .</h1>
        <!-- TABLE CONSTRUCTION -->
        <table>
            <tr>
                <th>Date</th>
                <th>Time</th>
                <th>Call Sign</th>
                <th>Band</th>
                <th>Freq.</th>
                <th>Mode</th>
                <th>Rst Send</th>
                <th>My Call sign</th>
            </tr>
            <!-- PHP CODE TO FETCH DATA FROM ROWS -->
            <?php
                // LOOP TILL END OF DATA
                while($row = mysqli_fetch_assoc($result))
                {

            ?>

            <tr>
                <!-- FETCHING DATA FROM EACH
                    ROW OF EVERY COLUMN -->
                <td><?php echo $rows['Date'];?></td>
                <td><?php echo $rows['Time'];?></td>
                <td><?php echo $rows['CallSign'];?></td>
                <td><?php echo $rows['Band'];?></td>
                <td><?php echo $rows['Frequency'];?></td>
                <td><?php echo $rows['Mode'];?></td>
                <td><?php echo $rows['RSTS'];?></td>
                <td><?php echo $rows['MyCallsign'];?></td>
            </tr>


            $conn->close();
            <?php
                }
            ?>

        </table>
    </section>
</body>
</html>
Gewijzigd op 21/09/2025 11:03:21 door - Ariën -
 
PHP hulp

PHP hulp

26/05/2026 13:13:30
 
- Ariën  -
Beheerder

- Ariën -

21/09/2025 11:11:39
Quote Anchor link
$mysqli verwijst nergens naar toe. Dus geef je connectie ook die naam.

Of beter wees je consistent, en gebruik je deze manier als connectie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$mysqli = new mysqli($Hostname, $User, $Password, $Database);
Gewijzigd op 21/09/2025 11:12:17 door - Ariën -
 
Andre Bourbon

Andre Bourbon

22/09/2025 10:17:26
Quote Anchor link
Hallo Arien

Hartelijk dank voor uw repons .

Ik heb ondertussen een standaard kleine script geschreven met deze inhoud .

Uiteraard bovenstaande database toegang blijft hetzelfde


// Create database connection

$mysqli = new mysqli($Hostname, $User, $Password, $Database);
//$mysqli_connect($Hostname, $User, $Password, $Database);

// Check connection
if(mysqli_connect_error())
{
echo "Connection establishing failed!";
}
else
{
echo "Connection established successfully.";
}
// so far so good ik bekomt de melding successfully en dan komt er een lege pagina .


// sql to create table
$sql = "CREATE TABLE onlinelogbook (
id mediumint(8) UNSIGNED AUTO_INCREMENT ,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {
echo "Table onlinlogbook created successfully";
} else {
echo "Error creating table: " . $conn->error;
}




?>

de fout melding bij de provider is :

[Mon Sep 22 09:36:45.608024 2025] [error] [pid 969531] mod_proxy_fcgi.c(960): [client 2a02:a03f:ac5e:7f00:186d:85be:c53b:ba8b:0] AH01071: Got error 'PHP message: PHP Warning: Undefined variable $conn in /data/sites/web/on7ykeu/www/loginandr.php on line 36; PHP message: PHP Fatal error: Uncaught Error: Call to a member function query() on null in /data/sites/web/on7ykeu/www/loginandr.php:36\nStack trace:\n#0 {main}\n thrown in /data/sites/web/on7ykeu/www/loginandr.php on line 36'

Graag repons wat is er mis met line 36 :


Andre
 
- Ariën  -
Beheerder

- Ariën -

22/09/2025 10:34:11
Quote Anchor link
Als je goed kijkt heeft je connectie de variabele $mysqli, en jij roept $conn aan.
Heb je mijn mail nog ontvangen?
Gewijzigd op 22/09/2025 10:34:30 door - Ariën -
 
Andre Bourbon

Andre Bourbon

22/09/2025 13:59:34
Quote Anchor link
Hoi ,
Hartelijk dank voor uw antwoord en ja ik heb je mails ontvangen ..

Ik ben een beginner in PHP dus heb er wat moeite mee .

Door mijn verandering van provider werkt géén enkel PHP script nog , mijn database is niet meer aanspreekbaar etc ...

Zou het kunnen dat al mijn scripts niet voldoen aan de PHP 8 standaard ????

gr
Andre
 
- Ariën  -
Beheerder

- Ariën -

22/09/2025 14:12:56
Quote Anchor link
Als je database niet aanspreekbaar is, dan moet je het toch echt zoeken in de juiste inlog. Dat staat los van de PHP-versie. Jouw bovenstaande (en niet zo complexe) script zou prima moeten werken in PHP 8.

Wat zijn de huidige problemen dan, en met welke foutmeldingen?
Bovengenoemd probleem was enkel een foutje in je script, waarbij je de verkeerde variabele gebruikt.
 
Andre Bourbon

Andre Bourbon

22/09/2025 14:38:17
Quote Anchor link
Hoi Arien,

Mijn create table werkt intussen .

Volgende stap die ik begin is : het uitlezen van mijn data uit de databse naar mijn website .
dus een php scriptje .

zoals een als een soort Search naar een item zoals :

$query = "select from OnlineLogBook where callsign like '$search'"; ---- dit werkt ook niet bij de nieuwe provider

en

$sql = "SELECT FROM OnlineLogBook ORDER BY date DESC limit 10 "; ---- dit werkt ook niet bij de nieuwe provider


mijn vraag heeft dit te maken met de Versie van PHP ???

gr
Andre
 
- Ariën  -
Beheerder

- Ariën -

22/09/2025 14:49:05
Quote Anchor link
Wat werkt er niet aan? Wat gebeurt er? Wat staat er in error log of foutmelding?

Met die regel is niks mis. Als dat niet werkt zal er waarschijnlijk een ketting reactie zijn, van iets anders wat niet werkt daarvoor. Maar de laatste grote wijziging in de basis van MySQLi was van PHP 5 naar 7.

Dus ik zet meer in op een foutje in je script of databaseconnectie dan een ondersteuningsprobleem in PHP 8.4.
Gewijzigd op 22/09/2025 14:56:35 door - Ariën -
 
Ozzie PHP

Ozzie PHP

22/09/2025 14:57:34
Quote Anchor link
Andre Bourbon op 22/09/2025 14:38:17:
$query = "select from OnlineLogBook where callsign like '$search'"; ---- dit werkt ook niet bij de nieuwe provider

en

$sql = "SELECT FROM OnlineLogBook ORDER BY date DESC limit 10 "; ---- dit werkt ook niet bij de nieuwe provider

SELECT wat? Daar hoort een veldnaam of een * (voor alle velden) bij te staan.

SELECT * FROM ...
 
Andre Bourbon

Andre Bourbon

22/09/2025 17:44:50
Quote Anchor link
Hoi Arien

Van de provider komt er géén hulp , biedt nog PHP7 als oudste versie aan .

Mij website is reeds in de lucht van het jaar 2001 .

De scripts zijn dus al zéér oud en van voor PHP5 dus ik vermoed dat ik veel zal moeten aanpassen voor het terug werkend te krijgen .


Gr André
 
- Ariën  -
Beheerder

- Ariën -

22/09/2025 18:52:41
Quote Anchor link
Andre Bourbon op 22/09/2025 17:44:50:
Hoi Arien
Van de provider komt er géén hulp , biedt nog PHP7 als oudste versie aan .


In het begin van dit topic zei je nog:" Provider heeft PHP8.4 versie."
Dat is dus de nieuwste versie. De enge hulp die je van je provider kan verwachten is een downgrade van de PHP-versie, maar dat wordt eigenlijk niet geadviseerd. In ieder geval niet naar versie die niet meer ondersteund worden: https://www.php.net/supported-versions.php

Momenteel worden 8.1 t/m 8.4 ondersteund, waarvan PHP 8.1 en 8.2 enkel nog securityupdates krijgen. Zie de lijst maar.... ;-)

Quote:
Mij website is reeds in de lucht van het jaar 2001 .

De scripts zijn dus al zéér oud en van voor PHP5 dus ik vermoed dat ik veel zal moeten aanpassen voor het terug werkend te krijgen .

Dan is er mogelijk veel werk aan de winkel. Ik ken je site niet, maar de meeste wijzigingen zitten in de MySQL ondersteuning. Als je classes gebruikt, dan is er ook een hoop bij te schaven.

Als je precies wilt weten wat er per versiebranch is aangepast, dan kan je hier beginnen:
https://www.php.net/manual/en/migration56.php. Rechts van die site staan de verwijzingen naar de verschillen tot aan PHP 8.4.

Misschien valt het mee, of misschien valt het tegen. Het is net hoe je site is opgebouwd.
Quote:
Gr André

Groeten,
Ariën



Toevoeging op 22/09/2025 18:54:30:

Ozzie PHP op 22/09/2025 14:57:34:
SELECT wat? Daar hoort een veldnaam of een * (voor alle velden) bij te staan.

SELECT * FROM ...

Scherp gezien! Ik zat meer te focussen op syntaxfouten die er niet zijn.
Maar voor André zou dit zou sowieso nooit gewerkt hebben. Ook al had hij PHP4 gedraaid.
Het is duidelijk een fout in het script.
 
Andre Bourbon

Andre Bourbon

22/09/2025 19:05:17
Quote Anchor link
Hoi Arien

Bedankt voor deze uitleg .

Ben al iets verder geraakt , van een leeg stuk pagina op de website heb ik inmiddels toch al de html code lopen
Het uitlezen van de datbase is nog niet gelukt .

hier mijn url : http://www.on7yk.eu/h-logbook.php

in het eerste vak is een zoek functie die in de database gaat zoeken naar de ingebrachte call
in het tweede vak worden de laatste 10 records ( DESC ) geladen en getoont .

gr
Andre
 
- Ariën  -
Beheerder

- Ariën -

22/09/2025 19:09:31
Quote Anchor link
Test eerst eens of de connectie werkt met dit testscript. En vul je databasegegevens in.

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
<?php
/* Onderstaande waardes aanpassen! */
$host = "localhost";
$user = "username";
$pass = "password";
$db   = "databasenaam";

/* Hierna niks meer wijzigen!*/
$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("Verbinding mislukt: " . $conn->connect_error);
}


echo "Verbinding gelukt!";

$conn->close();
?>

Wat komt eruit?
Gewijzigd op 22/09/2025 19:10:03 door - Ariën -
 
Andre Bourbon

Andre Bourbon

23/09/2025 16:55:21
Quote Anchor link
Hallo Arien

We zijn een heel stukje verder geraakt .
Dit werk al terug normaal : http://www.on7yk.eu/h-logbook.php

opmerkingen zijn welkom , mischien wat schoonheids foutjes.....

Alvast hartelijk dank voor jouw hulp

gr
Andre
 
- Ariën  -
Beheerder

- Ariën -

23/09/2025 18:21:16
Quote Anchor link
Wat schoonheidsfoutjes:

- Selecteren werkt niet, het voldoet dus niet aan de toegankelijkheidseisen
- Het Javascriptje om de tijd op te halen is ook wel een beetje antiek met document.write. Tegenwoordig die je dit met HTML wat je manipuleert door middel van JavaScript:

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
<div id="greeting"></div>

<script>
  const myDate = new Date();
  const hour = myDate.getHours();
  let greeting = "I'm not sure what time it is!";

  if (hour < 12) {
    greeting = "Good Morning on:";
  } else if (hour < 18) {
    greeting = "Good Afternoon on:";
  } else if (hour <= 23) {
    greeting = "Good Evening on:";
  }

  document.getElementById("greeting").textContent = greeting + " " + myDate.toLocaleDateString();
</script>
 



Overzicht Reageren

 
 

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.