[PHP] Uncaught ArgumentCountError / Arg canceln?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [PHP] Uncaught ArgumentCountError / Arg canceln?

      Sonnigen Abend gewünscht

      Nun möchte ich mich gerne informieren wie man diesen Fehler lösen könnte

      Soweit am Fehler bemerkt ist das 2 Args gefordert sind jedoch werden nur 1 Arg übertragen.

      Ich denke mal durch das $conn verlangt er jetzt das Arg 2 ($conn) in der if abfrage von der header.php vorkommt,

      unsicherer Code wegen SQL Injection ist bereits bekannt und wird zum Späteren Zeitpunkt behoben.

      im Error_Log wird mir folgenes ausgeben:

      Quellcode

      1. mod_fcgid: stderr: PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function Is_User_Banned(), 1 passed in xxxx/header.php on line 60 and exactly 2 expected in xxxxx/classes.php:171, referer: xxxxxx/login.php
      2. mod_fcgid: stderr: Stack trace:, referer: xxxxx/login.php
      3. mod_fcgid: stderr: #0 xxxxx/header.php(60): Is_User_Banned('1'), referer: xxxx/login.php
      4. mod_fcgid: stderr: #1 xxxxx/index.php(2): include('/var/www/vhosts...'), referer: xxxxx/login.php
      5. mod_fcgid: stderr: #2 {main}, referer: xxxxx/login.php
      6. mod_fcgid: stderr: thrown in xxxxx/classes.php on line 171, referer: xxxx/login.php


      classes.php

      Quellcode

      1. function Is_User_Banned ($id, $conn) {
      2. $result = mysqli_query($conn,"SELECT * FROM `bans` WHERE `id`='$id'");
      3. return mysqli_num_rows($result);
      4. }


      header.php

      Quellcode

      1. if (Is_User_Banned($_SESSION['id']) == 1){
      2. echo "<h1>" . Why_Is_User_Banned($_SESSION['id']) . "</h1>";
      3. die();
      4. }

      beide Dateinamen sind in der Index.php mit include eingebunden.

      -SpLuXx
    • Shyim möchte dir sagen, dass du hast die Lösung praktisch schon serviert hast.

      Folgendes passt nicht zusammen:

      PHP-Quellcode

      1. Is_User_Banned($_SESSION['id'])

      PHP-Quellcode

      1. function Is_User_Banned ($id, $conn) { ... }
      Der Fehler sagt ja praktisch auch folgendes aus:
      1 passed in header.php on line 60 and exactly 2 expected in classes.php:171

      Ein Argument übergeben und exakt zwei erwartet.
    • Guten Morgen,

      hab nochmals einen Fehler gibt es dort auch wieder einen Trick den ich übersehe?

      Quellcode

      1. Fatal error: Uncaught ArgumentCountError: Too few arguments to function Send_Event(), 2 passed in C:\xampp\htdocs\rollover.php on line 45 and exactly 3 expected in C:\xampp\htdocs\classes.php:161 Stack trace: #0 C:\xampp\htdocs\rollover.php(45): Send_Event('2', 'Du hast im Lott...') #1 {main} thrown in C:\xampp\htdocs\classes.php on line 161


      rollover.php

      PHP-Quellcode

      1. $lottery_user = new User($worked['userid'], $conn);
      2. $newmoney = $lottery_user->money + $amountlotto;;
      3. Send_Event($lottery_user->id, "Du hast im Lotto gewonnen! Glückwunsch du hast ".$amountlotto." € Gewonnen ");
      4. $result2 = mysqli_query($conn,"UPDATE `user` SET `money` = '".$newmoney."' WHERE `id` = '".$lottery_user->id."'");
      5. $result2 = mysqli_query($conn,"DELETE FROM `lottery`");
      classes.php

      PHP-Quellcode

      1. function Send_Event ($id, $text, $conn){
      2. $timesent = time();
      3. $result= mysqli_query($conn,"INSERT INTO `events` (`to`, `timesent`, `text`)".
      4. "VALUES ('$id', '$timesent', '$text')");
      5. }
      Bereits versucht doch gescheitert:
      Send_Event($lottery_user->id, $conn,
      Send_Event($lottery_user->id, + $conn,

      Grüße SpLuXx
    • Hey,

      du musst schon lesen, was dir die Fehlermeldung sagt.
      Du hast eine Funktion mit 3 Parameter ($id, $text, $conn), jedoch übergibst du auch hier nur 2 ($lottery_user->id, "Du hast im Lotto...").
      Du musst einer Funktion mit 3 Parameter auch 3 Parameter übergeben. Einer Funktion mit 10 Parameter auch 10. Einer Funktion mit N Parameter auch N.
      Es sei denn, sie sind optional, hier aber nicht der Fall