maar het word nogal groot om elke keer $naam er bij te zetten en da 12 keer in da script te gaan zetten hoe kan ik dit doen dat dit er voor alle velden maar 1 keer in staat. het moet natuurlijk geen pagina van 1000 regels worden :p
Wat is het probleem van een pagina met 1000 regels php-code? 1000 regels efficiente en overzichtelijke code is 100x beter dan 200 regels ellende... Het aantal regels zegt helemaal niets!
<?php
$naam = nl2br(htmlentities($naam));
?>
Waar komen de gegevens trouwens vandaan? Uiteen database? Wanneer je met mysql_fetch_assoc() de boel hebt opgehaald, kun je simpel met een foreach-lusje alle gegevens uit de database even doorlopen.
@Benny: Het kan zijn dat jij het goed hebt, ik ben even de juiste volgorde kwijt. Waar je voor moet oppassen, is dat de <b> niet worden omgezet naar de htmlentities. Anders krijg je een paar fraaie < en > in je tekst te zien...
GEBRUIK DEZE FUNCTIES NOOIT OM GEGEVENS IN DE DATABASE TE ZETTEN!!
Sorry dat ik zo schreeuw, maar je helpt op deze manier de data om zeep. Je kunt nu nooit meer eenvoudig een pdf-file gaan vullen met de gegevens, of een email sturen, een text-file maken, etc. De functies zijn uitsluitend bedoeld om de gegevens op het scherm te tonen in html-formaat. Jij wilt ze in de database wegschrijven.
Je hebt beide functies dus pas nodig wanneer je de gegevens ophaalt uit de database en op het scherm wilt zetten.
Kortom, haal de functies weg en gebruik ze daar waar je html-output genereerd.
maar als je bv iets intypt in een form je gebruikt in het form een aantal spaties of drukt enter word in de db toch alles gewoon achter elkaar geplaatst
zo is de text dus niet overzichtelijk
maar als je het weergeeft vervolgens met deze functie telt dan die enter dus <br> wel want deze staat dan toch niet in de db?
2de wat mijn bedoeling daarmee is dat m'n geen html in het form kan zetten dus als ze bv zelf <br> in het form zetten dit niet zal gelden?
ik gebruik dit toch al wel een tijdje zo bij andere onderdelen van de site en lijkt toch goed te werken.
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$values = array ();
foreach ($_POST as $key => $value) {
$values[$key] = mysql_real_escape_string ($value);
// doe verder wat je wilt hier
}
}
?>
Hierna heb je een array $values met bewerkte waardes uit de POST array.
Wanneer het niet is toegestaan om html-tags in te vullen, dan gooi jij die zooi er zo weer uit door strip_tags() te gebruiken op de input. Zet deze functie nog even in de lus die Jan je al heeft gegeven voor de beveiliging en klaar ben je.
En wat de <br>'s betreft, die komen als \n in de database te staan. Dat is de wijze waarop de browser de breaks (newline) doorgeeft aan de server. In een textfile krijg je dan ook keurig een nieuwe regel, maar in html werkt dat niet. Daarom moet je voor html-output (!!!) de functie nl2br() toepassen.