Script helpen controleren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

- Rob -

- Rob -

12/03/2017 18:39:59
Quote Anchor link
Hallo,

Ik wou jullie even mijn PHP script laten controleren (als jullie tijd hebben). Ik heb de laatste tijd veel doorgenomen bij w3schools.com en andere php informatie websites. Zouden jullie even willen kijken of mijn script veilig is? Kwa SQL-injections etc. (bruteforce protection zit erop :-), en al uitgetest)

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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<?php
if (date("d-m-Y") <= "26-03-".date("Y"))
{

  $_SERVER['unix'] = strtotime("UTC");
}


if (date("d-m-Y") >= "26-03-".date("Y"))
{

    $_SERVER['unix'] = strtotime("UTC +1 hour");
}

function
loggedIn()
{

  if (!empty($_SESSION['id']) && is_numeric($_SESSION['id']))
  {

    return true;
  }

  else
  {
    return false;
  }
}

function
getIpadress()
{

  if (!empty($_SERVER['HTTP_CLIENT_IP']))
  {

    $_SERVER['ip'] = $_SERVER['HTTP_CLIENT_IP'];
  }

  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
  {

    $_SERVER['ip'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
  }

  else
  {
    $_SERVER['ip'] = $_SERVER['REMOTE_ADDR'];
  }
}

function
checkWrongAttempts() {
  include($_SERVER['DOCUMENT_ROOT'].'/paneel/includes/init.php');

  getIpadress();
  $ip = sha1($_SERVER['ip']);
  $datum = $_SERVER['unix'];

  $searchForWrongAttempts = $link->query("SELECT * FROM `paneel_foutepogingen` WHERE `ip`='$ip' ORDER BY `datum_foutepoging` DESC");
  if (!$searchForWrongAttempts)
  {

    echo '0+Er is een fout opgetreden, kom later terug';
    exit();
  }

  else
  {
    if ($searchForWrongAttempts->num_rows > 3)
    {

      $wrongAttempts = $searchForWrongAttempts->fetch_assoc();
      if ($_SERVER['unix'] <= strtotime('+15 minutes', $wrongAttempts['datum_foutepoging']))
      {

        $searchForLoginLog = $link->query("SELECT * FROM `paneel_logs` WHERE `ip`='$ip' AND `bericht`='Te veel foute pogingen achter elkaar om in te loggen/registreren/wachtwoord veranderen' ORDER BY `datum_log` DESC");
        if (!$searchForLoginLog)
        {

          echo '0+Er is een fout opgetreden, kom later terug';
          exit();
        }

        else
        {
          $loginLog = $searchForLoginLog->fetch_assoc();

          if ($_SERVER['unix'] >= strtotime('+15 minutes', $loginLog['datum_log']) || $searchForLoginLog->num_rows === 0)
          {

            $insertLog = $link->query("INSERT INTO `paneel_logs` (`ip`, `bericht`, `plaats`, `datum_log`) VALUES ('$ip', 'Te veel foute pogingen achter elkaar om in te loggen/registreren/wachtwoord veranderen', 'index', '$datum')");
            if (!$insertLog)
            {

              echo '0+Er is een fout opgetreden, kom later terug';
              exit();
            }

            else
            {
              echo '0+Er is een fout opgetreden, kom later terug';
              exit();
            }
          }

          else
          {
            echo '0+Er is een fout opgetreden, kom later terug';
            exit();
          }
        }
      }

      else
      {
        $deleteWrongAttempts = $link->query("DELETE FROM `paneel_foutepogingen` WHERE `ip`='$ip'");
        if (!$deleteWrongAttempts)
        {

          echo '0+Er is een fout opgetreden, kom later terug';
          exit();
        }
      }
    }
  }
}

function
login($gebruikersnaam, $wachtwoord)
{

  include($_SERVER['DOCUMENT_ROOT'].'/paneel/includes/init.php');

  checkWrongAttempts();
  getIpadress();
  $ip = sha1($_SERVER['ip']);
  $datum = $_SERVER['unix'];
  $gebruikersnaam = $link->real_escape_string($gebruikersnaam);

  $searchForUser = $link->query("SELECT * FROM `leden` WHERE `gebruikersnaam`='$gebruikersnaam'");
  if (!$searchForUser)
  {

    $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
    if (!$insertWrongLogin)
    {

      echo '0+Probeer het later opnieuw om in te loggen';
    }

    else
    {
      echo '0+Probeer het later opnieuw om in te loggen';
    }
  }

  else
  {
    if ($searchForUser->num_rows === 1)
    {

      $userDetails = $searchForUser->fetch_assoc();

      if (password_verify($wachtwoord, $userDetails['wachtwoord']))
      {

        $updateUserAccount = $link->query("UPDATE `leden` SET `laatst_online`='$datum' WHERE `gebruikersnaam`='$gebruikersnaam'");
        if (!$updateUserAccount)
        {

          echo '0+Probeer het later opnieuw om in te loggen';
        }

        else
        {
          $_SESSION['id'] = $userDetails['id'];
          echo '1+Je bent succesvol ingelogd';
        }
      }

      else
      {
        $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
        if (!$insertWrongLogin)
        {

          echo '0+Probeer het later opnieuw om in te loggen';
        }

        else
        {
          echo '0+Er zijn foute log in gegevens ingevuld';
        }
      }
    }

    else
    {
      $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
      if (!$insertWrongLogin)
      {

        echo '0+Probeer het later opnieuw om in te loggen';
      }

      else
      {
        echo '0+Deze gebruiker kan niet worden gevonden';
      }
    }
  }
}

function
register($gebruikersnaam, $wachtwoord, $wachtwoordher, $emailadres)
{

  include($_SERVER['DOCUMENT_ROOT'].'/paneel/includes/init.php');

  checkWrongAttempts();
  getIpadress();
  $ip = sha1($_SERVER['ip']);
  $datum = $_SERVER['unix'];
  $gebruikersnaam = $link->real_escape_string($gebruikersnaam);
  $wachtwoord = $link->real_escape_string($wachtwoord);
  $emailadres = $link->real_escape_string($emailadres);

  $searchForUser = $link->query("SELECT * FROM `leden` WHERE `gebruikersnaam`='$gebruikersnaam'");
  if (!$searchForUser)
  {

    $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
    if (!$insertWrongLogin)
    {

      echo '0+Probeer het later opnieuw om te registreren';
    }

    else
    {
      echo '0+Probeer het later opnieuw om te registreren';
    }
  }

  else
  {
    $userDetails = $searchForUser->fetch_assoc();

    if (strlen($gebruikersnaam) >= 2 && strlen($gebruikersnaam) <= 15)
    {

      if ($searchForUser->num_rows === 0)
      {

        if ($wachtwoord === $wachtwoordher)
        {

          if (preg_match('/\A(?=[\x20-\x7E]*?[A-Z])(?=[\x20-\x7E]*?[a-z])(?=[\x20-\x7E]*?[0-9])[\x20-\x7E]{6,}\z/', $wachtwoord) && strlen($wachtwoord) > 8)
          {

            if (filter_var($emailadres, FILTER_VALIDATE_EMAIL))
            {

              $checkPostedEmail = $link->query("SELECT * FROM `leden` WHERE `emailadres`='$emailadres'");
              if (!$checkPostedEmail)
              {

                echo '0+Probeer het later opnieuw om te registreren';
              }

              else
              {
                $wachtwoord = password_hash($wachtwoord, PASSWORD_DEFAULT);

                $createUserAccount = $link->query("INSERT INTO `leden` (`gebruikersnaam`, `wachtwoord`, `emailadres`, `ip`, `registratie_datum`) VALUES ('$gebruikersnaam', '$wachtwoord', '$emailadres', '$ip', '$datum')");
                if (!$createUserAccount)
                {

                  echo '0+Probeer het later opnieuw om te registreren';
                }

                else
                {
                  echo '1+Je account is aangemaakt, je kan nu inloggen';
                }
              }
            }

            else
            {
              $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
              if (!$insertWrongLogin)
              {

                echo '0+Probeer het later om te registreren';
              }

              else
              {
                echo '0+Dit emailadres is niet geldig';
              }
            }
          }

          else
          {
            $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
            if (!$insertWrongLogin)
            {

              echo '0+Probeer het later opnieuw om te registreren';
            }

            else
            {
              echo '0+Je wachtwoord moet bestaan uit kleine en grote letters, nummers, symbolen en grote zijn dan 8 tekens';
            }
          }
        }

        else
        {
          $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
          if (!$insertWrongLogin)
          {

            echo '0+Probeer het later opnieuw om te registreren';
          }

          else
          {
            echo '0+De wachtwoorden komen niet overeen';
          }
        }
      }

      else
      {
        $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
        if (!$insertWrongLogin)
        {

          echo '0+Probeer het later opnieuw om te registreren';
        }

        else
        {
          echo '0+Deze gebruiker helaas bestaat al';
        }
      }
    }

    else
    {
      $insertWrongLogin = $link->query("INSERT INTO `paneel_foutepogingen` (`ip`, `datum_foutepoging`) VALUES ('$ip', '$datum')");
      if (!$insertWrongLogin)
      {

        echo '0+Probeer het later opnieuw om te registreren';
      }

      else
      {
        echo '0+De gebruikersnaam moet tussen de 2 en 15 tekens bestaan';
      }
    }
  }
}

?>

Ik hoor graag verbeter punten! :D

Toevoeging op 12/03/2017 18:41:16:

TOEVOEGING:
IP adres wordt gehasht met SHA1 om de volgende reden: Voor het spel waar ik dit voor maak, controleren ze op of ik ips, keyloggers etc. achterhaal. Dus van hun moest ik IP doen met SHA1 of een andere hash.

Edit:
Onnodig dubbel bericht verwijderd.
Gewijzigd op 12/03/2017 23:08:06 door - Ariën -
 
PHP hulp

PHP hulp

29/03/2024 09:45:59
 
- Ariën  -
Beheerder

- Ariën -

12/03/2017 21:16:32
Quote Anchor link
Kan je een duidelijke topictitel meegeven die je probleemstelling / vraag vermeldt?

Toevoeging op 12/03/2017 23:15:06:

Ik heb het even doorgebladerd.....

Wie bepaalt dat de zomertijd altijd op 26 maart ingaat? Verder zou elke server automatisch gelijk moeten lopen, dus ik snap de controle niet waarbij je op UTC controleert. Waarom niet gewoon op de huidige tijdzone?

- Foutmeldingen beëindigen met een exit() is niet netjes. Waarom zou je jouw script willen afsluiten? Lekker netjes afmaken, zou ik zeggen.

- Je controleert op foute pogingen, en dan laat je een melding zien dat het e-mailadres niet geldig is. Die logisca ontgaat me. filter_var() is de enige beste functie die controleert of een mailadres goed gevalideerd is qua opbouw.
 
- Rob -

- Rob -

13/03/2017 14:30:30
Quote Anchor link
"Wie bepaalt dat de zomertijd altijd op 26 maart ingaat? Verder zou elke server automatisch gelijk moeten lopen, dus ik snap de controle niet waarbij je op UTC controleert. Waarom niet gewoon op de huidige tijdzone?"
Zomertijd heb ik opgezocht (wel elk jaar weer aanpassen), en als ik UTC gewoon pak, of mijn huidige tijdzone, heeft die steeds 1 uur te weinig...

" Foutmeldingen beëindigen met een exit() is niet netjes. Waarom zou je jouw script willen afsluiten? Lekker netjes afmaken, zou ik zeggen."
Dan laat hij een dubbele error zien want dan voert hij de rest van het script uit, dus krijg je 2 errors..

"Je controleert op foute pogingen, en dan laat je een melding zien dat het e-mailadres niet geldig is. Die logisca ontgaat me. filter_var() is de enige beste functie die controleert of een mailadres goed gevalideerd is qua opbouw."
Waar ziet u dit staan? Dan kan ik het even aanpassen

Maar voor de rest is het wel groten deels goed gemaakt toch?
 
Ben van Velzen

Ben van Velzen

13/03/2017 15:00:04
Quote Anchor link
>> Zomertijd heb ik opgezocht (wel elk jaar weer aanpassen), en als ik UTC gewoon pak, of mijn huidige tijdzone, heeft die steeds 1 uur te weinig...
date_default_timezone_set of een ini_set op date.timezone.

>> Dan laat hij een dubbele error zien want dan voert hij de rest van het script uit, dus krijg je 2 errors..
Dan is de rest van het script niet goed opgebouwd.

Verder: je vervuilt je SERVER variabele, wat niet handig is. Je hebt een vage unix variabele die in principe niet meer is dan het resultaat van de time functie. Je bepaling van het IP is op zijn minst gezegd vreemd en strict genomen zelfs fout. Je bent geinteresseerd in het IP, niet in andermans representatie daarvan. REMOTE_ADDR en alleen REMOTE_ADDR doet wat jij wilt. Behalve als je er een specifieke reden voor hebt, zoals een reverse proxy die je voor je webserver geplaatst hebt.

Je doet includes binnen functies waardoor je dus de potentie hebt om meerdere keren hetzelfde te includen. Of dat erg is hangt af van de bestanden die je includet. Netjes is het in ieder geval niet.

Je hebt ook draken van if constructies. Zodra je meer dan 2 ifs in elkaar hebt moet je je al gaan afvragen of een andere methode niet beter is, zoals een early return strategie. In de register functie bijvoorbeeld zou het een stuk leesbaarder worden als je gewoon op de negatieven controleert en gewoon zegt nee sorry dit is niet goed ipv op het eerste oog 5 controles in elkaar te nesten.
Gewijzigd op 13/03/2017 15:02:08 door Ben van Velzen
 
Ozzie PHP

Ozzie PHP

13/03/2017 17:28:50
Quote Anchor link
>> Zomertijd heb ik opgezocht (wel elk jaar weer aanpassen), en als ik UTC gewoon pak, of mijn huidige tijdzone, heeft die steeds 1 uur te weinig...

Denk je echt dat makers van websites dat ieder jaar gaan opzoeken en aanpassen? Natuurlijk niet. De juiste timezone instellen, en gebruikmaken van functies die daar rekening mee houden (hint, date() doet dat niet en daarom gaat het bij jou mis).

>> Maar voor de rest is het wel groten deels goed gemaakt toch?

Je bent nog maar pas bezig met programmeren, en dat is ook te merken. Zoals hier boven al is gezegd ... al die if's en else's achter elkaar (geneste constructies) is eerlijk gezegd nogal een puinhoop. Totaal onoverzichtelijk en totaal niet beheersbaar als je iets moet wijzigen of aanvullen.

Eerlijk gezegd snap ik niet waarom je alles zo snel wil doen, zonder dat je de basis onder de knie hebt. Als iemand mij zulke code zou aanleveren zou ik echt niet blij zijn.
 
Ivo P

Ivo P

13/03/2017 17:54:07
Quote Anchor link
je realiseert je dat

if (date("d-m-Y") <= "26-03-".date("Y"))

betekent dat het op 01-04-2017 weer kleiner dan is.
en dat op 26-04-2017 deze string (string en niet datum) weer groter is....

ALS je dat als zo wilt oplossen, doe het dan met 2017-03-26 als volgorde
 
- Rob -

- Rob -

13/03/2017 19:03:59
Quote Anchor link
"date_default_timezone_set of een ini_set op date.timezone."
Hiermee werkt de unix time nog steeds niet naar behoren? Hij blijft een uur achter lopen...

Toevoeging op 13/03/2017 19:04:53:

Kan iemand misschien een goed werkend voorbeeld geven hoe ik een goede UNIX TIME krijg? Alvast bedankt :D
 
Ben van Velzen

Ben van Velzen

13/03/2017 19:07:22
Quote Anchor link
Dan stel je een andere timezone in. De enige reden dat hij achter zou lopen is als de tijd sowieso al verkeerd staat. Als je kunstgrepen moet uithalen om op de juiste tijd uit te komen is er iets mis met de configuratie. Dat los je niet op door je script aan te passen maar door de configuratie te corrigeren.

Verder was dit uiteraard niet het ergste, je hebt een mooie waslijst om door te werken. Het advies zou zijn om gewoon opnieuw te beginnen en niet van alles bij elkaar te copy pasten zonder begrip van wat het doet en waarom het doet wat het doet. Functies hebben return values. Gebruik deze en vervuil scopes die je niet hoort te vervuilen niet is een belangrijke.
Gewijzigd op 13/03/2017 19:10:59 door Ben van Velzen
 
- Rob -

- Rob -

13/03/2017 19:12:57
Quote Anchor link
Ik heb niet gecopyd pasted, alles zelf getypt, niet opgzocht.
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 19:18:54
Quote Anchor link
Probeer eerst eens een opzet te maken met het basaalste. Formulier, controle op het versturen ervan, en bouw daarop opnieuw verder.
 
- Rob -

- Rob -

13/03/2017 19:25:51
Quote Anchor link
Maar misschien ben ik nu een beetje dom, wat is er nu dan mis met mijn script?

Toevoeging op 13/03/2017 19:28:17:

Tijden werken btw al
 
Ozzie PHP

Ozzie PHP

13/03/2017 20:14:10
Quote Anchor link
>> Maar misschien ben ik nu een beetje dom, wat is er nu dan mis met mijn script?

Zoals ik al aangaf:

Je bent nog maar pas bezig met programmeren, en dat is ook te merken. Zoals hier boven al is gezegd ... al die if's en else's achter elkaar (geneste constructies) is eerlijk gezegd nogal een puinhoop. Totaal onoverzichtelijk en totaal niet beheersbaar als je iets moet wijzigen of aanvullen.
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 20:18:44
Quote Anchor link
Als validatie kan je rij met if'jes maken waarin je alle invoer controleert, en op het moment dat er iets niet okee is, dat je die foutmelding in een array plaatst. Uiteindelijk bij het versturen van de de waarin in het formulier kijk je met count of er waardes zijn in je array, en zo ja, doorloop die foutmeldingen dan met foreach. Als er geen waardes in de array zijn, dan verwerk je de gegevens in de database.
 
- Rob -

- Rob -

16/03/2017 07:33:07
Quote Anchor link
Hallo!

Ik was even bezig en heb er dit van gemaakt:

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
function createLog($bericht, $plaats)
{

  global $_CONFIG;
  global $link;
  global $ip;
  global $datum;

  $ip = sha1($ip);

  $createLog = $link->query("INSERT INTO `".$_CONFIG['prefix']."logs` (`bericht`, `plaats`, `ip`, `datum`) VALUES ('".$link->real_escape_string($bericht)."', '".$link->real_escape_string($plaats)."', '".$link->real_escape_string($ip)."', '".$link->real_escape_string($datum)."')");
  if ($createLog)
  {

    return true;
  }
}


function
login($gebruikersnaam, $wachtwoord)
{

  global $_CONFIG;
  global $link;

  $searchForUser = $link->query("SELECT `id`, `gebruikersnaam`, `wachtwoord` FROM `leden` WHERE `gebruikersnaam`='$gebruikersnaam'");
  if($searchForUser)
  {

    if ($searchForUser->num_rows === 1 && password_verify($wachtwoord, $searchForUser['wachtwoord']))
    {

      if (createLog($gebruikersnaam.' is met succes ingelogd', 'index') === true)
      {

        $_SESSION['id'] === $searchForUser['id'];
        return true;
      }
    }
  }
}

?>


kijken of niks empty is etc. gebeurt bij de login.php (Ik werk met ajax).
Is dit dan al beter? Als hij true aangeeft wordt er bij login.php reload gedaan van pagina en bij false error: Foutieve login gegevens

Ward:
[code][/code]-tags aangepast.
Gewijzigd op 16/03/2017 08:35:11 door Ward van der Put
 
Ward van der Put
Moderator

Ward van der Put

16/03/2017 08:40:21
Quote Anchor link
Checklist. ;-)

