In mijn script, om bepaalde user wijzigen te kunnen doorvoeren gebruik ik vaak de header(); functie.
Nu loop ik bijna aan het einde van het script tegen het volgende aan:
Warning: Cannot modify header information - headers already sent by (output started at /path/user_view.php:316) in /path/user_view.php on line 345
De code die hierbij hoort is:
echo '<div id="other">';
if(isset($_POST['other']))
{
$ssh->exec('zarafa-admin -u "'.getUserDetails('Username').'" -a "'.$_POST['type'].'" -n "'.$_POST['status'].'"');
header('Location: index.php?page=user_view&user='.getUserDetails('Username').'');
}
echo '<form method="post">';
echo '<table id="edit" class="user">';
echo '<tr>';
echo '<td>Type</td> <td><select name="type">'.(isset($_POST['type']) ? ($_POST['type'] == '0' ? '<option value="0" selected="selected">Gebruiker</option><option value="1">Administrator</option>' : '') : '<option value="0" '.(getUserDetails('Administrator') == 'no' ? 'selected="selected"' : '').'>Gebruiker</option>').(isset($_POST['type']) ? ($_POST['type'] == '1' ? '<option value="0">Gebruiker</option><option value="1" selected="selected">Administrator</option>' : '') : '<option value="1" '.(getUserDetails('Administrator') == 'yes' ? 'selected="selected"' : '').'>Administrator</option>').'</select></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Status</td> <td><select name="status">'.(isset($_POST['status']) ? ($_POST['status'] == '0' ? '<option value="0" selected="selected">Actief</option><option value="1">Niet actief</option>' : '') : '<option value="0" '.(getUserDetails('Active') == 'yes' ? 'selected="selected"' : '').'>Actief</option>').(isset($_POST['status']) ? ($_POST['status'] == '1' ? '<option value="0">Actief</option><option value="1" selected="selected">Niet actief</option>' : '') : '<option value="1" '.(getUserDetails('Active') == 'no' ? 'selected="selected"' : '').'>Niet actief</option>').'</select></td>';
echo '</tr>';
echo '<tr>';
echo '<td></td> <td><input type="submit" name="other" value="Opslaan" /> <input type="submit" name="cancel" value="Annuleren" /></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
echo '</div>';
echo '<div id="groups">';
echo '</div>';
echo '<div id="sendas">';
if(isset($_POST['sendas']))
{
foreach($_POST as $key => $value)
{
if(strpos($key, 'user-') === 0)
{
$getValue = explode ('-', $value);
if($getValue[0] == 1)
{
$ssh->exec('zarafa-admin -u "'.getUserDetails('Username').'" --add-sendas "'.$getValue[1].'"');
header('Location: index.php?page=user_view&user='.getUserDetails('Username').'');
}
if($getValue[0] == 0)
{
$ssh->exec('zarafa-admin -u "'.getUserDetails('Username').'" --del-sendas "'.$getValue[1].'"');
header('Location: index.php?page=user_view&user='.getUserDetails('Username').'');
}
}
}
}
echo '<form method="post">';
echo '<table>';
echo '<tr>';
echo '<th></th>';
echo '<th>Ja</th>';
echo '<th>Nee</th>';
echo '</tr>';
$getUsername = getUsers('0x6701001E');
$getType = getUsers('0x67B10003');
$getSendAsUsers = getSendAsUsers();
$i = 0;
foreach($getUsername as $key => $value)
{
$i++;
echo '<tr>';
if($getUsername[$key] != getUserDetails('Username'))
{
if($getType[$key] < 2)
{
echo '<td>'.$getUsername[$key].'</td>';
echo '<td><input type="radio" name="user-'.$i.'" value="1-'.$getUsername[$key].'" '.(in_array($getUsername[$key], $getSendAsUsers) ? 'checked' : '').' /></td>';
echo '<td><input type="radio" name="user-'.$i.'" value="0-'.$getUsername[$key].'" '.(!in_array($getUsername[$key], $getSendAsUsers) ? 'checked' : '').' /></td>';
}
}
echo '</tr>';
}
echo '<tr>';
echo '<td><input type="submit" name="sendas" value="Opslaan" /> <input type="submit" name="cancel" value="Annuleren" /></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
echo '</div>';
Waarbij de dik gedrukte regel 13 regel 316 is in het script.
Eerder is het script heb ik ook al 4/5 stukken met de header functie en dat gaat gewoon goed, en heb daar niks geen errors.
Ook heb ik helemaal boven en onderaan de pagina's het volgende al, zonder enig resultaat:
ob_start();
ob_end_flush();
Wat doe ik fout?