akkoord met voorwaarden

Status
Niet open voor verdere reacties.

paulburuma

Gebruiker
Lid geworden
11 dec 2001
Berichten
382
Ik heb een vraag:
Ik heb een pagina waarop je je kunt aanmelden. Nu wil ik graag een checkbox onderaan hebben die eerst aangevinkt moet worden voordat er aangemeld kan worden. Wie weet hoe dit moet? Dus dat als je m niet aanvinkt, je je ook niet kunt aanmelden

Grtz Ptje.nl
 
Ff snel een voorbeeldje :

PHP:
<?


if(isset($_POST['submit'])) { /* Als op submit gedrukt is */ 

if(!isset($_POST['checkbox'])) { /* Als checkbox niet aangevinkt is */
	die("Je bent het niet eens met de voorwaarden? Blijf dan ook maar weg !");
}else{
	echo "ok your in";
}
}


echo "<form name=\"form\" method=\"post\" action=\"checkbox.php\">";
echo "<input type=\"checkbox\" name=\"checkbox\">";
echo "<input type=\"submit\" name=\"submit\">";

?>

Zit op stage dus ff snel en waarschijnlijk slordig gedaan maar je snapt het idee waarschijnlijk wel :)

Suc6
 
PHP:
<?session_start();?><?
include("include.php");
head();


if ($action == "register") {
	if (!$_POST[username] OR !$_POST[email] OR !$_POST[pass1]) {
		echo "U heeft niet alles ingevult, ga terug en vul alles in";
	} elseif ($_POST[pass1] != $_POST[pass2]) {
		echo "Passworden zijn niet gelijk, ga terug en probeer nog een keer";
	} else {
		$result = mysql_query("select * from users where username='$_POST[username]'");
		if ($row = mysql_fetch_Array($result)) {
			echo "Gebruikersnaam is in gebruik, ga terug en kies een andere";
		} else {
			mysql_query("INSERT INTO users (id, username, email, ref, glaasjes, euro, pass) VALUES (NULL, '$_POST[username]', '$_POST[email]', '$_POST[refid]', 0, 0, '$_POST[pass1]')") or print(mysql_error());
			$purl =  "http://www.ptje.nl/dealer/koop.php?id=" . mysql_insert_id();
			echo "U kunt nu gaan beginnen met promoten van u url:<br>\n $purl";
			mail("$_POST[email]", "Ptjes dealer", "Beste $_POST[username],\n\nBedankt voor het aanmelden bij hosting Dealer.\nhier vind u registratie gegevens\n\nGebruikersnaam: $_POST[username]\nWachtwoord: $_POST[pass1]\nUrl: $purl\n\nMet vriendelijke groet,\nHet Ptjes Dealer team.\nhttp://www.ptje.nl/dealer/",
			"From: Wapen Dealer <info@ptje.nl\r\n"
    			."Reply-To: From: hosting dealer <info@ptje.nl>\r\n"
    			."X-Mailer: PHP/" . phpversion());
		}
	}
} else {
?><title>Ptjes Dealer</title><body>

Momenteel kun je je aanmelden maar nog geen prijzen winnen!!! deze dealer gaat pas 01-07-2004 van start!
<form action="aanmelden.php?action=register" method="post">
  <table border="0" cellspacing="1" cellpadding="1" width="312">
    <tr> 
      <td width="158"><font color="#000000">Gebruikersnaam</font></td>
      <td width="147"> <input name="username" type="text" id="username" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><font color="#000000">Email</font></td>
      <td width="147"> <input name="email" type="text" id="email" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><font color="#000000">Wachtwoord</font></td>
      <td width="147"> <input name="pass1" type="password" id="pass1" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><font color="#000000">Wachtwoord nogmaals</font></td>
      <td width="147"> <input name="pass2" type="password" id="pass2" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><font color="#000000"> 
        <input name="refid" type="hidden" id="refid" value="<? echo $_GET[id]; ?>">
        </font></td>
      <td width="147"> <span style="font-size: 5pt"> <br>
        </span> <input type="submit" name="Sumit" value="ik doe mee " style="font-family: Verdana; font-size: 10 pt; color: #000000; border: 1px solid #000000; background-color: #FFFFFF"></td>
    </tr>
  </table>
</form>
<CENTER><SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" src="http://www.dutchleader.com/php/banex/view.php?id=paulstipsite"></script></CENTER>
<?
}


foot();
?>