[ ] Je gebruikt te vaak global. Je bouwt daarmee via de achterdeur afhankelijkheden in. Maak die afhankelijkheden zichtbaar door variabelen op te nemen als parameters in een functie. Dit geldt bijvoorbeeld voor global $ip in createLog($bericht, $plaats): als je er nou createLog($bericht, $plaats, $ip) van maakt, maak je zichtbaar dat je het IP-adres logt.

[ ] Als je een functie bij succes verlaat met return true, is het wel zo handig (en gebruikelijk) om voor alle overige gevallen return false te gebruiken.

[ ] Je gebruikt real_escape_string() waar dat helemaal niet nodig is. Bijvoorbeeld sha1($ip) geeft je een hexadecimaal getal: dat hoef je niet te escapen.

[ ] Deze query is extreem gevoelig voor SQL-injectie; je kunt hier beter een prepared statement gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$link
->query("SELECT `id`, `gebruikersnaam`, `wachtwoord` FROM `leden` WHERE `gebruikersnaam`='$gebruikersnaam'");
?>


[ ] Waarom doe je SELECT gebruikersnaam in combinatie met WHERE gebruikersnaam='$gebruikersnaam'? Als je de gebruikersnaam al weet, hoef je die niet te selecteren.

[ ] In de functie login() mis je na $link->query(...) een fetch: je haalt het resultaat nu niet op.

