hallo,
ik zit met een probleempje, namelijk: als ik een form heb ingevuld moet ie dat in de database zetten *logisch*. maar er is een vaag probleem, niks komt in de database.

<?
//controleren van lege velden (jan koehoorn's scriptje)
function lege_velden(){
    foreach($_POST as $key=>$value){
        $value=trim($value);
        if(!isset($key)||strlen($value)<3){
            $tmp[$key]=' class="rood" ';
        }
    }
    return $tmp;
}
if(isset($_POST['aanmelden'])){
$voornaam=$_POST['voornaam'];
$achternaam =$_POST['achternaam'];
$bijdrage =$_POST['bijdrage'];
 }
//einde controle -----------------------------------------------------


//het ifje dat niet werkt --------------------------------------------
 if(isset($_POST['aanmelden']) && !($err = lege_velden())){
//in de database stoppen
}


//formuliertje:
 <fieldset>
<legend>Reageren</legend>
<input type="hidden" name="form1" value="1" />
<div id="formulier">
<p>
<label class="align_text" for="voornaam">Voornaam:</label><input' . $err['voornaam'] . ' id="voornaam" type="text" name="voornaam" value="' . $llgegevens['voornaam'] . '" readonly="readonly" />
</p>
<p>
<label class="align_text" for="achternaam">Achternaam:</label><input' . $err['achternaam'] . ' id="achternaam" type="text" name="achternaam" value="' . $llgegevens['achternaam'] . '" readonly="readonly" />
</p>
<p>
<label class="align_text" for="bijdrage">Tekst:</label><textarea' . $err['bijdrage'] . ' id="bijdrage" name="bijdrage">' . $bijdrage . '</textarea>
</p>
<input id="aanmelden" name="aanmelden" type="submit" class="smallbutton" value="Dit plaatsen" />
</div>
</fieldset>
</form>';
?> 

<? en ?> zijn alleen ff voor kleur :)
Hierzo staat het scriptje van jan koehoorn, en ik heb volgens mij alles hetzelfde. wat niet werkt is de if - en dan het laatste stukje: !($err = lege_velden())

edit: het zijn 3 verschillende lappen code.. dit staat niet letterlijk achter elkaar
Meestal zet je iets in de datase met:

<?php
$sql = "INSERT INTO users SET voornaam = '".mysql_real_escape_string($_POST['voornaam'])."'";
$res = mysql_query($sql) or die (mysql_error());
?>

Maar ik kan het niet vinden...

Gek he? dat er niks in je database komt. Wees er maar blij mee. Als php echt moet gaan spoken wordt je er niet blij van :P
<?php
if(isset($_POST['aanmelden']) && !($err = lege_velden())){
// in de database stoppen
}
?>
// in de database stoppen
Duidelijker kan bijna niet. Daar moet je dus het stukje script maken dat het in de database stopt.
Hier staat ook dat ik het in de DB stop. Zo dom ben ik óók weer niet hoor :)
Maar waarom geef je ons niet het stukje waar je het in de database stopt? Blijkbaar gaat daar iets fout, dus is dat stukje dan niet relevant volgens jou?
maar het komt door het IF()-je. dit stukje: !($err = lege_velden()) .. verder komt hij niet
Ik vraag mij heel erg af waar je

<?php
$err
?>

vandaan haalt
$err = lege_velden().. in lege velden staat return tmp.. dus err = tmp. en dat is een array.
if(isset($_POST['aanmelden']) && !($err = lege_velden())){

Dit is een toekenning van een waarde aan een $var. Geeft true.
$err = lege_velden()

En ! (NOT) true is false.
mm, mja. hoe controleer ik dan beter als er een veld leeg is? en waarom werkt het bij het vb van jan koehoorn wel?

Reageren