Amateur komt niet uit PHP code ;-)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: 1 2 volgende »

Marc Blom

Marc Blom

20/06/2023 10:07:38
Quote Anchor link
Beste,

Ik heb sinds jaar en dag een website die ik ooit gemaakt heb uit interesse en hobby. Nu is mijn server (Synology) geüpdatet naar een nieuwere php versie en werkt mijn website niet meer. Ik heb van alles geprobeerd maar mijn kennis is niet toereikend... Wie zou mij kunnen helpen om mijn website weer aan de eisen van deze tijd te kunnen maken.

Het betreft onderstaande code waar ik tegen aanloop. Het betreft een php bestand van vele, maar deze geeft foutmeldingen...

Alvast bedankt voor diegene die er naar wil kijken en er aandacht aan besteed!

Groet,

Marc

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?
// met deze 2 variabelen kun je het aantal kolommen en de kolombreedte wijzigen:
$aantalkolommen=3;
$kolombreedte="205px";

//db connectie
include('connectie.php');

//username halen uit url
$array = array('<', '>', '\\', '/', '=', '.blommetje.nl');
$request_url=$_SERVER['HTTP_HOST'];
$username=str_replace($array, "", $request_url);

// selecties maken
if ($username == "www") {
    $userid = 1;
}
else {
    $sql = mysqli_query($conn, "SELECT id, gebrnaam FROM users WHERE gebrnaam ='$username'");
    while ($res = mysqli_fetch_assoc($sql)) {
        trigger_error(mysqli_error());
    }


    if (mysqli_num_rows($sql) == 0) {
        header("Location: aanmeld.php");
        exit;
    }
else {
        while ($row = mysqli_fetch_assoc($sql)) {
            $userid = $row['id'];
        }

        $username = $row['gebrnaam'];
    }
}


//start de opbouw van de linkpagina
$linkcode="<div class=\"linktank\"><div class=\"linkcontainer\">";

//link aantallen en afbreekwaarden bepalen
$breaksmade=-0;
$makebreak=0;
$count=0;
$counttotal=0;

$sqlll= mysqli_query($connection, "SELECT COUNT(lid) as total FROM links WHERE uid ='$userid'");
if (!($temp_2 =  mysqli_query($sqlll,$conn)))
    showerror();
    $aantallen = mysqli_fetch_array($temp_2);
    
if ($aantallen['total'] == 0)
{

    include('geenlinksgevonden.php');
}


//categorien in de geselecteerde linkdir vinden
$sqll= mysqli_query($conn, "SELECT DISTINCT cat FROM links WHERE uid ='$userid' GROUP BY cat ");
if (!($temp =  mysqli_query($sqll,$conn)))
    showerror();
    $aantalcats=mysqli_num_rows($temp);

    //kolommen
    $totalrows= $aantallen['total'] + $aantalcats;
    $splitvalue= ceil($totalrows/$aantalkolommen);

    // voor elke categorie een apart blok bouwen
    while ($groep = mysqli_fetch_array($temp))
    {

        $category=$groep["cat"];

        // voor elk blok de links selecteren & html code schrijven
        $sql= mysqli_query($conn, "SELECT * FROM links WHERE cat = '$category'  AND uid ='$userid' ORDER BY naam ");
        if (!($result =  mysqli_query($sql,$connection)))
            showerror();
            $count++;
            $counttotal++;                                

            //categorie kop
            $linkcode.="<div class=\"list1\">".$category."</div><div>";
            while ($row = mysqli_fetch_array($result) )
            {

                $count++;
                $counttotal++;                                

                //link
                $linkcode.="<a target=\"_blank\" href=\"".$row["link"]."\">".$row["naam"]."</a><br>";
                if ($count >= $splitvalue)
                {

                    $makebreak=1;
                }
            }

            if ($makebreak==1)
            {


                // einde?
                if ($counttotal == $totalrows)
                {

                    $linkcode.= "</div><br>";
                }


                //nog een kolom        
                else
                {
                    $linkcode.= "</div></div><div class=\"linkcontainer\">";
                    $makebreak=0;
                    $count=0;
                    $breaksmade++;
                }
            }

            else
            {

            //einde categorie
            $linkcode.= "</div><br>";
            }
        }
    

        //niet genoeg kolommen maar wel genoeg categorien correctie:
        if ($breaksmade < $aantalkolommen && $aantalcats >=$aantalkolommen)
        {
            function
str_replace_count($search,$replace,$subject,$times)
        {

         $subject_original=$subject;
          $len=strlen($search);  
           $pos=0;
           for ($i=1;$i<=$times;$i++)
        {

            $pos=strpos($subject,$search,$pos);
               if($pos!==false)
            {
              
                $subject=substr($subject_original,0,$pos);
                   $subject.=$replace;
                   $subject.=substr($subject_original,$pos+$len);
                   $subject_original=$subject;
               }

            else
            {
                break;
               }
           }

           return($subject);
    }

    $extrabreaks =$aantalkolommen-$breaksmade;
    $linkcode = str_replace_count("</div><br>",  "</div></div><div class=\"linkcontainer\">",  $linkcode, ($extrabreaks-1));
}