[ ] Probeer if-constructies wat minder vaak te nesten:

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
<?php
// Niet zus:
if ($foo == true) {
    if ($bar == 'baz') {
        if ($qux == 1) {
            // ···
        }
    }
}


// Maar zo:
if (
    $foo == true
    && $bar == 'baz'
    && $qux == 1
) {
    // ···
}
?>
Gewijzigd op 16/03/2017 08:41:55 door Ward van der Put
 
- Rob -

- Rob -

16/03/2017 15:48:45
Quote Anchor link
Hallo! Bedankt voor de reactie :D IK zal het meteen aanpassen!



Toevoeging op 16/03/2017 15:53:30:

Maar zou dit ook kunnen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
function loggedIn()
{
  if (
      !empty($_SESSION['id'])
     )
  {
    return true;
  }
  else
  {
    return false;
  }
}

Ik ben namelijk iemand die graag overal het zelfde doet :D
Gewijzigd op 16/03/2017 15:55:56 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

16/03/2017 15:56:24
Quote Anchor link
ikzelf zou met isset() controleren.
 
- Rob -

- Rob -

16/03/2017 16:08:33
Quote Anchor link
+ nog een vraag.
Kan ik ook niet via de functie $_CONFIG en $link meegeven? Dan heb ik ook minder globals, right?

