Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[php] form

ex visor
Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
Let's first start by adding a name='' to the submit button, which the PHP reads to execution if the forum as been submitted.

To call the execution we can use if(isset()){} basically, isset is called if its 0 or 1. 0= hasn't been called, 1 = been called. Like a boolean.

Code:
    <form action="date.php" method="post">
    Day: <input type="text" name="day" />
    <br />
    Month: <input type="text" name="month" />
    <br />
    Year: <input type="text" name ="year" />
    <input type="submit" name="submitform" value="Submit" />
    </form>
Then, I don't know where you want to display that date poop you have, why you didn't use
PHP:
 date("");
, I don't know but for the sake of time I'll just add it and you can put whatever else you want inside of it!

All I'm really going to do is add
PHP:
 if(isset($_POST['submitform'])){ }
Again, you cannot do
PHP:
if(isset($_POST['submitform']) == "Submit"){}
because isset acts on only 0 or 1. If you want to do it that way, take the isset out! :$:

So here we go~

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
/*2. Schrijf een functie die als parameter meekrijgt hoeveel dagen er verstreken zijn sinds maandag 1 januari 1900 en als return value de naam geeft van de opgegeven dag (maandag, dinsdag, woendag enz.). Schrijf unit tests voor de volgende situaties:

    * als er 0 dagen verstreken zijn, is het resultaat "maandag";
    * als het aantal verstreken dagen een veelvoud van zeven is (0, 7, 14, 21 enz.), is het resultaat "maandag".

Test tenslotte een specifiek geval; bijvoorbeeld, na 999 dagen is het een zaterdag.

3. Schrijf een functie die als parameters de dag, de maand en het jaar meekrijgt en als return value het aantal dagen geeft dat is verstreken sinds 1 januari 1900. Je hoeft geen rekening te houden met data vòòr 1 januari 1900 of met niet bestaande data. Voorbeeld: als de invoer 30, 1, 1900 is, dan is het antwoord 29.

Houd rekening met schrikkeljaren. Voor elk schrikkeljaar moet je een extra dag optellen bij het aantal verstreken dagen. Een schrikkeljaar doet zich iedere vier jaar voor, behalve als het jaartal deelbaar is door honderd. Echter, als het jaartal deelbaar is door vierhonderd, dan is het weer wel een schrikkeljaar. Dus, 1900 is geen schrikkeljaar, maar 1904 en 2000 wel.

Schrijf unit tests voor de volgende situaties:

    * op 1 januari 1900 zijn er 0 dagen verstreken;
    * op 2 januari 1900 is er 1 dag verstreken;
    * op 1 februari 1900 zijn er 31 dagen verstreken;
    * op 1 januari 1901 zijn er 365 dagen verstreken;
    * op 1 januari 1904 zijn er 1460 dagen verstreken;
    * op 28 februari 1904 zijn er 1518 dagen verstreken;
    * op 1 maart 1904 zijn er 1520 dagen verstreken;
    * op 1 januari 1905 zijn er 1826 dagen verstreken;
    * op 1 januari 2000 zijn er 36524 dagen verstreken;
    * op 1 maart 2000 zijn er 36584 dagen verstreken;
    * op 1 maart 2200 zijn er 109632 dagen verstreken;
    * op 17 oktober 2002 zijn er 37544 dagen verstreken.

4. Zorg ervoor dat de gebruiker een datum in kan voeren en dat het programma teruggeeft op wat voor dag die datum valt.

(Met dank aan Stefan Holdermans.)*/


function weekDay ($day)
{
    //input modulo 7
    day %= 7;
    
    case $day == 0:
        return "Monday";
        break;
    case $day == 1:
        return "Tuesday";
        break;
    case $day == 2:
        return "Wednesday";
        break;
    case $day == 3:
        return "Thursday";
        break;
    case $day == 4:
        return "Friday";
        break;
    case $day == 5:
        return "Saturday";
        break;
    case $day == 6:
        return "Sunday";
        break;
    default:
        "This won't happen anyways..";
}

