array's in mysqli_real_escape_string()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris visser

chris visser

01/02/2009 14:49:00
Quote Anchor link
In mijn systeem staat de onderstaande code in de index:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
foreach($_POST as $key => $value)
{

  if(empty($value))
  {

    $aErrors = 'Je bent vergeten '.$key.' in te vullen';
  }

  else
    {
    $data[$key] = (strip_tags(mysqli_real_escape_string($mysqli, $value)));
  }
}
?>


Hiermee kan ik al mijn $_POST variabelen beveiligen, maar nu zit ik met het volgende probleem. In mijn systeem ben ik bezig met een heel uitgebreid formulier waarin meerdere checkboxes op 1 rij staan. die checkboxes hebben een naam als: name='".$i."[]' , maar daar zit het probleem ook meteen. Nu gaat mijn beveiliging een foutmelding genereren omdat het geen array's ondersteund:

Warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in H:\Database\main.php on line 28

Weet iemand hoe ik ervoor kan zorgen dat ik gewoon array's kan versturen, maar dat er geen foutmelding word gegenereerd?
 
PHP hulp

PHP hulp

28/04/2024 21:51:35
 
Han eev

Han eev

01/02/2009 14:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?PHP

function clean($post) {
  $ret = array();
  foreach($post as $key => $val) {
    if(is_array($val)) {
      $ret[$key] = clean($val);
    }
else {
      $ret[$key] = mysql_real_espace_string($val);
    }
   }

   return $ret;
}


$_POST = clean($_POST);
?>


Dit is een recursive functie, dus als het een array is roept hij zichzelf weer aan.
 
Chris visser

chris visser

01/02/2009 15:20:00
Quote Anchor link
Tx precies wat ik nodig heb ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.