Ik heb dus een form waar users hun instellingen kunnen veranderen.

Er zit dus 1 checkbox tussen die moet worden teruggezet naar de waarde die de user de laatste keer had opgegeven. Het gaat er dus over dat hun e-mail zichtbaar is of niet

Het stukje code wat kijkt ofdat het wel of niet zichtbaar moet zijn.

<?php
$priv = (isset($_POST['privmail'])) ? 1:0;
?>

De 1 staat dus voor wel checked en 0 voor unchecked

In het forum staat dit
<td align="left"><input name="privmail" type="checkbox" value="<?php if($row[9] == 1){echo "CHECKED";}?>" /></td>
</tr>

Wat er nu dus gebeurt is dat de checkbox altijd leeg blijft ook al heb je hem de vorige keer aangeklikt. De waarde staat in de DB wel goed.

Iemand een idee hoe je dit kan oplossen?
t lijkt erop dat de waarde niet goed uit de database wordt gehaald. Print anders de variabele n keer en kijk als die dan fout is of je ergens een andere fout hebt gemaakt bij het verbinden met de database.

Mocht de waarde goed zijn dan zit er toch echt iets in je code daaro fout. Hoort die ; daar wel btw??
Als ik de ; weg haal geeft hij een foutmelding dus die zal wel goed staan.

En de waarde die hij laat zijn als je echo doet klopt wel maar hij blijft alleen unchecked...
De html code klopt niet. Je moet geen value neerzetten maar: checked="checked". Pas de code dus wat aan.

Ik heb t gecheckt in dreamweaver dus t moet kloppen :P
<INPUT type="checkbox" name="privmail" value="1">

Volgens mij zou dat gewoon moeten werken, omdat 1 gelijk is aan TRUE. Als je dat bij isset controleert, is de voorwaarde waar en krijg je dus die 1....?
Naar mijn weten werkt dit niet, wat je dan doet is dat als je de checkbox dan aanvinkt dat de variabele privmail de inhoud 1 krijgt (mits deze is aangevinkt!).
Je moet dus value="1" altijd laten staan en dan nog als deze waarde al bekend was uit de database nog eens checked="checked" door php erbij laten zetten.
Heb je mischien een voorbeeld hoe ik "checked="checked". " moet verwerken in

<?php if($row[9] == 1){echo "CHECKED";}?>

?

Heb het een en ander geprobeerd maar krijg het toch niet echt werkend. Heb het ook zonder php geprobeerd en dan is hij inderdaad aangevinkt.

Maar zodra ik het na de echo in het php stukje plaats gebeurt er niet zoveel.. Heb met de komma's lopen schuiven maar maakt allemaal niet zoveel uit....
<input type="checkbox" name="privmail" value="1" <?php if($row[9] == 1) {echo "checked='checked';} ?> />

Zoiets misschien. Je kunt er ook varianten op bedenken. Als de checkbox dan is aangevinkt krijgt deze automatisch de waarde 1. Laat deze dan bij het wijzigen in je database opnemen.

Ook voor de zekerheid altijd alle variabelen door strip_tags() halen. Er zijn altijd hackers die zelf formuliertjes inelkaar knutselen om jouw code rare dingen te laten doen. Houdt daar dus ook rekening mee.

Reageren