waarom ziet php een spatie als input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Arendse

Peter Arendse

24/01/2008 12:21:00
Quote Anchor link
Beste allemaal,
In mijn reserveringsscript loop ik tegen een probleempje aan.
Ik wil de klant de mogelijkheid bieden om de ingevoerde gegevens uit het formulier nog eens door te lezen / aan te passen voordat het formulier werkelijk verstuurd wordt.
Ik haal de gegevens uit het resultaat van de gefilterde invoer, maak er even een nieuwe array van om de namen van de invoervelden leesbaar te maken en om de datum uit de datepicker samen te voegen.
Met een foreach lus tover ik de ingevulde gegevens op scherm, maar zorg met
[code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if(!empty($sValue)) ?>


dat de niet ingevulde velden niet op het scherm komen.
Nu had ik tussen de datum en de tijd eerst - - en : staan om de gegevens van datum en tijd te schijden.
Dit zag het script als value en liet toch de key zien.
Nu heb ik deze weg gehaald en om de datum en tijd leesbaar te houden heb ik er een spatie tussen gezet, dit ziet het script ook als value!?!?
Escapen met \ lukt niet!
Wie weet de oplossing(zie code)
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
<?php
        $content
[] = "<p><b><font face=\"Verdana\" size=\"2\" color=\"#000000\">U staat op het punt de volgende gegevens naar ons te verzenden</font><br></b></p>";
        $invoer= array(
        'Naam' => $aResultaat['naam'],
        'Adres' => $aResultaat['adres'],
        'Woonplaats' => $aResultaat['woonplaats'],
        'Bedrijf' => $aResultaat['bedrijf'],
        'Telefoonnummer' => $aResultaat['telefoonnummer'],
        'Emailadres' => $aResultaat['emailadres'],
        'Aantal personen' => $aResultaat['aantalpersonen'],
        'Vertrekdatum' => $aResultaat['dag1'] .' '. $aResultaat['maand1'] .' '. $aResultaat['jaar1'],
        'Vertrektijd' => $aResultaat['uur1'] .' '. $aResultaat['min1'],
        'Retour' => $aResultaat['retour'],
        'Alleen ophalen van Schiphol' => $aResultaat['ophalen'],
        'Straat van bestemming' => $aResultaat['straat_bestemming'],
        'Plaats van bestemming' => $aResultaat['plaats_bestemming'],
        'Bedrijf op bestemming' => $aResultaat['bedrijf_bestemming'],
        'Aankomstdatum' => $aResultaat['dag2'] .' '. $aResultaat['maand2'] .' '. $aResultaat['jaar2'],
        'Aankomsttijd' => $aResultaat['uur2'] .' '. $aResultaat['min2'],
        'Mobiele telefoonnummer' => $aResultaat['mobiel'],
        'Vluchtnummer' => $aResultaat['vluchtnummer'],
        'Opmerkingen' => $aResultaat['opmerkingen'],
        'Contante betaling' => $aResultaat['contant'],
        'Betaling met creditcard (u gaat akoord met de verhoging van € 3.00)' => $aResultaat['creditcard'],
        'Ik wil een telefonische bevestiging' => $aResultaat['telefonisch_bevestigen'],
        'Ik wil een bevestiging per email' => $aResultaat['via_email_bevestigen'],
        );

        foreach($invoer as $key => $sValue)
      
        {

            if(!empty($sValue))
        {

            $content[] = '<ul>';
            $content[] = '<li>'.$key.':  <b>'.$sValue.'</b></li>';
            $content[] = '</ul>';
               }
        }
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Peter Arendse
 
PHP hulp

PHP hulp

24/12/2024 00:19:36
 
Joren de Wit

Joren de Wit

24/01/2008 20:49:00
Quote Anchor link
En spatie is ook content ja. Gebruik trim() om loze spaties uit een string te verwijderen...

Maar hoezo controleer je niet eerst of de betreffende variabelen waarmee je de datum opmaakt wel bestaan?
 
Peter Arendse

Peter Arendse

24/01/2008 20:56:00
Quote Anchor link
Hey Blanche,

Dit is een voortborduring op het scriptje waar we een tijdeje geleden mee begonnen zijn.
Het is mij inderdaad gelukt met trim() om de spaties te escapen, maar mooier had ik - - of : gevonden.
Ik laat je het scriptje tot nu toe even zien, misschien zie jij nog verbeteringen.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // Declareren van errors en input arrays
    $_SESSION['errors'] = array();
    $_SESSION['input'] = $_POST;
  
    // Verplichte velden
    $aVerplicht = array('naam', 'telefoonnummer', 'emailadres');

 
 // Definieren van filters voor verschillende inputvelden.
    $aFilters = array (
        'naam'                   => NULL,
        'adres'                  => NULL,
        'woonplaats'             => NULL,
        'bedrijf'                => NULL,
        'telefoonnummer'         => NULL,
        'emailadres'             => FILTER_VALIDATE_EMAIL,
        'aantalpersonen'         => NULL,
        'dag1'                   => NULL,
        'maand1'                 => NULL,
        'jaar1'                  => NULL,
        'uur1'                   => NULL,
        'min1'                   => NULL,
        'retour'                 => NULL,
        'ophalen'                => NULL,
        'straat_bestemming'      => NULL,
        'plaats_bestemming'      => NULL,
        'bedrijf_bestemming'     => NULL,
        'dag2'                   => NULL,
        'maand2'                 => NULL,
        'jaar2'                  => NULL,
        'uur2'                   => NULL,
        'min2'                   => NULL,
        'mobiel'                 => NULL,
        'vluchtnummer'           => NULL,
        'opmerkingen'            => NULL,
        'contant'                => NULL,
        'creditcard'             => NULL,
        'telefonisch_bevestigen' => NULL,
        'via_email_bevestigen'   => NULL
 
 
        
    );
    
 // Uitvoeren van de filters en doorlopen van het resultaat
    $aResultaat = filter_input_array(INPUT_POST, $aFilters);
    $_SESSION['sResultaat'] = $aResultaat;
    foreach($aResultaat as $sKey => $sValue)
    
    {

        $sValue = trim($sValue);
        
        if(empty($sValue) && in_array($sKey, $aVerplicht))
        {

            $_SESSION['errors'][$sKey] = true;
            $aErrors[] = 'U bent vergeten uw '.$sKey.' in te vullen.';
            
            
        }
    }


    ?>


    <?PHP
    // Verwerk het formulier als er geen fouten opgetreden zijn.
     if(isset($aErrors))
        {

            echo '<ul>';
            foreach($aErrors as $sError)
            {

                echo '<li>'.$sError.'</li>';  
            }

            echo '</ul>';
            echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">U heeft het formulier onjuist ingevuld, klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
            exit;
        }

        
    if(empty($_SESSION['errors']))
    {

    echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">U staat op het punt de volgende gegevens naar ons te verzenden</font><br>";
    echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Leest u a.u.b. de ingevoerde gegevens nog even aandachtig door.</font><br>";
    

   // vb. Stuur een email met de gegevens
        // Stuur gebruiker door naar een volgende pagina.

        $content[] = "<p><b><font face=\"Verdana\" size=\"2\" color=\"#000000\">U staat op het punt de volgende gegevens naar ons te verzenden</font><br></b></p>";
        $invoer= array(
        'Naam' => $aResultaat['naam'],
        'Adres' => $aResultaat['adres'],
        'Woonplaats' => $aResultaat['woonplaats'],
        'Bedrijf' => $aResultaat['bedrijf'],
        'Telefoonnummer' => $aResultaat['telefoonnummer'],
        'Emailadres' => $aResultaat['emailadres'],
        'Aantal personen' => $aResultaat['aantalpersonen'],
        'Vertrekdatum' => $aResultaat['dag1'] .'  '. $aResultaat['maand1'] .'  '. $aResultaat['jaar1'],
        'Vertrektijd' => $aResultaat['uur1'] .'  '. $aResultaat['min1'],
        'Retour' => $aResultaat['retour'],
        'Alleen ophalen van Schiphol' => $aResultaat['ophalen'],
        'Straat van bestemming' => $aResultaat['straat_bestemming'],
        'Plaats van bestemming' => $aResultaat['plaats_bestemming'],
        'Bedrijf op bestemming' => $aResultaat['bedrijf_bestemming'],
        'Aankomstdatum' => $aResultaat['dag2'] .'  '. $aResultaat['maand2'] .'  '. $aResultaat['jaar2'],
        'Aankomsttijd' => $aResultaat['uur2'] .'  '. $aResultaat['min2'],
        'Mobiele telefoonnummer' => $aResultaat['mobiel'],
        'Vluchtnummer' => $aResultaat['vluchtnummer'],
        'Opmerkingen' => $aResultaat['opmerkingen'],
        'Contante betaling' => $aResultaat['contant'],
        'Betaling met creditcard (u gaat akoord met de verhoging van € 3.00)' => $aResultaat['creditcard'],
        'Ik wil een telefonische bevestiging' => $aResultaat['telefonisch_bevestigen'],
        'Ik wil een bevestiging per email' => $aResultaat['via_email_bevestigen'],
        );

        foreach($invoer as $key => $sValue)
      
        {

            if(trim($sValue) != '')
        {

            $content[] = '<ul>';
            $content[] = '<li>'.$key.':  <b><font color =\"ff66ff\">'.$sValue.'</font></b></li>';
            $content[] = '</ul>';
               }
        }
    }
}

 if(isset($errors))
        {

            echo '<ul>';
            foreach($errors as $error)
            {

                echo '<li>'.$error.'</li>';
            }

            echo '</ul>';
        }

        elseif(isset($content))
        {

            foreach($content as $line)
            {

                echo $line;
            }
        }

   echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
       echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=mail2.php?sResultaat>Reserveren</a> om de door u gecontroleerde gegevens werkelijk te versturen.</font> ";        
