PHP-fout: functienaam moet een string zijn

Ik heb de volgende regels toegevoegd aan de bovenkant van mijn PHP-code, maar het gooit een foutmelding:

FATALE FOUT: Function Name MOET een touwtje in /home/reg.php zijn op regel 2

<?php
if ($_COOKIE('CaptchaResponseValue') == "false")
{
    header('location:index.php');
    return;
}
?>

Ik heb geprobeerd: $_COOKIE("CaptchaResponseValue"). De cookie is succesvol ingesteld en is beschikbaar. Waarom geeft het me een foutmelding wanneer ik gebruik van $_COOKIE?


Antwoord 1, Autoriteit 100%

Het moet $_COOKIE['name'], niet $_COOKIE('name')

$_COOKIEis een array, geen functie.


Antwoord 2, Autoriteit 12%

Gebruik van haakjes in een programmeertaal of een scripting-taal betekent meestal dat het een functie is.

Maar $_COOKIEin PHP is geen functie, het is een array . Om toegang te krijgen tot gegevens in arrays gebruikt u vierkante beugels (‘[‘ en ‘]’) die symboliseren welke index de gegevens krijgt. Dus door $_COOKIE['test']Je zegt in feite: “Geef me de gegevens van de index ‘Test’.

Nu, in uw geval, u hebt twee mogelijkheden: (1) u wilt zien of het vals is – door in de cookie of (2) te kijken of het niet eens is.

Hiervoor gebruikt u de Isset functie die in principe controleert of de variabele is ingesteld of niet.

voorbeeld

if ( isset($_COOKIE['test'] ) )

en als u wilt controleren of de waarde onwaar is en deze is ingesteld, kunt u het volgende doen:

if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )

Eén ding dat u in gedachten kunt houden, is dat als de eerste test mislukt, het niet eens de moeite zal nemen om de volgende instructie te controleren als deze ANDis ( &&).

En om uit te leggen waarom je de foutmelding “Functie moet een tekenreeks” krijgt, kijk je op deze pagina. Het gaat om het maken van functies in PHP, wat je moet onthouden is dat een functie in PHP alleen bepaalde soorten tekens kan bevatten, waar $daar niet een van is. Omdat in PHP $een variabele vertegenwoordigt.

Een functie kan er als volgt uitzien: _myFunction _myFunction123 myFunctionen ook in veel andere patronen, maar het mengen met tekens zoals $ en % zal niet werken.


Antwoord 3, autoriteit 3%

Probeer vierkante accolades met uw $_COOKIE, niet tussen haakjes. Zoals dit:

<?php
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
    header('Location: index.php');
    return;
}
?>

Ik heb je locatiekoptekst ook een beetje gecorrigeerd.


Antwoord 4

Als je wilt weten of er een cookie is ingesteld…gebruik dan

if (isset($_COOKIE['cookie']))

Antwoord 5

Het wordt $_COOKIE['CaptchaResponseValue'], niet $_COOKIE('CaptchaResponseValue')


Antwoord 6

In PHP.js is $_COOKIE eenfunctie 😉

function $_COOKIE(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length).replace(/\+/g, '%20'));
    }
    return null;
}

Via http://phpjs.org/fections/setcookie:509


Antwoord 7

Een bruikbare uitleg op hoe beugels worden gebruikt (naast het nuttige antwoord van Filip Ekberg, hierboven) te vinden in het korte papier haakjes in programmeertalen .


Antwoord 8

<?php
    require_once '../config/config.php';
    require_once '../classes/class.College.php';
    $Response = array();
    $Parms = $_POST;
    $Parms['Id'] = Id;  
        $Parms['function'] = 'DeleteCollege';
        switch ($Parms['function']) {
        case 'InsertCollege': {
            $Response = College::InsertCollege($Parms);
            break;
        }
        case 'GetCollegeById': {
            $Response = College::GetCollegeById($Parms['Id']);
            break;
        }
        case 'GetAllCollege': {
            $Response = College::GetAllCollege();
            break;
        }
        case 'UpdateCollege': {
            $Response = College::UpdateCollege($Parms);
            break;
        }
        case 'DeleteCollege': {
            College::DeleteCollege($Parms['Id']);
            $Response = array('status' => 'R');
            break;
        }
    }
    echo json_encode($Response);
?>

Other episodes