I'm getting this warning
Warning: trim() expects parameter 1 to be string, array given in ..
which is my trim line.
The full code is functioned to send an error when fields are empty. However, this error appears saying every field is empty, but only the 'native' field is meant to be required so thats my 2nd problem.
Thanks for any help!
session_start();
$err = array();
$user_id = intval($_SESSION['user_id']);
// otherwise
if (isset($_POST['doLanguage'])) {
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
// check if current user is banned
$the_query = sprintf("SELECT COUNT(*) FROM users WHERE `banned` = '0' AND `id` =
'%d'", $user_id);
$result = mysql_query($the_query, $link);
$user_check = mysql_num_rows($result);
// user is ok
if ($user_check > 0) {
// check for empty fields
foreach ($_POST as $key => $val) {
$value = trim($val);
if (empty($value)) {
$err[] = "ERROR - $key is required";
}
}
// no errors
if(empty($err)) {
for($i = 0; $i < count($_POST["other"]); $i++)
$native = mysql_real_escape_string($_POST['native'][$i]);
$other = mysql_real_escape_string($_POST['other'][$i]);
$other_list = mysql_real_escape_string($_POST['other_list'][$i]);
$other_read = mysql_real_escape_string($_POST['other_read'][$i]);
$other_spokint = mysql_real_escape_string($_POST['other_spokint'][$i]);
$other_spokprod = mysql_real_escape_string($_POST['other_spokprod'][$i]);
$other_writ = mysql_real_escape_string($_POST['other_writ'][$i]);
// insert into the database
$the_query = sprintf("INSERT INTO `language`
(`user_id`,`native`,`other`,`other_list`,`other_read`, `other_spokint`
,`other_spokprod`,`other_writ` ) VALUES ('%d','%s','%s','%s','%s','%s','%s','%s')",
$user_id,$native,$other,$other_list,$other_read,
$other_spokint,$other_spokprod,$other_writ);
// query is ok?
if (mysql_query($the_query, $link) ){
// redirect to user profile
header('Location: myaccount.php?id=' . $user_id);
}
}
}
}