Toevoeging op 16/03/2017 16:11:18:

+ nog een vraag.
Kan ik ook niet via de functie $_CONFIG en $link meegeven? Dan heb ik ook minder globals, right?
 
- Ariën  -
Beheerder

- Ariën -

16/03/2017 16:11:52
Quote Anchor link
Waarom zou je een eigen global-variabele aanmaken? Ikzelf sla mijn instellingen in een $settings-array op.
 
- Rob -

- Rob -

16/03/2017 16:18:00
Quote Anchor link
- Ariën - op 16/03/2017 15:56:24:
ikzelf zou met isset() controleren.


Zou u misschien even een voorbeeldje willen sturen? Ik snap het niet helemaal wat u bedoeld

Ik snap het al^^

Toevoeging op 16/03/2017 16:18:18:

- Ariën - op 16/03/2017 16:11:52:
Waarom zou je een eigen global-variabele aanmaken? Ikzelf sla mijn instellingen in een $settings-array op.

Pas ik gelijk even aan! Was nog van vorig script
Gewijzigd op 16/03/2017 16:20:41 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

16/03/2017 16:20:24
Quote Anchor link
Geen empty gebruiken, maar isset!
Een voorbeeld is niet zo heel nodig, omdat je de werking ook op php.net/isset kan vinden.
 

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.