function past ($day,$month,$year)
{
    //default year is 1900.
    $myYear = year - 1900;
    // calculate the past days
    $myDaysInYears = 365 * $myYear;
    //Calculate special (?) years
    $mySpecialYear = ($myYear) / 4;
     mySpecialYear -= ($myYear) / 100;
     mySpecialYear += ($myYear + 300) / 400;
    // is this a special year?
    if (($year % 4) == 0) && (($year %100) != 100) $$ (($year % 400) == 0)
    {
        // yes, did we pass februari?
        if (month < 3)
        {
            //no, don't count the special year
            mySpecialYear--;
        }
    }    
    
    //add for each specialyear a day in myDaysInYears
    $myDaysInYears += $mySpecialYear;
    
    //calculate the months that have past
    $myMonths = $month - 1;
    
    // calculate the past days converted from months
    $myDaysInMonths = $myMonths * 31;
    
    switch ($month)
    {
    // The following months don't have 31 days.
    // Has Februari passed?
    case 3:
        $myDaysInMonths -= 3;
    // Has April passed?
    case 5:
        $myDaysInMonths--;
    // Has June passed?
    case 7:
        $myDaysInMonths--;
    //Has semptembre passed?
    case 10:
        $myDaysInMonths--;
    //Has Novembre passed?
    case 12:
        $myDaysInMonths--;
        break;
    //lalala
    default:
        break;
    }

    //calculate amount of days passed since 1-1-1900
    $myTotalDays = $day - 1; // -1 since today isn't acutally past
    
    // print the total amount of days
    return $myTotalDays + $myDaysInMonths + $myDaysInYears;

}

    
    echo "Hello there! I am a calculating Genuis! \n I can tell you what day it is today. Isn't that Cool! =D"; ?>
    
    <form action="date.php" method="post">
    Day: <input type="text" name="day" />
    <br />
    Month: <input type="text" name="month" />
    <br />
    Year: <input type="text" name ="year" />
    <input type="submit" name="submitform" value="Submit" />
    </form> 
        
    <br><br>
    
<?PHP    

if(isset($_POST['submitform'])){
$day = mysql_real_escape_string($_POST['day']);
$month = mysql_real_escape_string($_POST['month']);
$year = mysql_real_escape_string($_POST['year']);
    
   echo " <h1>You have entered the following:</h1> <br><br>
   Day: $day <br/>
   Month: $month <br />
   Year: $year <br/><br/>
   ";
  
    
    echo "bla.";
}    
?>
</body>
</html>

You can perform other security checks, but always make sure you have mysql_real_escape_string(); :thumbup:
 
ex visor
Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
I don't know why my post is up there. o.0
 
butt > Tits
Member
Joined
Feb 16, 2009
Messages
658
Reaction score
96
Hi,

I was messing around with PHP since I had nothing to do.
I made this script, and I think everything works except for the user in- and output.

It's a script that asks for the current date, then calculates what day it is. I made a form, but I'm not quite sure how to get and send the information. I'd also want to execute the functions (I used a C++ script I made as a template and converted the code to PHP to get familiar with it).

*Btw, I'm using Dreamweaver, don't know if that makes any difference.
** Don't mind the huge orange text at the start. It was a note to remind me what to do.

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
/*2. Schrijf een functie die als parameter meekrijgt hoeveel dagen er verstreken zijn sinds maandag 1 januari 1900 en als return value de naam geeft van de opgegeven dag (maandag, dinsdag, woendag enz.). Schrijf unit tests voor de volgende situaties:

    * als er 0 dagen verstreken zijn, is het resultaat "maandag";
    * als het aantal verstreken dagen een veelvoud van zeven is (0, 7, 14, 21 enz.), is het resultaat "maandag".

Test tenslotte een specifiek geval; bijvoorbeeld, na 999 dagen is het een zaterdag.

3. Schrijf een functie die als parameters de dag, de maand en het jaar meekrijgt en als return value het aantal dagen geeft dat is verstreken sinds 1 januari 1900. Je hoeft geen rekening te houden met data vòòr 1 januari 1900 of met niet bestaande data. Voorbeeld: als de invoer 30, 1, 1900 is, dan is het antwoord 29.

Houd rekening met schrikkeljaren. Voor elk schrikkeljaar moet je een extra dag optellen bij het aantal verstreken dagen. Een schrikkeljaar doet zich iedere vier jaar voor, behalve als het jaartal deelbaar is door honderd. Echter, als het jaartal deelbaar is door vierhonderd, dan is het weer wel een schrikkeljaar. Dus, 1900 is geen schrikkeljaar, maar 1904 en 2000 wel.

Schrijf unit tests voor de volgende situaties:

    * op 1 januari 1900 zijn er 0 dagen verstreken;
    * op 2 januari 1900 is er 1 dag verstreken;
    * op 1 februari 1900 zijn er 31 dagen verstreken;
    * op 1 januari 1901 zijn er 365 dagen verstreken;
    * op 1 januari 1904 zijn er 1460 dagen verstreken;
    * op 28 februari 1904 zijn er 1518 dagen verstreken;
    * op 1 maart 1904 zijn er 1520 dagen verstreken;
    * op 1 januari 1905 zijn er 1826 dagen verstreken;
    * op 1 januari 2000 zijn er 36524 dagen verstreken;
    * op 1 maart 2000 zijn er 36584 dagen verstreken;
    * op 1 maart 2200 zijn er 109632 dagen verstreken;
    * op 17 oktober 2002 zijn er 37544 dagen verstreken.

4. Zorg ervoor dat de gebruiker een datum in kan voeren en dat het programma teruggeeft op wat voor dag die datum valt.

(Met dank aan Stefan Holdermans.)*/


function weekDay ($day)
{
	//input modulo 7
	day %= 7;
	
	case $day == 0:
		return "Monday";
		break;
	case $day == 1:
		return "Tuesday";
		break;
	case $day == 2:
		return "Wednesday";
		break;
	case $day == 3:
		return "Thursday";
		break;
	case $day == 4:
		return "Friday";
		break;
	case $day == 5:
		return "Saturday";
		break;
	case $day == 6:
		return "Sunday";
		break;
	default:
		"This won't happen anyways..";
}

function past ($day,$month,$year)
{
	//default year is 1900.
	$myYear = year - 1900;
	// calculate the past days
	$myDaysInYears = 365 * $myYear;
	//Calculate special (?) years
	$mySpecialYear = ($myYear) / 4;
	 mySpecialYear -= ($myYear) / 100;
	 mySpecialYear += ($myYear + 300) / 400;
	// is this a special year?
	if (($year % 4) == 0) && (($year %100) != 100) $$ (($year % 400) == 0)
	{
		// yes, did we pass februari?
		if (month < 3)
		{
			//no, don't count the special year
			mySpecialYear--;
		}
	}	
	
	//add for each specialyear a day in myDaysInYears
	$myDaysInYears += $mySpecialYear;
	
	//calculate the months that have past
	$myMonths = $month - 1;
	
	// calculate the past days converted from months
	$myDaysInMonths = $myMonths * 31;
	
	switch ($month)
	{
	// The following months don't have 31 days.
	// Has Februari passed?
	case 3:
		$myDaysInMonths -= 3;
	// Has April passed?
	case 5:
		$myDaysInMonths--;
	// Has June passed?
	case 7:
		$myDaysInMonths--;
	//Has semptembre passed?
	case 10:
		$myDaysInMonths--;
	//Has Novembre passed?
	case 12:
		$myDaysInMonths--;
		break;
	//lalala
	default:
		break;
	}

	//calculate amount of days passed since 1-1-1900
	$myTotalDays = $day - 1; // -1 since today isn't acutally past
	
	// print the total amount of days
	return $myTotalDays + $myDaysInMonths + $myDaysInYears;

}

	
	echo "Hello there! I am a calculating Genuis! \n I can tell you what day it is today. Isn't that Cool! =D";
	
	<form action="date.php" method="post">
	Day: <input type="text" name="day" />
	<br />
	Month: <input type="text" name="month" />
	<br />
	Year: <input type="text" name ="year" />
	<input type="submit" />
	</form> 
		
	<br><br>
	
	You have entered the following:<br><br>

      print ("Day: $_POST[day]<br>\n");
      print ("Monthd: $_POST[month]<br>\n");
      print ("Year: $_POST[year]<br>\n");
	
	echo "bla.";
?>
</body>
</html>
 
Last edited:
Joined
Sep 10, 2006
Messages
2,817
Reaction score
1,417
why would you want to ask the user for the current day when you can use
PHP:
date()
?

also days passed since 1.1.1900 is

PHP:
echo (time()-strtotime('1.1.1900'))/86400;

and loads of other stuff, man this whole script of yours is fokked up.
 
butt > Tits
Member
Joined
Feb 16, 2009
Messages
658
Reaction score
96
Lol, I figured that ._.
Guess I'll go do something else xD
 
Back
Top