wil een veld controle hebben op een script van een login. Wanneer mensen hun profiel wijzigen moeten ze iets verplicht invullen, maar elke keer als ik op wijzig klik krijg ik wel de meldign dat bijv. Naam niet ingevuld maar hij veranderd hem wel gewoon en wordt dan wel gewoon door gelikt naar het volgende schrem, en als ik bijv. geen email adres invul dan veranderd hij het weer NIET.

zou er iemand iets voor kunnen verzinnen, gebruik nu deze code, dit is zonder controle...

BEDANKT


<?php 
include_once("config.php");

if ($_COOKIE['gebruikersnaam'] == "" AND $_COOKIE['loggedid'] == ""){
echo "$fout";
exit;
}
if($_POST[wijzig]){
$update = "UPDATE members SET naam='".$_POST['naam']."', achternaam='".$_POST['achternaam']."', adres='".$_POST['adres']."', postcode='".$_POST['postcode']."', woonplaats='".$_POST['woonplaats']."', geslacht='".$_POST['geslacht']."', land='".$_POST['land']."', email='".$_POST['email']."', gdatum='".$_POST['gdatum']."' WHERE gebruikersnaam='".$_COOKIE['gebruikersnaam']."'";
$query = mysql_query("$update") or die(mysql_error());
echo "Profiel is succesvol gewijzigt, een moment geduld...";
echo "<META HTTP-EQUIV='refresh' CONTENT='2; URL=?page=fans/profiel&id=".$_COOKIE['gebruikersnaam']."'>";
}
else {
$select = "SELECT * FROM members WHERE gebruikersnaam='".$_COOKIE['gebruikersnaam']."'";
$query = mysql_query($select);
$list = mysql_fetch_object($query);
echo "<table width=100%><form method=post action=?page=fans/wijzigen>
<TD><b>Gebruikersnaam:<TD>$list->gebruikersnaam<TR>
<TD><b>Status:<TD>$list->status<TR>
<TD><b>Email:<TD><input type=text name=email value='".$list->email."'> *<TR>
<TD><b>Voornaam:<TD><input type=text name=naam value='".$list->naam."'> *<TR>
<TD><b>Achternaam:<TD><input type=text name=achternaam value='".$list->achternaam."'> **<TR>
<TD><b>Geslacht:<TD><select name=geslacht><option value=Man>Man
<option value=Vrouw>Vrouw<option value=Stel>Stel<TR>
<TD><b>Adres:<TD><input type=text name=adres value='".$list->adres."'> **<TR>
<TD><b>Postcode:<TD><input type=text name=postcode value='".$list->postcode."'> **<TR>
<TD><b>Woonplaats:<TD><input type=text name=woonplaats value='".$list->woonplaats."'> *<TR>
<TD><b>Land:<TD><select name=land><option value=Nederland>Nederland
<option value=Belgiƫ>Belgiƫ<TR>
<TD><b>Geboorte Datum:<TD><input type=text name=gdatum value='".$list->gdatum."'><TR><TD><TD>
<input type=submit name=wijzig value=Wijzig></form></table>";
echo '<br>';
echo '* verplicht.';
echo '<br>';
echo '** verplicht maar maar wordt <b>niet</b> openbaar gemaakt voor leden.';
}

ob_end_flush();
?>
Maar waarom veranderd hij het dan niet al je een verkeert mail adres invult?

Sorry hoor, ben nog niet super lang bezig met php, maar bij het script voor als mensen zich aanmelden is het wel gelukt...
Andere PHP versie?
Want wat jij gebruikt klopt namelijk niet helemaal.
Dit if($_POST[wijzig]) moet zijn :

if(isset($_POST['wijzig']))

en voor de invulvelden geldt:
if(!isset($_POST['naam'])|| $_POST['naam']=="")

Dus checken of hij gezet is met isset en daarna kijken of hij mischien leeg is met =="". Dit laatste kan ook met de functie empty()
heb het veranderd, maar heb nog steeds het zelfde probleem, bij mijn aanmeld script heb ik het zo:


<?php
include_once("config.php");

$select = "SELECT * FROM members WHERE gebruikersnaam='" .
$_POST[gebruikersnaam] . "'";
$query = mysql_query($select);
$bestaatgebruikersnaam = mysql_num_rows($query);

