Advertencia: trim() espera parámetro 1 para ser string, array dado en el script de php

tengo un script php, cuando me ejecutado este código, tengo advertencia

Advertencia: trim() espera parámetro 1 para ser string, array dado en home/public_html

he añadido antixss la función de vulnerabilidad de la seguridad , como la de este código a continuación. ¿cómo puedo resolver esta advertencia?

<?php
$email_to = ""; 
$email_subject = ""; 
$success = ""; 

function antixss($value)
{
    $xss = htmlspecialchars(trim($value));
    return $xss;
}


if(!isset($_POST['First_Name']) ||
   !isset($_POST['Last_Name']) 
    {
    died('Sorry, there appears to be a problem.');      
}
$first_name =antixss($_POST['First_Name']); 
$last_name = antixss($_POST['Last_Name']);    

¿cómo puedo resolver esta advertencia? gracias

  • trate de var_dump($value);
  • hola he probado tu solución, pero todavía no funciona 🙁 pero muchas gracias con tu respuesta
  • Usted debe agregar los resultados de var_dump($_POST) a la pregunta.
  • el resultado es Fatal error: Call to undefined function var_dum() en /home
  • var_dump() no var_dum()
  • debo quitar antixss () en este código? $nombre =antixss($_POST[‘Nombre’]); // se requiere

InformationsquelleAutor user3154864 | 2014-01-02

2 Kommentare

  1. 1

    Parece que el error está en el html y no en el php.

    Si $_POST['First_Name'] es una matriz mientras que no debería ser, es probable que el código html se ve algo como:

    <input name="First_Name[]" ...>
                           ^^ here, remove this
    • hola he probado tu solución, pero todavía no funciona. este es mi script html <li> <label for=»Nombre»>Nombre *</label> <input type=»text» name=»Nombre» id=»Nombre» size=»40″ value=»» /> </li> <li> <label for=»Apellidos»>apellido *</label> <input type=»text» name=»Apellidos» id=»Apellidos» size=»40″ value=»» /> </li> pero muchas gracias con tu respuesta
    • mi código html como este <input name=»Nombre» …> <input name=»Apellidos» …>
  2. 0

    Primero de todo, SI su declaración es todo desordenado

    if(!isset($_POST['First_Name']) || !isset($_POST['Last_Name']) || 
        {
        died('Sorry, there appears to be a problem.');      
    }

    De empezar con un soporte, que termina con una O signo (||). La primera reparación que, a algo como esto:

    if(!isset($_POST['First_Name']) || !isset($_POST['Last_Name'])){
        died('Sorry, there appears to be a problem.');
    }

    Entonces, si el problema persiste tipo en var_dump($value) y/o var_dump($_POST) dentro de la antixss() función, así que es algo como esto

    function antixss($value){
        var_dump($value); var_dump($_POST); exit();
        $xss = htmlspecialchars(trim($value));
        return $xss;
    }

    Y nos dicen lo que el resultado es.

    • he cambiado este código y todavía error, la salida es: string(5) «juan» de la matriz(10) { [«First_Name»]=> string(5) «juan» [«Last_Name»]=> string(7) «doe», pero gracias por su ayuda
    • debo quitar antixss en este código? $nombre =antixss($_POST[‘Nombre’]);
    • ¿Todavía producen el mismo error?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea