OSdata.com: holistic issues 

OSdata.com

example source code
newregistration.php

    Building a game — open source code This is the actual source code from a new web game. See the game at thissideofsanity.com and read how this was built starting at example code.

    This is example code from the SlamZee project and This Side of Sanity, released under Apache License 2.0.

    Copyright 2013 Milo (for software), Distribution and website handled by Strazbick.com

    Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

    This narrative uses anchor links so that you can follow the building of this software in chronological order. Go to software explanation to start reading. Go to thissideofsanity.com to see the working software.

Google

example source code
newregistration.php

    This is example code from the SlamZee project and This Side of Sanity, released under Apache License 2.0.

register a new visitor
first pass

    Code to register a new visitor.

<?php

/******************************/
/* DisplayRegistrationForm                          */
/* draw form                                                */
/* called from index.php                                */
/* called from visitorauthorization.php          */
/******************************/
function DisplayRegistrationForm()
{

?>

<div id="signuparea">
<h1 align="left" id="signupgradheader">Sign Up</h1>
<h3 align="left" class="signupheader">Always free.</h3>

<form name="login" method="post" action="./index.php?action=createaccount">
<table align="center" border="0" width="100%" style="color:black;">
<tr><td align="left" colspan="2"><input type="text" name="screenname" maxlength="50" size="20" value="Your screen name"></td></tr>
<tr><td align="left"><input type="text" name="firstname" maxlength="50" size="20" value="First Name"></td><td align="left"><input type="text" name="lastname" maxlength="50" size="20" value="Last Name"></td></tr>
<tr><td align="center" colspan="2"><small>Your email is used as unique log-in<br>and will not be shared with third parties.</small></td></tr>
<tr><td align="left" colspan="2"><input type="text" name="email" maxlength="50" size="20" value="Your Email"></td></tr>
<tr><td align="left" colspan="2"><input type="text" name="emailrepeat" maxlength="50" size="20" value="Re-enter Email"></td></tr>
<tr><td align="left" colspan="2"><input type="text" name="password" maxlength="50" size="20" value="New Password"></td></tr>
<tr><td align="left" colspan="2"><input type="text" name="password2" maxlength="50" size="20" value="Repeat Password"></td></tr>
<tr><td align="left" colspan="2"><span  class="signuptext">Birthday</span><br><select name="birthmonth"><option value="0">month</option>
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
    </select><select name="birthday"><option value="0">day</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select><select name="birthyear"><option value="0">year</option>
     <option value="2013">2013</option>
     <option value="2012">2012</option>
     <option value="2011">2011</option>
     <option value="2010">2010</option>
     <option value="2009">2009</option>
     <option value="2008">2008</option>
     <option value="2007">2007</option>
     <option value="2006">2006</option>
     <option value="2005">2005</option>
     <option value="2004">2004</option>
     <option value="2003">2003</option>
     <option value="2002">2002</option>
     <option value="2001">2001</option>
     <option value="2000">2000</option>
     <option value="1999">1999</option>
     <option value="1998">1998</option>
     <option value="1997">1997</option>
     <option value="1996">1996</option>
     <option value="1995">1995</option>
     <option value="1994">1994</option>
     <option value="1993">1993</option>
     <option value="1992">1992</option>
     <option value="1991">1991</option>
     <option value="1990">1990</option>
     <option value="1989">1989</option>
     <option value="1988">1988</option>
     <option value="1987">1987</option>
     <option value="1986">1986</option>
     <option value="1985">1985</option>
     <option value="1984">1984</option>
     <option value="1983">1983</option>
     <option value="1982">1982</option>
     <option value="1981">1981</option>
     <option value="1980">1980</option>
     <option value="1979">1979</option>
     <option value="1978">1978</option>
     <option value="1977">1977</option>
     <option value="1976">1976</option>
     <option value="1975">1975</option>
     <option value="1974">1974</option>
     <option value="1973">1973</option>
     <option value="1972">1972</option>
     <option value="1971">1971</option>
     <option value="1970">1970</option>
     <option value="1969">1969</option>
     <option value="1968">1968</option>
     <option value="1967">1967</option>
     <option value="1966">1966</option>
     <option value="1965">1965</option>
     <option value="1964">1964</option>
     <option value="1963">1963</option>
     <option value="1962">1962</option>
     <option value="1961">1961</option>
     <option value="1960">1960</option>
     <option value="1959">1959</option>
     <option value="1958">1958</option>
     <option value="1957">1957</option>
     <option value="1956">1956</option>
     <option value="1955">1955</option>
     <option value="1954">1954</option>
     <option value="1953">1953</option>
     <option value="1952">1952</option>
     <option value="1951">1951</option>
     <option value="1950">1940</option>
     <option value="1949">1949</option>
     <option value="1948">1948</option>
     <option value="1947">1947</option>
     <option value="1946">1946</option>
     <option value="1945">1945</option>
     <option value="1944">1944</option>
     <option value="1943">1943</option>
     <option value="1942">1942</option>
     <option value="1941">1941</option>
     <option value="1940">1940</option>
     <option value="1939">1939</option>
     <option value="1938">1938</option>
     <option value="1937">1937</option>
     <option value="1936">1936</option>
     <option value="1935">1935</option>
     <option value="1934">1934</option>
     <option value="1933">1933</option>
     <option value="1932">1932</option>
     <option value="1931">1931</option>
     <option value="1930">1930</option>
     <option value="1929">1929</option>
     <option value="1928">1928</option>
     <option value="1927">1927</option>
     <option value="1926">1926</option>
     <option value="1925">1925</option>
     <option value="1924">1924</option>
     <option value="1923">1923</option>
     <option value="1922">1922</option>
     <option value="1921">1921</option>
     <option value="1920">1920</option>
     <option value="1919">1919</option>
     <option value="1918">1918</option>
     <option value="1917">1917</option>
     <option value="1916">1916</option>
     <option value="1915">1915</option>
     <option value="1914">1914</option>
     <option value="1913">1913</option>
     <option value="1912">1912</option>
     <option value="1911">1911</option>
     <option value="1910">1910</option>
     <option value="1909">1909</option>
     <option value="1908">1908</option>
     <option value="1907">1907</option>
     <option value="1906">1906</option>
     <option value="1905">1905</option>
     <option value="1904">1904</option>
     <option value="1903">1903</option>
     <option value="1902">1902</option>
     <option value="1901">1901</option>
     <option value="1900">1900</option>
     <option value="1899">1899</option>
     <option value="1898">1898</option>
     <option value="1897">1897</option>
     <option value="1896">1896</option>
     <option value="1895">1895</option>
     <option value="1894">1894</option>
     <option value="1893">1893</option>
     <option value="1892">1892</option>
     <option value="1891">1891</option>
     <option value="1890">1890</option>
     <option value="1889">1889</option>
     <option value="1888">1888</option>
     <option value="1887">1887</option>
     <option value="1886">1886</option>
     <option value="1885">1885</option>
     <option value="1884">1884</option>
     <option value="1883">1883</option>
     <option value="1882">1882</option>
     <option value="1881">1881</option>
     <option value="1880">1880</option>
     </select></td></tr>
<tr><td align="left"><input type="radio" name="gender" value="female"><span  class="signuptext"> Female</span></td><td align="left"><input type="radio" name="gender" value="male"><span  class="signuptext"> Male</span></td></tr>
<tr><td align="left" colspan="2"><br><small>By clicking Sign Up, you agree to our Terms and that you have read our Data Use Policy, including our Cookie Use.</small></td></tr>
<tr><td align="left" colspan="2"><br><input type="image" src="./testpict/signupbutton.png" width="194" height="39" alt="Submit"></td></tr>
</table>
</form>
</div><!--signuparea-->

<?php 

} /* DisplayRegistrationForm */