Dit heb ik nu en nu wil ik graag daar een checkbox aan toevoegen.
 
Dat wordt dan zoiets (heb gelijk de code iets opgeruimd):
PHP:
<?session_start();
include("include.php");
head();


if ($action == "register") {
	if (!$_POST['username'] OR !$_POST['email'] OR !$_POST['pass1']) {
		echo "U heeft niet alles ingevult, ga terug en vul alles in";
	} elseif ($_POST['pass1'] != $_POST['pass2']) {
		echo "Passworden zijn niet gelijk, ga terug en probeer nog een keer";
	} elseif (!isset($_POST['checkbox'])) {
		echo "U moet de voorwaarden accepteren.";
	} else {
		$result = mysql_query("select * from users where username='$_POST[username]'");
		if ($row = mysql_fetch_Array($result)) {
			echo "Gebruikersnaam is in gebruik, ga terug en kies een andere";
		} else {
			mysql_query("INSERT INTO users (id, username, email, ref, glaasjes, euro, pass) VALUES (NULL, '$_POST[username]', '$_POST[email]', '$_POST[refid]', 0, 0, '$_POST[pass1]')") or print(mysql_error());
			$purl =  "http://www.ptje.nl/dealer/koop.php?id=" . mysql_insert_id();
			echo "U kunt nu gaan beginnen met promoten van u url:<br>\n $purl";
			mail("$_POST[email]", "Ptjes dealer", "Beste $_POST[username],\n\nBedankt voor het aanmelden bij hosting Dealer.\nhier vind u registratie gegevens\n\nGebruikersnaam: $_POST[username]\nWachtwoord: $_POST[pass1]\nUrl: $purl\n\nMet vriendelijke groet,\nHet Ptjes Dealer team.\nhttp://www.ptje.nl/dealer/",
			"From: Wapen Dealer <info@ptje.nl\r\n"
    			."Reply-To: From: hosting dealer <info@ptje.nl>\r\n"
    			."X-Mailer: PHP/" . phpversion());
		}
	}
} else {
?><head><title>Ptjes Dealer</title></head>

<body color="#000000">

Momenteel kun je je aanmelden maar nog geen prijzen winnen!!! deze dealer gaat pas 01-07-2004 van start!
<form action="aanmelden.php?action=register" method="post">
  <table border="0" cellspacing="1" cellpadding="1" width="312">
    <tr> 
      <td width="158">Gebruikersnaam</td>
      <td width="147"> <input name="username" type="text" id="username" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Email</td>
      <td width="147"> <input name="email" type="text" id="email" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Wachtwoord</td>
      <td width="147"> <input name="pass1" type="password" id="pass1" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Wachtwoord nogmaals</td>
      <td width="147"> <input name="pass2" type="password" id="pass2" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><input name="refid" type="hidden" id="refid" value="<? echo $_GET[id]; ?>"></td>
      <td width="147"><br>
       <input type="submit" name="Submit" value="ik doe mee" style="font-family: Verdana; font-size: 10 pt; color: #000000; border: 1px solid #000000; background-color: #FFFFFF"><br>
       <input type="checkbox" name="checkbox"> Ik ga akkoord met de <a href="voorwaarden.html" target="_blank">voorwaarden</a></td>
    </tr>
  </table>
</form>
<CENTER><SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" src="http://www.dutchleader.com/php/banex/view.php?id=paulstipsite"></script></CENTER>
<?
}

foot();
?>
 
En ik maak de code werkend & netter :)
Veranderd:
- $_POST[id] en andere $_POST[..] => $_POST["id"] en $POST["..."]
- Scheiding variabelen en strings
- '$rij = mysql_fetch_array' is niet alleen de langzaamste manier van fetchen, hij is in deze situatie niet eens nodig. Simpel mysql_num_rows() is genoeg.
- Errors weergeven als query's niet lukken
- Beveiliging
- Netheid

Zelf nog te fixen:
- In HTML formulier, wanneer er geen refid in de adresbalk voorkomt, kan die nogal moeilijk in het formulier wordt gestopt
- $purl kon ik niet in dit stukje script vinden, dus waar die vandaan komt ...

En ik maak de code ff netter :)
PHP:
<?session_start();
include("include.php");
head();

