Sähköisten asiointipalveluiden toteuttaminen

Sorakuilu

Harjoitus 11, ole Leena ja hae virheitä

Alla olevissa harjoituksissa on paljon kirjoitusvirheitä (ja ajatusvirheitäkin). Korjaa virheet ja palauta korjatut koodit yhdellä www-sivulla.

Muuttujat

Virheitä 3

Pitäisi tehdä: Tulostaa 9

<?php
$x 
5
$y 
4;
echo 
"$x$z;
?>

Laskutoimitukset

Virheitä 5

Pitäisi tehdä: Muuntaa eurot dollareiksi kurssilla 1.459 ja tulostaa arvot

<?php
$euro 
100
$kurssi 
1.459;
$dollari $eurot kurssi;
echo 
"Dollarin kurssi: "  $kurssi
echo 
"Sinulla on euroja " $euro
echo 
Dollareita saat" . dollari;
?>

Vakion käyttö

Virheitä 3

Pitäisi tehdä: Tulostaa "Welcome to W3Schools.com!"

<?
define
(GREETING"Welcome to W3Schools.com!");

function 
myTest( {
    echo 
GREETING;
}
 
myTest();
?>

Ehtolause 1

Virheitä 3

Pitäisi tehdä: Tulostaa joko "Have a good day!", jos kello on vähemmän kuin 20, muuten "Have a good night!"

<?php
$t 
date("H");

if 
$t "20" {
    echo 
"Have a good day!";
} else {
    echo 
"Have a good night!"

?>

Ehtolause 2

Virheitä 3

Pitäisi tehdä: Jos kello on vähemmän kuin 10 tulostaa"Have a good morning!" ja jos kello on vähemmän kuin 20, tulostaa "Have a good day!", muuten "Have a good night!"


<?php
$t 
DATE("H");

if (
$t "10") {
    echo 
"Have a good morning!";
 elseif (
$r "20") {
    echo 
"Have a good day!";
} else {
    echo 
"Have a good night!"
}
?>

switch - case

Virheitä 5

Pitäisi tehdä: Tulostaa "toka case"

<?php
$muuttuja
="toinen";
switch(
$toinen) {
case 
"eka" :
echo 
"eka case";
break
case 
"toinen" ;
echo 
"toka case";
break;
defaul :
echo 
$default komento ";
break:
}
?>

Toistorakenne while

Virheitä 3

Pitäisi tehdä: Tulostaa 20 lukua alkaen luvusta 67

<?php
$tieto
=67;
$i=0;
while(
$i <19) {
echo 
$tieto"<br>";
tieto++;
$i--; }
?>

Toistorakenne for

Virheitä 3

Pitäisi tehdä: Tulostaa
The number is: 0
The number is: 1
The number is: 2
The number is: 3
...
The number is: 10

<?php 
for ($x 0$x >= 10$x++ {
    echo 
"The number is: $x <br>"

?>

Lomake 1

Virheitä 10

Pitäisi tehdä: Kysyy lempielokuvaa ja nimeä sekä tulostaa ne

<?php
  
if($_POST['formSubmit'] == "Submit")
  {
    
$varMovie $_post['fromMovie'];
    
$varName $_post['fromMovie'];
    echo 
varMovie."<br>";
    echo 
varName;
  }

?>

<form action="myform.php">
    Which is your favorite movie?
    <input type="text" name="formMovie" maxlength="50" value="<?php if(!empty($varMovie) echo $varMovie;?>">
    What is your name?
    <input type="name" name="formName" maxlength="50" value="<?=$varName;?>">
    input type="submit" name="formSubmit" value="Submit"

</form>

Lomake 2

Virheitä 10

Pitäisi tehdä: Tulostaa lomakkeen ja kun on tarkistanut syötteet, tulostaa ne käyttäjälle. Jos syötteissä on virheitä, huomatuttaa niistä ja tulostaa lomakkeen uudestaan, virheet punaisella. Huom virhe voi olla HTML-osassa tai PHP:ssa

<!DOCTYPE HTML>  
<html>
<head>
<style>
.error {color: FF0000;}
<body>  

<?php
// define variables and set to empty values
$nameErr $emailErr $genderErr $websiteErr "";
$name $email $gender $comment $website "";

if (
$_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty(
$_POST["name"])) {
    
$nameErr "Name is required";
  } else {
    
$name test_input($_POST["name"]);
    
// check if name only contains letters and whitespace
    
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      
$nameErr "Only letters and white space allowed"
    }
  }
  
  if (empty(
$_POST["email"])) {
    
$emailErr "Email is required"
  
} else {
    
$email test_input($_POST["emil"]);
    
// check if e-mail address is well-formed
    
if (!filter_var($emailFILTER_VALIDATE_EMAIL)) {
      
$emailErr "Invalid email format"
    }
  }
    
  if (empty(
$_POST["websit"])) {
    
$website "";
 else {
    
$website test_input($_POST["website"]);
    
// check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
      
$websiteErr "Invalid URL"
    }
  }

  if (empty(
$_POST["comment"])) {
    
$comment "";
  } else {
    
$comment test_input($_POST["comment"]);
  }

  if (empty(
$_post["gender"])) {
    
$genderErr "Gender is required";
  } else {
    
$gender test_input($_post["gender"]);
  }
}

function 
test_input($data) {
  
$data trim($data);
  
$data stripslashes($data);
  
$data htmlspecialchars($data);
  return 
data;
}
?>


<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
  Name: <input type="text" name="name" value="<?php echo $name;?>">
  <span class="error">* <?php echo $nameErr;?></span>
  <br><br>
  E-mail: <input type="text" name="email" value="<?php echo $email;?>">
  <span class="error">* <?php echo $emailErr;?></span>
  <br><br>
  Website: <input type="text" name="website" value="<?php echo $website;?>">
  <span class="error"><?php echo $websiteErr;?></span>
  <br><br>
  Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
  <br><br>
  Gender:
  <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female
  <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male
  <span class="error">* <?php echo $genderErr;?></span>
  <br><br>
  <input type="submit" name="submit" value="Submit">  
</form>

<?php
echo "<h2>Your Input:</h2>";
echo 
$name;
echo 
"<br>";
echo 
$email;
echo 
"<br>";
echo 
$website;
echo 
"<br>";
echo 
$comment;
echo 
"<br>";
echo 
$gender;
?>

</body>
</html>