[php] Is Mail Correct...

Pagina: 1
Acties:

  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Ik heb het volgende:
PHP:
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
50
51
52
53
54
55
56
57
58
59
<?
require("info.php");

if (
$bestemming             <> "Selecteer" and 
$soorttoegangskaart         <> "" and 
$aantalkaarten             <> "" and 
$toegangskaartenvoordag     <> "" and 
$vertrekdat             <> "" and 
$aandagreis             <> "Selecteer" and 
$aanpers             <> "Selecteer" and 
$vervoer             <> "Selecteer" and 
$opstapplaats             <> "n.v.t." and 
$anverz             <> "Selecteer" and 
$reisverz             <> "Selecteer" and 
$hoofdmanvrouw             <> "Selecteer" and 
$hoofdnaam             <> "" and 
$hoofdgeb             <> "" and 
$hoofdadres             <> "" and 
$hoofdpost             <> "" and 
$hoofdwoon             <> "" and 
$hoofdtelprive             <> "") {
echo "U heeft de volgende verplichte velden niet correct ingevuld:<br>";

if ($bestemming == '') {
echo "Grand Prix Bestemming.<br>";
}
// Hier komen de rest van de verplichte velden dan ook nog

} else {
mail("jennevdmeer@hotmail.com", "$subject", "
Grand Prix Bestemming: $bestemming
Soort Toegangskaart: $soorttoegangskaart
Aantal kaarten: $aantalkaarten

Toegangs kaarten voor dag: $toegangskaartenvoordag

Ken jullie van: $kenvan
Anders namelijk: $andernl

Vertrekdatum: $vertrekdat
Aantel Daagse Reis: $aandagreis
Aantal Personen: $aanpers
Vervoer: $vervoer
Opstapplaats: $opstapplaats
Annulerings Verzekering: $anverz
Reisverzekering: $reisverz
Opmerkingen: $opmer

Hoofdboeker:
Naam: $hoofdmanvrouw $hoofdnaam
Geboorte Datum: $hoofdgeb
Adres: $hoofdadres
$hoofdpost $hoofdwoon
Telefoonnummer Prive: $hoofdtelprive
Telefoonnummer Werk: $hoofdtelwerk
E-Mail Adres: $hoofdemail", "From: $hoofdemail");
}
?>

Het is de bedoeling dat hij controleert of de velden zijn ingevuld, en zo niet neerzet welke velden niet, en als ze wel allemaal zijn ingevoerd dat hij een mailtje stuurt, maar hij doet helemaal niks, hij schrijft steeds Hoofdboeker op.

om te kijken wat hij doet surf naar http://www.rtlgrandprixreizen.nl/html/boek.html

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
ik zou om elke 'case' eerst eens haakjes zetten. dus
code:
1
2
3
4
if (
($a=="b") and 
($b=="a")
)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

waarom zo'n belachelijk if-set?

dit lijkt me mooier:
PHP:
1
2
3
4
5
<?
if(notempty($var1, $var2, $var3, ...) &amp;amp;&amp;amp; notValue('Selecteer', $var4, $var5, $var5)) {
    ..
}
?>

waarbij:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
function notEmpty()
{
    $numargs = func_num_args();
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        if($arg_list[$i] == '') 
            return false;
    }
    return true;
}
?>

en
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
function notValue($value)
{
    $numargs = func_num_args();
    $arg_list = func_get_args();
    for ($i = 1; $i < $numargs; $i++) {
        if($arg_list[$i] == $value)
        return false;
    }
    return true;
}
?>

Klaar voor een nieuwe uitdaging.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

allereerst zou ik je willen aanraden jezelf de C-style aan te wennen.

dus ipv:
code:
1
2
if ( $a <> $b and $c <> $d ) 
   ;

zo:
code:
1
2
if ( $a != $b && $c != $d )
   ;

zie verder de manual wat gebruikelijk is :)
waarom, vraag je je misschien af? Gewoon, omdat het de meest gangbare manier is, en 99,9% van de PHP-ers het gewend is.

Verder is het beter om per veld na te gaan of het correct ingevuld is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
if ( $bestemming != "Selecteer" )
   $missing [] = "Bestemming";
if ( /* etcetera */ )
   ;
// ...

if ( count ( $missing ) > 0 )
   foreach ( $missing as $field )
      echo "Het veld $field is niet (correct) ingevuld<br>";
?>

Dan is namelijk ook beter na te gaan waar de fout precies zit.

Kom je er dan nog niet uit, zet dan even bovenaan je mailscript:
PHP:
1
2
3
4
5
<?
echo "<pre>", var_dump ( $HTTP_POST_VARS ), "</pre>";
// of als je method="get" gebruikt in je form:
echo "<pre>", var_dump ( $HTTP_GET_VARS ), "</pre>";
?>

Dan zie je of de variabelen uberhaupt wel binnenkomen in je mailscript

hth :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Nielsz:
ik zou om elke 'case' eerst eens haakjes zetten. dus
code:
1
2
3
4
if (
($a="b") and 
($b="a")
)
Warning: condition is always true at line 2 in Nielsz.php
Warning: condition is always true at line 3 in Nielsz.php
:D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op maandag 21 januari 2002 10:37 schreef drm het volgende:

[..]

Warning: condition is always true at line 2 in Nielsz.php
Warning: condition is always true at line 3 in Nielsz.php
:D
Auw!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op maandag 21 januari 2002 10:36 schreef drm het volgende:Verder is het beter om per veld na te gaan of het correct ingevuld is:
[..]
Dan is namelijk ook beter na te gaan waar de fout precies zit.
doe het dan zo:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$required = array('bestemming','aankomst');

foreach($required as $test)
{
    if($$test != "Selecteer" )
        $missing[] = $test;
}
// ...

if ( count ( $missing ) > 0 )
   foreach ( $missing as $field )
      echo "Het veld $field is niet (correct) ingevuld<br>";
?>

Klaar voor een nieuwe uitdaging.


  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Op maandag 21 januari 2002 10:38 schreef Nielsz het volgende:

[..]

Auw!
ja want bv a=1 en b=2 en je dan zecht dan a=b is a 2 dan b=a 2, wan tje hebt net gezecht dat a 2 is, dat ken ik ook nog wel *D

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op maandag 21 januari 2002 10:45 schreef Decapitator het volgende:

[..]

ja want bv a=1 en b=2 en je dan zecht dan a=b is a 2 dan b=a 2, wan tje hebt net gezecht dat a 2 is, dat ken ik ook nog wel *D
Grapjas, dat snap ik ook wel hoor :)

  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Op maandag 21 januari 2002 10:47 schreef Nielsz het volgende:

[..]

Grapjas, dat snap ik ook wel hoor :)
Na waarom zeg je het dan, beetje mij op het verkeerde spoor te zetten :P

  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Uhmm Chem hij doet het niet...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

chem:
doe het dan zo:
PHP:
1
2
3
<?
/* meuk */
?>
Tja, * drm doet 't meestal met een MySQL tabelletje.

maar zonder sql zou ik het zo doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$fields = array ( // Veldnaam => defaultwaarde
   "bestemming" => "Selecteer",
   "soorttoegangskaart" => ""
   // etc
);

foreach ( $fields as $name => $default )
   if ( strcasecmp ( $HTTP_POST_VARS [ $name ], $default ) == 0 )
      $missing [] = $name;
// etc
?>

ben niet zo weg van variabele variabeles...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op maandag 21 januari 2002 10:51 schreef Decapitator het volgende:
Uhmm Chem hij doet het niet...
oh.

Klaar voor een nieuwe uitdaging.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op maandag 21 januari 2002 10:59 schreef drm het volgende:

[..]

Tja, * drm doet 't meestal met een MySQL tabelletje.

maar zonder sql zou ik het zo doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$fields = array ( // Veldnaam => defaultwaarde
   "bestemming" => "Selecteer",
   "soorttoegangskaart" => ""
   // etc
);

foreach ( $fields as $name => $default )
   if ( strcasecmp ( $HTTP_POST_VARS [ $name ], $default ) == 0 )
      $missing [] = $name;
// etc
?>

ben niet zo weg van variabele variabeles...
htf wil je dit doen met mysql :?

maar jouw oplossing mag ook hoor :)

Zelf gebruik ik eigenlijk nooit variabele variabelen, behalve bij tijdelijke scriptjes om tijd te besparen (bv. ff een conversiedingetje maken).

Omdat ik nl. niet dit 'gewend' wil raken en me met Obj-C wil gaan bezighouden :)

Klaar voor een nieuwe uitdaging.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

chem:
htf wil je dit doen met mysql :?
fields-tabelletje met:
  • fieldID (autoincrement tinyint)
  • name (varchar(15))
  • description (varchar (40))
  • type (enum: 'text','textarea','select',etc...)<li> default
</li>

fieldValues tabbeletje
  • fieldValueID (autoincrement tinyint)<li> value (varchar (30))
</li>

koppeltabelletje fieldValues met fields
  • fieldValueID <li> fieldID
</li>

die laatste 2 natuurlijk alleen interessant voor multiple-velden zoals select, checkboxes en radiobuttons

Snappie? Dan kun je ook mooi je formulier op basis van de tabellen genereren, en hoef je niet het hele form te kloppen :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Dit && is het teken van 'and' maar wat was die van 'or' nou dan, want ik bedacht me opeens dat hij al moet stoppen als een veld niet is ingevuld en niet als ze allemaal niet zijn ingevuld.

Dus het moet iniedergeval zijn 'or' en niet 'and' :P

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op maandag 21 januari 2002 11:19 schreef Decapitator het volgende:
Dit && is het teken van 'and' maar wat was die van 'or' nou dan, want ik bedacht me opeens dat hij al moet stoppen als een veld niet is ingevuld en niet als ze allemaal niet zijn ingevuld.

Dus het moet iniedergeval zijn 'or' en niet 'and' :P
AND == &&
OR == ||

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op maandag 21 januari 2002 11:19 schreef Decapitator het volgende:
Dit && is het teken van 'and' maar wat was die van 'or' nou dan, want ik bedacht me opeens dat hij al moet stoppen als een veld niet is ingevuld en niet als ze allemaal niet zijn ingevuld.

Dus het moet iniedergeval zijn 'or' en niet 'and' :P
hehehe, jah, da's ook een goed punt ;) dat probleem heb je dus niet als je alle velden afzonderlijk checkt ipv alles in 1 if ;)

Zie ook de manual / operators / Logical operators

all you need is there :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • jenne
  • Registratie: Juni 2001
  • Laatst online: 22-07 21:02
Op maandag 21 januari 2002 11:22 schreef Nielsz het volgende:

[..]

AND == &&
OR == ||
Thnx hij doet het B-)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

je mag wel iets meer moeite doen om zelf dingen te zoeken!
Pagina: 1