Scripts
Profiel wijzigen met invoermasker
Als lid op een site kan je vaak je eigen gegevens invullen. Het kan uiteraard ook voor andere dingen gebruikt worden, het belangrijkste is controleren of de gegevens zouden kunnen bestaan.
profiel-wijzigen-met-invoermasker
<?php
// Voor dit script heb je een database en loginsysteem nodig.
// De database heeft in dit script een tabel 'leden' met de velden:
// userid, naam, adres, huisnr, huisnrtv, postcode, woonplaats, gebdatum
include('checklogin.php'); // Kijken of user is ingelogd, gebruik ik een apart script voor
include('db/dbconfig.php'); // Database verbinden dmv config scriptje
// Userid als string opnemen tbv de mysql-query
// Het userid heb ik als sessie, kan ook wel een cookie zijn.
// Nu even als vast getal
$id = 1;
// MySQL Query, haalt de oude gegevens van het lid tevoorschijn
$profielquery = mysql_query("SELECT * FROM leden WHERE userid = '$id'") or die (mysql_error());
// Profiel array maken met gegevens van user
$profiel = mysql_fetch_array($profielquery);
if (!isset($_POST['submit']))
{
$naam = $profiel['naam'];
$adres = $profiel['adres'];
$huisnr = $profiel['huisnr'];
$huisnrtv = $profiel['huisnrtv'];
$postcode = $profiel['postcode'];
$woonplaats = $profiel['woonplaats'];
$gebdatum = $profiel['gebdatum'];
}
else
{
$naam = $_POST['naam'];
$adres = $_POST['adres'];
$huisnr = $_POST['huisnr'];
$huisnrtv = $_POST['huisnrtv'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$gebdatum = $_POST['gebdatum'];
}
// In het formulier worden de oude profielgegevens gezet, dat kan door <input type='tekst name='naam' value='$naam>
// Je ziet dat de value het oude gegeven is.
// Formulier
echo "<TABLE class='tabelrand' CELLSPACING='0'><FORM action='profiel_wijzigen.php' method='post' target='_parent'>";
echo "<THEAD ALIGN='left'><TR><TD CLASS='kopje' COLSPAN='3'><A><B>Profiel wijzigen</B></A></TD></TR></THEAD>";
// NAAM
echo "<TR><TD>Naam</TD></TR><TR><TD colspan = '3'><INPUT TYPE='text' name='naam' SIZE='30' MAXLENGTH='30' VALUE='$naam'></TD></TR>";
// ADRES // HUISNUMMER // HUISNR Toevoeging
echo "<TR><TD>Straatnaam</TD><TD>Huisnr.</TD><TD>Huisnr. toevoeging</TD></TR>";
echo "<TR><TD><INPUT TYPE='text' name='adres' SIZE='30' MAXLENGTH='30' VALUE='$adres'></TD>";
echo "<TD><INPUT TYPE='text' name='huisnr' SIZE='5' MAXLENGTH='5' VALUE='$huisnr'></TD>";
echo "<TD><INPUT TYPE='text' name='huisnrtv' SIZE='5' MAXLENGTH='5' VALUE='$huisnrtv'></TD></TR>";
// POSTCODE // WOONPLAATS
echo "<TR><TD>Postcode (1234AA)</TD><TD>Woonplaats</TD></TR>";
echo "<TR><TD><INPUT TYPE='text' name='postcode' SIZE='6' MAXLENGTH='6' VALUE='$postcode'></TD>";
echo "<TD><INPUT TYPE='text' name='woonplaats' SIZE='30' MAXLENGTH='25' VALUE='$woonplaats'></TD></TR>";
// GEBOORTE DATUM
echo "<TR><TD>Geb. datum(als '311203')</TD>";
echo "<TD><INPUT TYPE='text' name='gebdatum' SIZE='6' MAXLENGTH='6' VALUE='$gebdatum'></TD></TR>";
// Knop
echo "<TR><TD><INPUT TYPE='submit' name='submit' VALUE='Bijwerken'></TD></TR>";
echo "</FORM></TABLE>";
if (isset($_POST['submit']))
{
// Er is op submit gedrukt
// Kijken of textuele velden numeriek zijn, of een postcode 4 getallen en daarna 2 letters heeft, en of de geboortedatum 6 cijfers heeft.
// De geboortedatum kan eventueel ook gechecked worden met checkdate($maand,$dag,$jaar), waar je 3 vakjes gebruikt ipv 1.
if (ereg("[0-9]",$_POST['naam']) OR ereg("[0-9]",$_POST['adres']) OR !eregi("([0-9]{4}[A-Z]{2})",$_POST['postcode']) OR ereg("[0-9]",$_POST['woonplaats']) OR !eregi("([0-9]{6})",$_POST['gebdatum']) OR is_numeric($_POST['huisnrtv']) OR !is_numeric($_POST['huisnr']) OR is_numeric($_POST['adres']) OR is_numeric($_POST['naam']))
{
// Checken op fouten
echo "De volgende fouten zijn opgetreden, herstel deze en verstuur opnieuw.<BR><BR>";
if (ereg("[0-9]",$_POST['naam'])) { echo "Naam mag alleen letters bevatten!<BR>"; }
if (ereg("[0-9]",$_POST['adres'])) { echo "Straatnaam mag alleen letters bevatten!<BR>"; }
if(!eregi("([0-9]{4}[A-Z]{2})",$_POST['postcode'])) { echo "Onjuiste postcode!<BR>"; }
if (ereg("[0-9]",$_POST['woonplaats'])) { echo "Woonplaats mag alleen letters bevatten!<BR>"; }
if (is_numeric($_POST['adres'])) { echo 'Uw adres mag niet numeriek zijn!<BR>'; }
if (!is_numeric($_POST['huisnr'])) { echo 'Uw huisnummer moet numeriek zijn!<BR>'; }
if (is_numeric($_POST['huisnrtv'])) { echo 'Uw huisnummer toevoeging mag niet numeriek zijn!<BR>'; }
if (!eregi("([0-9]{6})",$_POST['gebdatum'])) { echo 'Uw geboortedatum moet uit 6 cijfers bestaan!(als 311203 voor 31 december 2003)<BR>'; }
}
else
{
$naam = $_POST['naam'];
$adres = $_POST['adres'];
$huisnr = $_POST['huisnr'];
$huisnrtv = $_POST['huisnrtv'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$gebdatum = $_POST['gebdatum'];
// Nu heb je de variabelen, en nu kan je de database bijwerken
mysql_query("
UPDATE leden
SET
naam='$naam',
adres='$adres',
huisnr='$huisnr',
huisnrtv='$huisnrtv',
postcode='$postcode',
woonplaats='$woonplaats',
gebdatum='$gebdatum'
WHERE userid='$id'") or die (mysql_error());
// Variabelen geregistreerd, pagina vernieuwen
// _parent kan je natuurlijk veranderen door een framenaam
?>
<script language=\"JavaScript\">
window.open('profiel_wijzigen.php','_parent')
</script>
<?
}
}
?>
Reacties
0