Oefening cursus php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arno sp

arno sp

25/12/2013 12:31:45
Quote Anchor link
Hallo,

Ter duidelijkheid ik ben een totale leek met PHP. Ik volg een cursus en daarin staan ook oefeningen.
De onderstaande oefening gaat over een switch-opdracht.

Code gaat als volgt;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>

<body>
<?php
$fruit
= "appel";

switch ($appel)
{
    case
"appel";
       $prijs =2.2;
       echo "De kiloprijs bedraagt " . $prijs . " €/kg.";
       break;
}

?>



</body>
</html>


Dit is exact wat er beschreven staat als code in de oefening, en krijg volgende melding in DW live-view;
Notice: Undefined variable: appel in C:\xampp\htdocs\php_oefening2\upperlowertest.php on line 14
De variabele is toch ingesteld, raak hier niet wijs uit.

Waarschijnlijk is dit heel eenvoudig op te lossen maar kan iemand me hiermee helpen?

Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 25/12/2013 12:37:44 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

19/09/2024 03:55:33
 
Bas IJzelendoorn

Bas IJzelendoorn

25/12/2013 12:40:10
Quote Anchor link
Je hebt $appel niet gedefinieerd.

$appel op regel 12 moet $fruit zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$fruit
= "appel";

switch ($fruit)
{
    case
"appel";
       $prijs =2.2;
       echo "De kiloprijs bedraagt " . $prijs . " €/kg.";
       break;
}

?>
 
- Ariën  -
Beheerder

- Ariën -

25/12/2013 12:40:18
Quote Anchor link
$appel heeft nergens een waarde. Je stelt hem nu niet in, maar je roept hem aan.

Je zou $fruit moten gebruiken in je switch.
 
Arno sp

arno sp

25/12/2013 12:45:53
Quote Anchor link
Heel logisch nu je het zegt maar is vast en zeker een fout dan want er staat op regel 12 wel degelijk appel.
Ook staan de cases in de cursus aangegeven tussen () ipv. {}. Maakt dit een verschil?

Want als ik deze zelfde code opgeef zoals in de cursus met () dan werkt de code niet?
 
- Ariën  -
Beheerder

- Ariën -

25/12/2013 12:52:20
Quote Anchor link
je kan ook () en je case gebruiken, bij vergelijkingen...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
case ($aantal <= 42);
 
- SanThe -

- SanThe -

25/12/2013 12:57:09
Quote Anchor link
De puntkomma moet een dubbele punt zijn.

case "appel";

case "appel":
Gewijzigd op 25/12/2013 12:58:52 door - SanThe -
 
Ivo P

Ivo P

25/12/2013 13:33:08
Quote Anchor link
ik denk dat de logica van een switch duidelijker wordt met een voorbeeld code als

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$fruit
= "appel";

switch ($fruit)
{
    case
"appel";
       $prijs = 2.2;
       break;
    case
'peer':
       $prijs = 2.5;
       break;
    default:

      $prijs = 0;
}


   echo "De kiloprijs voor ".$fruit. " bedraagt " . $prijs . " €/kg.";
    

?>
 
Arno sp

arno sp