/******************************/
/* ProcessRegistrationForm                          */
/* process form                                            */
/* returns accountname upon success           */
/* returns empty string on failure                */
/* called from index.php                               */
/******************************/
function ProcessRegistrationForm()
{

//create short variable names from POST data
$email= ValidateInputforSQL($_POST['email'],'string','');
$emailrepeat= ValidateInputforSQL($_POST['emailrepeat'],'string','');
$accountname= ValidateInputforSQL($_POST['screenname'],'string','');
$passwd= ValidateInputforSQL($_POST['password'],'string','');
$passwd2= ValidateInputforSQL($_POST['password2'],'string','');
$firstname= ValidateInputforSQL($_POST['firstname'],'string','');
$lastname= ValidateInputforSQL($_POST['lastname'],'string','');
$gender= ValidateInputforSQL($_POST['gender'],'string','');
$birthday= ValidateInputforSQL($_POST['birthday'],'integer','');
$birthmonth= ValidateInputforSQL($_POST['birthmonth'],'integer','');
$birthyear= ValidateInputforSQL($_POST['birthyear'],'integer','');

// check that required items in the form are filled in
if ( $email == '' )
  $emailflag = false;
else
  $emailflag = true;
if ( $emailrepeat == '' )
  $email2flag = false;
else
  $email2flag = true;
if ( $accountname == '' )
  $accountnameflag = false;
else
  $accountnameflag = true;
if ( $passwd == '' )
  $passwordflag = false;
else
  $passwordflag = true;
if ( $passwd2 == '' )
  $password2flag = false;
else
  $password2flag = true;

// failure if required items in the form are not filled in
   if ( !( $emailflag AND $accountnameflag AND $passwordflag AND $password2flag ) )
   {
      echo "<h1 align=\"center\">Problem registering (1)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\">You must fill out the";
      if ( !$emailflag OR !$email2flag )
        echo " both email entries";
      if ( !$accountnameflag )
        echo " account name";
      if ( !$passwordflag OR !$password2flag )
        echo " both passwords";
      echo " - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit; 
   }    

   // check to see if email address is valid
   if (!ValidEmail($email)) /* located in datavalidation.php */
   {
      
      echo "<h1 align=\"center\">Problem registering (2)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\">You must have a valid email address - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   } 

   // check to see if emails are not the same 
   if ($email != $emailrepeat)
   {
      echo "<h1 align=\"center\">Problem registering (3)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\"> The passwords you entered do not match - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

   // check to see if passwords are not the same 
   if ($passwd != $passwd2)
   {
      echo "<h1 align=\"center\">Problem registering (4)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\"> The passwords you entered do not match - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

   // check password length is ok
   // ok if accountname truncates, but passwords will get
   // munged if they are too long.
//   if (strlen($passwd)<6 || strlen($passwd) >16)
   if (strlen($passwd)<4 || strlen($passwd) >16)
   {
      echo "<h1 align=\"center\">Problem registering (5)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\"> Your password must be between 6 and 16 characters - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

   // check that account name is alphanumeric and starts with a letter.
   if (!preg_match('/^[a-zA-Z][a-zA-Z0-9]*$/',$accountname) )
   {
      echo "<h1 align=\"center\">Problem registering (6)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\">Your account name must be only letters and numeric digits and must start with a letter - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

   // check that date items are valid.
   if ( ($birthday <= 0) OR ($birthday > 31) OR ($birthmonth <= 0) OR ($birthmonth > 12) OR ($birthyear <= 0) )
   {
      echo "<h1 align=\"center\">Problem registering (7)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\">You need to select your birth day, month, and year - please try again.</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

// Must be 13 or older under US law.
if ($birthmonth < 10)
  $firstpart = $birthyear."-0".$birthmonth;
else
  $firstpart = $birthyear."-".$birthmonth;

if ($birthday < 10)
  $secondpart = "-0".$birthday;
else
  $secondpart = "-".$birthday;

$fulldate = $firstpart.$secondpart;

   /* $fulldate = CreateCorrectDate($birthday,$birthmonth,$birthyear); */

   // check that person is older than 13.
   /* $today = date("Y-m-d H:i:s"); */
   $today = date("Y-m-d");
   $modifiedtoday = Subtract13Years($today); /* located in datavalidation.php */
   if ( $modifiedtoday < $fulldate )
   {
      echo "<h1 align=\"center\">Problem registering (8)</h1>\n";
      echo "<p align=\"center\" style=\"color:#ff0000\">You must be 13 years or older - please try again.";
      if ( $modifiedtoday == $fulldate )
        echo "<br>Because of time zone differences, you may need to wait until the day after your 13th birthday to sign up.";
      echo "</p>";
      DisplayRegistrationForm(); /* located in newregistration.php */
      return ''; /* indicate failure to login with this return value */
      exit;
   }

/* VALID ENTRY */

/* CREATE ACCOUNT */

   // attempt to register
   require_once('./php/visitorauthorization.php');
   $reg_result = RegisterNewVisitor($accountname, $passwd, $firstname, $lastname,$gender,$fulldate,$email); /* located in visitorauthorization.php */

   if ($reg_result === true)
      {
     // register session variable 
     $_SESSION['valid_user'] = $email;
      echo "<h1>Welcome ".$accountname."!!!</h1>";
      echo "<p>    Your registration was successful.</p>";
global $webpagename; /* config.php */
      }
    else
      {
      echo "<h1 align=\"center\">Problem registering (9)</h1>\n";
      echo $reg_result; 
      return ''; /* indicate failure to login with this return value */
/*      echo "<p style=\"color:#ff0000\"> Preferred account name already taken - please try again.</p>";*/
      }

return $accountname; /* successful registration of new account, return new account name; returning empty string indicates failure */

} /* ProcessRegistrationForm */

?>

return to explanation of source code

add loation data to signup
second pass

    Add location data to sign up.

    Change function asdf.



    Change function asdf.



return to explanation of source code


OSdata.com is used in more than 300 colleges and universities around the world

Find out how to get similar high web traffic and search engine placement.


OSdata.com is used in more than 300 colleges and universities around the world

Read details here.


    A web site on dozens of operating systems simply can’t be maintained by one person. This is a cooperative effort. If you spot an error in fact, grammar, syntax, or spelling, or a broken link, or have additional information, commentary, or constructive criticism, please e-mail Milo. If you have any extra copies of docs, manuals, or other materials that can assist in accuracy and completeness, please send them to Milo, PO Box 1361, Tustin, CA, USA, 92781.

    Click here for our privacy policy.


previous page next page
previous page next page

home page


Made with Macintosh

    This web site handcrafted on Macintosh computers using Tom Bender’s Tex-Edit Plus and served using FreeBSD .

Viewable With Any Browser


    Names and logos of various OSs are trademarks of their respective owners.

    Copyright © 2013 Milo

    Last Updated: December 25, 2013

    Created: September 24, 2013

previous page next page
previous page next page