?>
 
Joren de Wit

Joren de Wit

24/01/2008 21:17:00
Quote Anchor link
Je script is niet echt logisch meer opgebouwd. Er staan een aantal dingen dubbel in die geen nut meer hebben.

Mijn tip: bouw je script eens opnieuw op en zet alleen de dingen erin die je ook gebruikt...
 
Peter Arendse

Peter Arendse

25/01/2008 11:05:00
Quote Anchor link
Ik heb denk ik nu uit het script de overbodige zaken aangepast.
Als ik nu de mail verstuur met alle resultaten uit : $_SESSION['sResultaat'] = $aResultaat; komt alle invoer netjes binnen.
Maar weer te veel info, want ik wil de niet ingevoerde velden ook niet in mijn mail terug zien.
Ik dacht deze oplossing gevonden te hebben, maar ik krijg een fout melding:
Warning: Invalid argument supplied for foreach() in /www/htdocs/taxikalf/mail2.php on line 15
Ik zit er nu al weer een tijdje naar te kijken maar ik zie de oplossing niet.
De mail wordt wel verstuurd met de juiste email afzender(komt uit $sResultaat = $_SESSION['sResultaat'];) en de juiste naam( komt ook uit $sResultaat = $_SESSION['sResultaat'];).
Maar de rest van de gevens hoort volgens mij uit: $sInvoer = $_SESSION['sInvoer']; te komen.
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
<?php
session_start();

if(isset($_GET['sResultaat']))
{

$sResultaat = $_SESSION['sResultaat'];
$sInvoer = $_SESSION['sInvoer'];
      
    
        
       $recipient="[email protected]";
       $subject="Test Schipholreservering Taxibedrijf Kalf";
       $header="From: " .  $sResultaat['emailadres']  . "\r\n";
       $mail_body ="Deze reservering is op " . date("d-m-Y") . " om " . date("H:i") . " uur verzonden door " .         $sResultaat['naam']  ."\n\n";
      
        foreach($sInvoer as $sKey => $sValue)  
        {

        if(trim($sValue) != '')
        {

       $mail_body.="<li>".$key.":  <b><font color =\"ff66ff\">".$sValue."</font></b></li>\n\n";
       }
       }
      
       mail($recipient,$subject,$mail_body,$header);
      
      
?>
 



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.