?>

<style type="text/css">
<!--
.list1 {
    font-weight:bold;
    background-color:#0060ac;
    /* background-color: #E96516; */
    color: #ffffff;
    text-align:center;
    /* letter-spacing: 1px; */
    line-height: 17pt;
    margin-bottom: 5px;
    border-radius: 10px 10px 10px 10px;
    /* border:2px solid #E96516; */
}

.linktank {
width:<? echo ($aantalkolommen*$kolombreedte)+($aantalkolommen*14) ?>px;
}

.linkcontainer {
    float:left;
    margin:0px 5px;
    line-height: 13pt;
    width:<? echo $kolombreedte;?>;
}
-->
</style>
<?php echo "<br clear=\"all\">".$linkcode.""; ?>
 
PHP hulp

PHP hulp

27/04/2024 12:31:03
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 10:25:10
Quote Anchor link
Dan moet je toch even vertellen welke foutmeldingen je krijgt. :-)
 
Marc Blom

Marc Blom

20/06/2023 10:27:55
Quote Anchor link
sorry, bijgaande de foutmeldingen:

Connected successfully Fatal error: Uncaught ArgumentCountError: mysqli_error() expects exactly 1 argument, 0 given in /volume1/web/linkcontainer.php on line 20 ArgumentCountError: mysqli_error() expects exactly 1 argument, 0 given in /volume1/web/linkcontainer.php on line 20 Call Stack: 0.0002 360936 1. {main}() /volume1/web/index.php:0 0.0018 362440 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0522 423336 3. mysqli_error() /volume1/web/linkcontainer.php:20
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 10:40:53
Quote Anchor link
De melding is vrij duidelijk. mysqli_error() vereist een argument, en je vergeet die mee te geven:
Quote:
mysqli_error() expects exactly 1 argument, 0 given

mysqli_error() wordt dus: mysqli_error($conn)

Verder zie ik wat SQL-injection mogelijkheden in je queries. Dus bescherm deze ook even goed met mysqli_real_escape_string()
Gewijzigd op 20/06/2023 10:52:34 door - Ariën -
 
Ad Fundum

Ad Fundum

20/06/2023 10:42:35
Quote Anchor link
En het staat op je NAS in de map /volume1/web, bestand linkcontainer.php regel 20 .. :-)
 
Marc Blom

Marc Blom

20/06/2023 10:47:02
Quote Anchor link
Thanks, ik ga er mee stoeien!
 
Ad Fundum

Ad Fundum

20/06/2023 10:49:03
Quote Anchor link
@Ariën, je bedoelt mysqli_real_escape_string()
Gewijzigd op 20/06/2023 10:49:21 door Ad Fundum
 
Marc Blom

Marc Blom

20/06/2023 10:50:22
Quote Anchor link
pfff, nu krijg ik een verhaal als foutmelding :-)

Connected successfully Notice: in /volume1/web/linkcontainer.php on line 20 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0020 423360 3. trigger_error($message = '') /volume1/web/linkcontainer.php:20 Warning: Trying to access array offset on value of type null in /volume1/web/linkcontainer.php on line 30 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Warning: Undefined variable $connection in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Warning: Undefined variable $userid in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /volume1/web/linkcontainer.php on line 43 TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /volume1/web/linkcontainer.php on line 43 Call Stack: 0.0001 360928 1. {main}() /volume1/web/index.php:0 0.0010 362432 2. include('/volume1/web/linkcontainer.php') /volume1/web/index.php:32 0.0022 423256 3. mysqli_query($mysql = NULL, $query = 'SELECT COUNT(lid) as total FROM links WHERE uid =\'\'') /volume1/web/linkcontainer.php:43