if($_POST[aanmelden])
 {
if(!$_POST[naam])
{
echo "<li>Geen voornaam ingevuld.";
}
if(!$_POST[gebruikersnaam])
{
echo "<li>Geen Gebruikersnaam ingevuld.";
}
if(!$_POST[wachtwoord])
{
echo "<li>Geen Wachtwoord ingevuld.";
}
if(!$_POST[email])
{
echo "<li>Geen E-mail adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",
$_POST[email])) {
echo "<li>Geen geldig Email Adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9-]", $_POST[gebruikersnaam])) {
echo "<li>De Gebruikersnaam die je wilt gebruikt karakters die niet zijn
toegestaan.";
}
elseif($bestaatgebruikersnaam == 1)
{
echo "<B>Er is een Fout Opgetreden.</b><BR><li>De Gebruikersnaam die jij wilt is
al in gebruik.";
}
else {
function Activatie($lengte=10) {
   $tekens = array(a, b, c, d, e, f, g, h, i, j, l, k, j, h, g, f, d, s, s, a,
m, n, n, m, w, r, t, y, u, p);
   $random = '';

   for($i = 1; $i <= $lengte; $i++)
      $random .= $tekens[rand(0,10)];

   return strtoupper($random);
}

$activatiecode = Activatie();

            $headers  = "MIME-Version: 1.0\n"; 
            $headers .= "Content-type: text/html; charset=iso-8859-1\n"; 
            $headers .= "From: ".$jouwebsite." <".jouwemail.">\n";

mysql_query("INSERT INTO members (id, ondertitel, geslacht, avatar, gebruikersnaam, naam, wachtwoord, status, email, ip, activatie, datum) Values ('', 'Nieuw Lid', '".$_POST['geslacht']."', 'noavatar.jpg', '".$_POST['gebruikersnaam']."', '".$_POST['naam']."', '".$_POST['wachtwoord']."', 'Lid', '" . $_POST['email'] . "', '" . $_POST['ip'] . "', '".$activatiecode."', '".$_POST['datum']."')") or die(mysql_error()); 
mail("".$_POST['email']."", "Activatie Account Shakira Mebarak", "
Beste ".$_POST['naam'].", <br>
Je hebt je zojuist aangemeld op ".$jouwebsite.". <br>
Om te kunnen inloggen op je profiel moet je je profiel activeren door <a href=http://www.shakiramebarak.nl/?page=fans/activeren&activatie=".$activatiecode."&user=".$_POST['gebruikersnaam'].">hier</a> te klikken.<br>
<br>
Je logingegevens zijn: <br>
---------------------------------------------------------------------- <br>
Gebruikersnaam: ".$_POST['gebruikersnaam']." <br>
Wachtwoord: ".$_POST['wachtwoord']." <br>
Rank: Lid <br>
---------------------------------------------------------------------- <br>
<br>
Vriendelijke Groeten,<br>
Menno Bliek.<br>
<a href=http://www.shakiramebarak.nl>Shakira Mebarak</a> / <a href=http://www.shakiramebarak.nl/forum>Shakira Mebarak Forum</a><br>
",$headers);
echo "Je bent succesvol aangemeld er word een email naar je gestuurd om je
profiel te activeren.<BR>
<BR> Klik <a href=?page=main>hier</a> om naar de indexpagina te gaan.";
}
}
else {
$date = date("d-m-Y H:i:s");
$ipadres = $_SERVER['REMOTE_ADDR'];
echo "<table><form method=POST action=?page=fans/aanmelden>
<td>Gebruikersnaam: <TD><input type=text name=gebruikersnaam
value='".$_POST['gebruikersnaam']."' maxlength=12> *<tr>
<td>voornaam:<TD><input type=text name=naam value='".$_POST['naam']."'><input
type=hidden name=datum value='".$date."'> *<tr>
<td>Wachtwoord: <TD><input type=password name=wachtwoord
value='".$_POST['wachtwoord']."'><input type=hidden name=ip
value='".$ipadres."'> *<tr>
<td>Email:<TD><input type=text name=email value='".$_POST['email']."'> *<tr>
<td>Geslacht<TD><select name=geslacht><option value=Man>Man</option><option
value=Vrouw>Vrouw</option><option value=Stel>Stel</option></select><tr>
<td><td><input type=submit name=aanmelden value=Aanmelden></form>
</table>";
echo '<br>';
echo '* verplicht.';
}

ob_end_flush();
?>


deze werkt perfect....

Iemand een oplossing alsjeblieft (A)
$query = mysql_query($select);
wordt
$query = mysql_query($select) or die(mysql_error());

En hier blijf ik bij

klaasjan schreef:
Dit if($_POST[wijzig]) moet zijn :

if(isset($_POST['wijzig']))

en voor de invulvelden geldt:
if(!isset($_POST['naam'])|| $_POST['naam']=="")

Dus checken of hij gezet is met isset en daarna kijken of hij mischien leeg is met =="". Dit laatste kan ook met de functie empty()

Reageren