[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:

    Code
    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
    mod_fcgid: stderr: Stack trace:, referer: xxxxx/login.php
    mod_fcgid: stderr: #0 xxxxx/header.php(60): Is_User_Banned('1'), referer: xxxx/login.php
    mod_fcgid: stderr: #1 xxxxx/index.php(2): include('/var/www/vhosts...'), referer: xxxxx/login.php
    mod_fcgid: stderr: #2 {main}, referer: xxxxx/login.php
    mod_fcgid: stderr: thrown in xxxxx/classes.php on line 171, referer: xxxx/login.php


    classes.php

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


    header.php

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


    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
    Is_User_Banned($_SESSION['id'])


    PHP
    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?


    Code
    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
    $lottery_user = new User($worked['userid'], $conn);
    $newmoney = $lottery_user->money + $amountlotto;;
    Send_Event($lottery_user->id, "Du hast im Lotto gewonnen! Glückwunsch du hast ".$amountlotto." € Gewonnen ");
    $result2 = mysqli_query($conn,"UPDATE `user` SET `money` = '".$newmoney."' WHERE `id` = '".$lottery_user->id."'");
    $result2 = mysqli_query($conn,"DELETE FROM `lottery`");

    classes.php


    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

  • Hey @Zynischer


    Das ist mir bereits bewusst das ich 3 Parameter benötige, nun ist meine Frage aber wie ich diesen Parameter sprich "$conn" dort übergebe.


    da ich wie gesagt


    Send_Event($lottery_user->id, $conn,
    Send_Event($lottery_user->id, + $conn,


    Schon Probiert habe und dies dennoch nichts gebracht hat.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!