Toevoeging op 20/06/2023 10:51:04:

Volgens mij correct aangepast...
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?
// met deze 2 variabelen kun je het aantal kolommen en de kolombreedte wijzigen:
$aantalkolommen=3;
$kolombreedte="205px";

//db connectie
include('connectie.php');

//username halen uit url
$array = array('<', '>', '\\', '/', '=', '.blommetje.nl');
$request_url=$_SERVER['HTTP_HOST'];
$username=str_replace($array, "", $request_url);

// selecties maken
if ($username == "www") {
    $userid = 1;
}
else {
    $sql = mysqli_query($conn, "SELECT id, gebrnaam FROM users WHERE gebrnaam ='$username'");
    while ($res = mysqli_fetch_assoc($sql)) {
        trigger_error(mysqli_error($conn));
    }


    if (mysqli_num_rows($sql) == 0) {
        header("Location: aanmeld.php");
        exit;
    }
else {
        while ($row = mysqli_fetch_assoc($sql)) {
            $userid = $row['id'];
        }

        $username = $row['gebrnaam'];
    }
}


//start de opbouw van de linkpagina
$linkcode="<div class=\"linktank\"><div class=\"linkcontainer\">";

//link aantallen en afbreekwaarden bepalen
$breaksmade=-0;
$makebreak=0;
$count=0;
$counttotal=0;

$sqlll= mysqli_query($connection, "SELECT COUNT(lid) as total FROM links WHERE uid ='$userid'");
if (!($temp_2 =  mysqli_query($sqlll,$conn)))
    showerror();
    $aantallen = mysqli_fetch_array($temp_2);
    
if ($aantallen['total'] == 0)
{

    include('geenlinksgevonden.php');
}


//categorien in de geselecteerde linkdir vinden
$sqll= mysqli_query($conn, "SELECT DISTINCT cat FROM links WHERE uid ='$userid' GROUP BY cat ");
if (!($temp =  mysqli_query($sqll,$conn)))
    showerror();
    $aantalcats=mysqli_num_rows($temp);

    //kolommen
    $totalrows= $aantallen['total'] + $aantalcats;
    $splitvalue= ceil($totalrows/$aantalkolommen);

    // voor elke categorie een apart blok bouwen
    while ($groep = mysqli_fetch_array($temp))
    {

        $category=$groep["cat"];

        // voor elk blok de links selecteren & html code schrijven
        $sql= mysqli_query($conn, "SELECT * FROM links WHERE cat = '$category'  AND uid ='$userid' ORDER BY naam ");
        if (!($result =  mysqli_query($sql,$connection)))
            showerror();
            $count++;
            $counttotal++;                                

            //categorie kop
            $linkcode.="<div class=\"list1\">".$category."</div><div>";
            while ($row = mysqli_fetch_array($result) )
            {

                $count++;
                $counttotal++;                                

                //link
                $linkcode.="<a target=\"_blank\" href=\"".$row["link"]."\">".$row["naam"]."</a><br>";
                if ($count >= $splitvalue)
                {

                    $makebreak=1;
                }
            }

            if ($makebreak==1)
            {


                // einde?
                if ($counttotal == $totalrows)
                {

                    $linkcode.= "</div><br>";
                }


                //nog een kolom        
                else
                {
                    $linkcode.= "</div></div><div class=\"linkcontainer\">";
                    $makebreak=0;
                    $count=0;
                    $breaksmade++;
                }
            }

            else
            {

            //einde categorie
            $linkcode.= "</div><br>";
            }
        }
    

        //niet genoeg kolommen maar wel genoeg categorien correctie:
        if ($breaksmade < $aantalkolommen && $aantalcats >=$aantalkolommen)
        {
            function
str_replace_count($search,$replace,$subject,$times)
        {

         $subject_original=$subject;
          $len=strlen($search);  
           $pos=0;
           for ($i=1;$i<=$times;$i++)
        {

            $pos=strpos($subject,$search,$pos);
               if($pos!==false)
            {
              
                $subject=substr($subject_original,0,$pos);
                   $subject.=$replace;
                   $subject.=substr($subject_original,$pos+$len);
                   $subject_original=$subject;
               }

            else
            {
                break;
               }
           }

           return($subject);
    }

    $extrabreaks =$aantalkolommen-$breaksmade;
    $linkcode = str_replace_count("</div><br>",  "</div></div><div class=\"linkcontainer\">",  $linkcode, ($extrabreaks-1));
}