if ($action == "register") // <== waar komt die $action vandaan ?
{
  if((isset($_POST["username"]) == TRUE) AND (isset($_POST["email"]) == TRUE) AND (isset($_POST["pass1"]) == TRUE) AND (isset($_POST["pass2"]) == TRUE) AND (isset($_POST["refid"]) == TRUE))
  {
    if(get_magic_quotes_gpc() == FALSE)
    {
    $username = addslashes($_POST["username"]);
    $email = addslashes($_POST["email"]);
    $pass1 = addslashes($_POST["pass1"]);
    $pass2= addslashes($_POST["pass2"]);
    }
    else
    {
    $username = $_POST["username"];
    $email = $_POST["email"];
    $pass1 = $_POST["pass1"];
    $pass2 = $_POST["pass2"];
    }
  $username = htmlspecialchars($username,ENT_QUOTES);
  $email = htmlspecialchars($email,ENT_QUOTES);
  $pass1 = htmlspecialchars($pass1,ENT_QUOTES);
  $pass2 = htmlspecialchars($pass2,ENT_QUOTES);
  $refid = ((int) $_POST["redid"]);
    if((strlen($username) < 1) OR (strlen($email) < 1) OR (strlen($pass1) < 1) OR (strlen($pass2) < 1))
    {
		echo "U heeft niet alles ingevult, ga terug en vul alles in";
    }
  	elseif($pass1 != $pass2)
    {
		echo "Passworden zijn niet gelijk, ga terug en probeer nog een keer";
	  }
    elseif(isset($_POST["checkbox"]) == FALSE)
    {
		echo "U moet de voorwaarden accepteren.";
    }
    else
    {
		$result = mysql_query("SELECT * FROM users WHERE username = '" . $username . "'") or die("Kon query niet uitvoeren: " . mysql_error());
      if(mysql_num_rows($result) > 0)
      {
			echo "Gebruikersnaam is in gebruik, ga terug en kies een andere";
  		}
      else
      {
			mysql_query("INSERT INTO users (id,username,email,ref,glaasjes,euro,pass) VALUES (NULL,'" . $username . "','" . $email . "','" . $refid . "',0,0,'" . $pass1 . "')") or die(mysql_error());
			$purl =  "http://www.ptje.nl/dealer/koop.php?id=" . mysql_insert_id();
			echo ("U kunt nu gaan beginnen met promoten van u url:<br>\n " . $purl);
			mail($email,"Ptjes dealer","Beste " . $username . ",\n\nBedankt voor het aanmelden bij hosting Dealer.\nhier vind u registratie gegevens\n\nGebruikersnaam: " . $username] . "\nWachtwoord: " . $pass1 . "\nUrl: " . $purl . "\n\nMet vriendelijke groet,\nHet Ptjes Dealer team.\nhttp://www.ptje.nl/dealer/") or die("Kon email niet verzenden");

      }
		}
	}
}
else
{
?><head><title>Ptjes Dealer</title></head>

<body color="#000000">

Momenteel kun je je aanmelden maar nog geen prijzen winnen!!! deze dealer gaat pas 01-07-2004 van start!
<form action="aanmelden.php?action=register" method="post">
  <table border="0" cellspacing="1" cellpadding="1" width="312">
    <tr> 
      <td width="158">Gebruikersnaam</td>
      <td width="147"> <input name="username" type="text" id="username" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Email</td>
      <td width="147"> <input name="email" type="text" id="email" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Wachtwoord</td>
      <td width="147"> <input name="pass1" type="password" id="pass1" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158">Wachtwoord nogmaals</td>
      <td width="147"> <input name="pass2" type="password" id="pass2" size="20" style="border-style: solid; border-width: 1"></td>
    </tr>
    <tr> 
      <td width="158"><input name="refid" type="hidden" id="refid" value="<? echo ((int) $_GET["id"]); // en wat als deze niet bestaat ? beveiliging op maken ... ?>"></td>
      <td width="147"><br>
       <input type="submit" name="Submit" value="ik doe mee" style="font-family: Verdana; font-size: 10 pt; color: #000000; border: 1px solid #000000; background-color: #FFFFFF"><br>
       <input type="checkbox" name="checkbox"> Ik ga akkoord met de <a href="voorwaarden.html" target="_blank">voorwaarden</a></td>
    </tr>
  </table>
</form>
<CENTER><SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" src="http://www.dutchleader.com/php/banex/view.php?id=paulstipsite"></script></CENTER>
<?
}
foot();
?>
Succes :thumb:

// Edit:
Grmbl, mijn mooie ordening is wel vernaggeld ...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan