2016-05-25 15 views
0

nicht erstellen Ich habe eine lange Zeichenfolge über Student und benötigen diese Zeichenfolge zu desc hinzufügen.Moodle API kann Benutzer mit HTML-Tag in Beschreibung

$core_external = new core_user_external(); 

$UserFields = array(
    'username' => $_GET['username'], 
    'password' => $_GET['password'], 
    'firstname' => $_GET['firstname'], 
    'lastname' => $_GET['lastname'], 
    'email' => $_GET['email'], 
    'city' => $_GET['city'], 
    'country' => $_GET['country'], 
    'description' => $_GET['desc'] 
); 

$usersids = $core_external->create_users(array($UserFields)); 

wenn ich versuche, 'desc' senden wie "<br>sdfasdfasdf<br>" nächste Fehler angezeigt

Ungültige externe api Parameter: der Wert ist "<br>sdfasdfasdf<br>", der Server erwartete "Text" Typ Fehlercode: InvalidParameter

Wie können HTML-Tags in get- oder post-Methoden hinzugefügt werden?

Antwort

0

zu verwenden, sollten Sie nie direkt _GET $ verwenden, kann es SQL-Injection einzuführen.

Verwenden eines dieser anstelle

'description' => optional_param('desc', '', PARAM_TEXT); 

oder

'description' => required_param('desc', PARAM_TEXT); 

Verwenden der relevante PARAM_XXX Option für jeden der Parameter.

Wenn Sie sich die core_user_external::create_users_parameters() ansehen, wird angezeigt, welche Typen für jeden Parameter verwendet werden.

+0

in Bibliothek fand ich als nächstes: 'Beschreibung' => neuer externer_Wert (PARAM_TEXT, 'Benutzerprofil Beschreibung, kein HTML', VALUE_OPTIONAL), wirklich? Core-Funktion nehmen Sie keine HTML-Tags? es ist möglich, dies zu vermeiden? oder müssen VALUE_OPTIONAL irgendwie wechseln, Ideen? –

+0

ok ich schalte PARAM_TEXT auf PARAM_RAW, aber .... es sieht so falsch aus * feelbadman * –

0

versuchen \n statt <br>

\nsdfasdfasdf\n