?>

<style type="text/css">
<!--
.list1 {
    font-weight:bold;
    background-color:#0060ac;
    /* background-color: #E96516; */
    color: #ffffff;
    text-align:center;
    /* letter-spacing: 1px; */
    line-height: 17pt;
    margin-bottom: 5px;
    border-radius: 10px 10px 10px 10px;
    /* border:2px solid #E96516; */
}

.linktank {
width:<? echo ($aantalkolommen*$kolombreedte)+($aantalkolommen*14) ?>px;
}

.linkcontainer {
    float:left;
    margin:0px 5px;
    line-height: 13pt;
    width:<? echo $kolombreedte;?>;
}
-->
</style>
<?php echo "<br clear=\"all\">".$linkcode.""; ?>
Gewijzigd op 20/06/2023 10:53:10 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 10:54:45
Quote Anchor link
Is het nu $connection of $conn?
 
Marc Blom

Marc Blom

20/06/2023 10:57:04
Quote Anchor link
Het is $conn en heb het aangepast in regel 43. Echter de foutmeldingen blijven me om de oren vliegen, ben de draad volledig kwijt, haha
 
Jan R

Jan R

20/06/2023 10:57:15
Quote Anchor link
't ja dat zal je dus 1 voor 1 moeten aanpassen.
Volgende is dus in linkcontainer op lijn 20

Ik zie ook al staan: Undefined variable $connection terwijl je op andere plaatsen $conn gebruikt.
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 11:02:16
Quote Anchor link
Ik zie ook dat je <? gebruik i.p.v. <?php.
Dat zal ook voor problemen kunnen zorgen omdat de short-tag al lange tijd wordt afgeraden.
Gewijzigd op 20/06/2023 11:03:03 door - Ariën -
 
Marc Blom

Marc Blom

20/06/2023 11:02:56
Quote Anchor link
Ok, ga ik aanpassen, thanks!
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 11:04:23
Quote Anchor link
Welke editor gebruik je? Als een goede editor gebruikt, dan zou je al op de vingers getikt moeten worden als je een argument vergeet, en houdt auto-complete je op de hoogte welke variabele je moet gebruiken.
Gewijzigd op 20/06/2023 11:04:35 door - Ariën -
 
Marc Blom

Marc Blom

20/06/2023 11:06:04
Quote Anchor link
euh, ik gebruik teksteditor op mijn Mac. Welke editor kan je aanbevelen?
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 11:07:25
Quote Anchor link
Ikzelf gebruik NetBeans IDE.
 
Ad Fundum

Ad Fundum

20/06/2023 11:16:24
Quote Anchor link
Op Mac gebruikte ik vroeger TextWrangler.
Maar tegenwoordig helpt Eclipse mij met alles wat ik nodig heb.
NetBeans heb ik nooit geprobeerd maar ziet er op het eerste gezicht ook goed uit.

We kunnen live meekijken op https://www.blommetje.nl .
Gewijzigd op 20/06/2023 11:17:53 door Ad Fundum
 
Marc Blom

Marc Blom

20/06/2023 11:17:24
Quote Anchor link
Heb netbeans nu geïnstalleerd, maar ook dat is even puzzelen. Zag de functie debug, maar moet nu wat argumenten opgeven...
 
- Ariën  -
Beheerder

- Ariën -

20/06/2023 11:30:44
Quote Anchor link
Als je deftig wilt programmeren, dan zet je de display_errors uit in productie. :)
Errors kan je altijd in de, voor jou bereikbare, error_log vinden.
 
Ivo P

Ivo P

20/06/2023 12:37:33
Quote Anchor link
- Ariën - op 20/06/2023 11:30:44:
Als je deftig wilt programmeren, dan zet je de display_errors uit in productie. :)
Errors kan je altijd in de, voor jou bereikbare, error_log vinden.


Maar in je ontwikkel-omgeving zet je die juist wel aan, zodat je met alle errors direct om je oren geslagen wordt.

Zet je overal het weergeven van je errors uit, dan kan het zo maar zijn dat je jaren met een fout blijft zitten, zonder dat in de gaten te hebben. (zeker als je ook niet heel vaak je errorlog raadpleegt.)
 
Marc Blom

Marc Blom

20/06/2023 13:16:00
Quote Anchor link
Voorlopig worstel ik nog met netbeans, kom er nog niet echt uit.

En ook niet uit mijn code...
 

Pagina: 1 2 volgende »



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.