25/12/2013 22:22:22
Quote Anchor link
Bedankt dat is inderdaad duidelijk zo, was heel verwarrend door de fout uit de cursus, een gelijkaardig geval denk ik. Iemand die hier wijs uit raakt, er moet dus een twee-dimensionaal associatief veld opgemaakt worden: (Overzicht van landen, steden en bezienswaardigheden in in 3 rijen en kolommen. De landen, steden en bezienswaardigheden worden niet in de tabel getoond
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
</head>

<body>
<?php
$brd
= array("land1" => array("Land" =>"",
      "Stad" => "","Bezienswaardigheid" => ""));
       array("land2" => array("Land" =>"",
      "Stad" => "","Bezienswaardigheid" => ""));    
      array("land3" => array("Land" =>"",
      "Stad" => "","Bezienswaardigheid" => ""));    
      array("land4" => array("Land" =>"",
      "Stad" => "","Bezienswaardigheid" => ""));      
?>


<table cellpadding="2" cellspacing="2" border="1">
      <tr>
      <td><strong>Land</strong></td>
      <td><strong>Stad</strong></td>
      <td><strong>Bezienswaardigheid</strong></td>
      </tr>
      <?php
      foreach ($brd as $weergave)
      {

          list($land, $stad, $bezienswaardigheid) = array_values($weergave);
      echo "<tr><td>" . $land . "</td>";
      echo "<td>" . $stad . "</td>";
      echo "<td>" . $bezienswaardigheid . "</td></tr>";
      }

      ?>



</body>
</html>
Gewijzigd op 25/12/2013 22:33:23 door arno sp
 
Ozzie PHP

Ozzie PHP

25/12/2013 22:25:16
Quote Anchor link
Wat is je vraag?
 
Arno sp

arno sp

25/12/2013 22:32:24
Quote Anchor link
Krijg bij deze code de info niet in de tabel geplaatst.
 
Ozzie PHP

Ozzie PHP

25/12/2013 22:40:33
Quote Anchor link
Je moet wel even wat duidelijker zijn met wat je bedoelt. We kunnen hier geen gedachten lezen.

Er klopt niks van je array. En je hebt ook geen gegevens ingevuld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$brd
= array("land1" => array("Land" =>"Nederland", "Stad" => "Utrecht","Bezienswaardigheid" => "De Dom"));
?>

Probeer dit eens en kijk of het werkt. Je kunt meerdere landen toevoegen door komma's te gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$brd
= array("land1" => array('...'), "land2" => array('...'));
?>
 
Local Dev

Local Dev

25/12/2013 23:01:05
Quote Anchor link
Mag ik vragen wat voor cursus je volgt?
 
Arno sp

arno sp

25/12/2013 23:53:09
Quote Anchor link
Van een centrum voor afstandsonderwijs cursus daterend van 2012
Dan zal bovenstaande code als volgt juist zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 $brd
= array("land1" => array('land' =>'Saksen','stad'
=>'Dresden','bezienswaardigheid' =>
'Zwinger-monument'), "land2" => array('...'));    
?>


<table cellpadding="2" cellspacing="2" border="1">
      <tr>
      <td><strong>Land</strong></td>
      <td><strong>Stad</strong></td>
      <td><strong>Bezienswaardigheid</strong></td>
      </tr>
      <?php
      foreach ($brd as $weergave)
      {

            list($land, $stad, $bezienswaardigheid) = array_values($weergave);
            echo "<tr><td>" . $land . "</td>";
            echo "<td>" . $stad . "</td>";
            echo "<td>" . $bezienswaardigheid . "</td></tr>";
      }

      ?>

</table>

dan krijg ik alleen op deze regel nog een fout: undefined offset 1 en 2
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
list($land, $stad, $bezienswaardigheid) = array_values($weergave);
Gewijzigd op 26/12/2013 00:19:49 door arno sp
 
Ozzie PHP

Ozzie PHP

26/12/2013 00:34:58
Quote Anchor link
Oké, dit moet je uiteraard niet letterlijk overnemen:

"land2" => array('...')

Daar moet je dus weer gegevens inzetten zoals bij land 1.
 
- SanThe -

- SanThe -

26/12/2013 03:52:14
Quote Anchor link
Is dit niet veel simpeler?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$brd
[] = array('land'=>'Saksen','stad'=>'Dresden','bezienswaardigheid'=>'Zwinger-monument');
$brd[] = array('land'=>'Nederland','stad'=>'Utrecht','bezienswaardigheid'=>'Dom');
?>


<table cellpadding="2" cellspacing="2" border="1">
      <tr>
      <td><strong>Land</strong></td>
      <td><strong>Stad</strong></td>
      <td><strong>Bezienswaardigheid</strong></td>
      </tr>
      <?php
      foreach ($brd as $weergave)
      {

            echo "<tr><td>" . $weergave['land'] . "</td>";
            echo "<td>" . $weergave['stad'] . "</td>";
            echo "<td>" . $weergave['bezienswaardigheid'] . "</td></tr>";
      }

      ?>

</table>
 
Arno sp

arno sp

29/12/2013 14:00:21
Quote Anchor link
Weet er soms iemand hoe ik volgende kan doen, ik maak een formulier en wil dit verzenden via e-mail,
hierna de code voor het formulier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www/w3.org/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<title>Naamloos document</title>
<link href="file:///C|/Users/ARSP/Documents/oefeningen dw/formulierphp.css" rel="stylesheet" type="text/css" />
</head>

</div>
<body>
<div id="formulier">
<form action="sendmail.php" method="post" name ="Feedback" target="self">
<fieldset>
   <legend>Geef ons uw feedback</legend>
<p>Naam &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="naam" type="text" size="10" maxlength="60" /></p>
<p>Email &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input email="email" type="email" size="16" maxlength="60" /></p>
<p>Boodschap &nbsp; &nbsp; &nbsp;<textarea name="boodschap" type="text" cols="20"  rows="3" size="16" maxlength="60"></textarea></p>
</fieldset>

<p><input name="Versturen" type="submit" value="Versturen"/>
</body>
</html>


en gebruik voor de verzending volgende PHP
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
//toewijzing variabelen
$naam = $_POST['name'];
$email = $_POST['email'];
$boodschap = $_POST['boodschap'];

$to = '[email protected]';
$betreft = 'Feedback klanten website';
$fromadress = 'from:[email protected]';

$mbody = 'klantnaam' . $naam . "/n";
$mbody = $mbody . 'email' . $email . "/n";
$mbody = $mbody  . 'boodschap' . $boodschap . "/n";

mail($to,$betreft,$fromadress);
?>

<!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>
<title>Feedback Form</title>    
</head>
<body>
<p>Uw bericht werd aan ons doorgestuurd. Veel dank voor uw feedback.</p>
<p>Uw bericht:</p>
<table>
<tr>
<td width="200"></td>
<td width="450"></td>
</tr>

<tr>
<td>Naam:</td>
<td <?php echo $naam; ?></td>
</tr>

<tr>
<td>Email:</td>
<td <?php echo $email; ?></td>
</tr>

<tr>
<td>Boodschap:</td>
<td <?php echo $boodschap; ?></td>
</tr>

    
</table>
</body>
</html>

Maar wanneer ik dit preview in de browser krijg ik geen interactie of weergave van het php script?



Toevoeging op 29/12/2013 14:20:54:

Krijg dan volgend bericht bij preview:

Notice: Undefined index: name in C:\xampp\htdocs\feedbackantwoord\antwoordfeed.php on line 3

Notice: Undefined index: email in C:\xampp\htdocs\feedbackantwoord\antwoordfeed.php on line 4

Uw bericht werd aan ons doorgestuurd. Veel dank voor uw feedback.

Uw bericht:

Naam:
Email:
Boodschap:
Gewijzigd op 29/12/2013 14:04:54 door arno sp
 
Albert de Wit

Albert de Wit

29/12/2013 14:24:43
Quote Anchor link
Als er over een index word gesproken in een error bedoelen ze meestal $var[index]. Als die undefined is, betekent dat dat hij niet bestaat.
Gewijzigd op 29/12/2013 14:25:04 door Albert de Wit
 
- SanThe -

- SanThe -

29/12/2013 14:53:18
Quote Anchor link
En kijk ook eens naar de function mail() op php.net.
Je stuurt nu $fromadress als zijnde de inhoud van je mailtje.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.