form field onclick

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Chechu

chechu

22/05/2008 11:30:00
Quote Anchor link
hey iedereen. Ik heb een mailform dat er zo uitziet:
<script language="JavaScript" type="text/JavaScript">
function clearDefault(el) {
if (el.defaultValue==el.value) el.value = ""
}
</script>
<FORM NAME="form1" METHOD="post" ACTION="contactNL.php">
<input type="hidden" name="action" value="send">
<INPUT TYPE=TEXT NAME="name" VALUE=" je naam" onFocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted #cc6600; border-right:0px; border-bottom: 1px dotted #cc6600; width:120px">
<br>
<INPUT TYPE=TEXT NAME="email" VALUE=" je email adres" onFocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted purple; border-right:0px; border-bottom: 1px dotted purple; width:120px;">
<br>
<TEXTAREA NAME="message" style="border-top:0px; border-left:1px dotted #0066cc; border-right:0px; border-bottom: 1px dotted #0066cc; width:120px; height:70px" onFocus="clearDefault(this)"> je bericht</TEXTAREA>
<br>
&nbsp;&nbsp;&nbsp; <INPUT TYPE="image" SRC="images/sendarrow.gif" VALUE="send">
&nbsp;&nbsp;&nbsp; <img src="images/clear.gif" onclick="document.getElementById('form1').reset();" style="cursor:pointer"/>
<br>&nbsp;
</FORM>

en dit is de 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
<?php

if ($_POST["action"] == "send"){

if ($_POST[name] != " je naam" and $_POST[name] != "" and $_POST[email] != " je e-mail adres" and $_POST[email] != "" and $_POST[message] != "") {  

mail ("[email protected]", "via site",
"
Name: "
.$_POST['name']."
E-mail: "
.$_POST['email']."
Message: "
.$_POST['message']."

"
,
"From: ".$_POST['name']." <".$_POST['email'].">");

$subject = "je bericht aan Ceci Casariego-Mazereel";

$msg = "

Dit is een automatisch verzonden email. Gelieve hierop niet te antwoorden.

Beste $_POST[name],

Bedankt voor je bericht aan Ceci Casariego-Mazereel.
Ze antwoordt je zo snel mogelijk.

Dit was je bericht:
$_POST[message]
"
;  

mail($_POST[email], $subject, $msg);

echo 'Bedankt ! Je bericht is verzonden, <br>en je ontvangt hiervan eeen bevestiging. <br>&nbsp;<br>&nbsp;<br> Ceci zal je zo snel mogelijk antwoorden.<br>&nbsp;<br>&nbsp;<br>';

}


else{
echo 'Gelieve alle data in te vulen !<br><br>Je naam, email adres en bericht <br>zijn verplicht in te vullen velden.<br><br><a href="contactNL.html"><font color="#565656">[graag opnieuw]</font></a><br>&nbsp;<br>';
}
}

?>


Mijn bedoeling is de volgende:
The form should not be sent if
1. Name equals " your name"
2. Name is blank
3. Email equals " your e-mail address"
4. Email is blank
3. Message equals " your message"
5. Message is blank

Maar met deze code lukt het niet. Help !
 
PHP hulp

PHP hulp

18/12/2024 10:58:54
 
- SanThe -

- SanThe -

22/05/2008 11:40:00
Quote Anchor link
Pas je script even aan en gebruik en tags om je code heen. Gebruik je Afbeelding knop om dit te doen.

SanThe.
 
Mitchell

Mitchell

22/05/2008 11:40:00
Quote Anchor link
Checks in gaan bouwen op al die dingen? ;]

if($_POST['name'] == "") {
echo "Naam invullen!";
} else {
volgende check..
 
Crispijn -

Crispijn -

22/05/2008 11:42:00
Quote Anchor link
@Mitchell: het is netter om te controleren met trim() en daarna empty(). Wanneer er alleen een spatie is ingevuld zegt jou controle dat het ok is, en dat terwijl dat eigenlijk niet het geval is...
 
Mitchell

Mitchell

22/05/2008 11:44:00
Quote Anchor link
Crispijn schreef op 22.05.2008 11:42:
@Mitchell: het is netter om te controleren met trim() en daarna empty(). Wanneer er alleen een spatie is ingevuld zegt jou controle dat het ok is, en dat terwijl dat eigenlijk niet het geval is...

Onthoud wel dat ik een webdesigner ben, niet een code monkey. ;p

Edit: Kan je dan niet meteen gelijk een check inbouwen dat het een min en max aan tekens moet bevatten?
Gewijzigd op 01/01/1970 01:00:00 door Mitchell
 

22/05/2008 11:53:00
Quote Anchor link
onfocus="this.value='';this.onfocus=null;"

Dit zorgt ervoor dat de value die jij meegeeft gewist wordt bij 'onfocus', maar als iemand iets anders in heeft gevuld en nog een keer op dat venter klikt de tekst behouden blijft.. Stuk makkelijker dan de Javascript die jij daar voor aanroept..
Gewijzigd op 01/01/1970 01:00:00 door
 
Chechu

chechu

22/05/2008 20:58:00
Quote Anchor link
Ik begrijp niks van wat jullie vertellen, sorry.
Hoe kan ik dit oplossen, aub ?
 
Burdy

Burdy

22/05/2008 23:00:00
Quote Anchor link
Je moet dit stukje code even vervangen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
  if ($_POST['name'] != " je naam" and $_POST['name'] != ""
  and $_POST['email'] != " je email adres" and $_POST['email'] != ""
  and $_POST['message'] != "" and $_POST['message'] != " je bericht")
?>


Dan werkt het zoals jij wil dat het werkt.
Zie echter ook de opmerkingen van de anderen hierboven hoe je je formulier kunt verbeteren.
 
Chechu

chechu

23/05/2008 12:54:00
Quote Anchor link
Heel erg bedankt voor deze aanpassing.
Ik begrijp echt niet welke verbeteringen er gesugereerd worden, want ik begrijp de php-taal niet ...
 
Chechu

chechu

23/05/2008 12:58:00
Quote Anchor link
Dus dit wordt het ?

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
<?php

if ($_POST["action"] == "send"){

if ($_POST['name'] != " je naam" and $_POST['name'] != ""
  and $_POST['email'] != " je email adres" and $_POST['email'] != ""
  and $_POST['message'] != "" and $_POST['message'] != " je bericht"){

mail ("[email protected]", "via site",
"
Name: "
.$_POST['name']."
E-mail: "
.$_POST['email']."
Message: "
.$_POST['message']."

"
,
"From: ".$_POST['name']." <".$_POST['email'].">");

$subject = "je bericht aan Ceci Casariego-Mazereel";

$msg = "

Dit is een automatisch verzonden email. Gelieve hierop niet te antwoorden.

Beste $_POST[name],

Bedankt voor je bericht aan Ceci Casariego-Mazereel.
Ze antwoordt je zo snel mogelijk.

Dit was je bericht:
$_POST[message]
"
;  

mail($_POST[email], $subject, $msg);

echo 'Bedankt ! Je bericht is verzonden, <br>en je ontvangt hiervan eeen bevestiging. <br>&nbsp;<br>&nbsp;<br> Ceci zal je zo snel mogelijk antwoorden.<br>&nbsp;<br>&nbsp;<br>';

}


else{
echo 'Gelieve alle data in te vulen !<br><br>Je naam, email adres en bericht <br>zijn verplicht in te vullen velden.<br><br><a href="contactNL.html"><font color="#565656">[graag opnieuw]</font></a><br>&nbsp;<br>';
}
}

?>
 
Burdy

Burdy

23/05/2008 13:02:00
Quote Anchor link
Ja, nu is het een kwestie van even proberen.
 
Chechu

chechu

24/05/2008 09:58:00
Quote Anchor link
Alles lukt, met uitzondering van één geval: wanneer ik enkel de naam invul, en de rest laat zoals het is, wordt het formulier toch verzonden.
Hier kun je de functie zien: http://www.cecicasariego.com/contactNL1.html
 
Jesper Diovo

Jesper Diovo

24/05/2008 12:22:00
Quote Anchor link
Helemaal fout. Ga maar eens PHP leren ;-).

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
<?php
function check_emptyness ($array) {
  $return = array();
  if(is_array($array)) {
    foreach($array as $key => $value) {
      if(is_array($value)) {
        $return[] = check_emptyness($value);
      }
else {
        $return[] = empty($value);
      }
    }
  }
else {
    $return[] = false;
  }


  if(in_array(false, $return)) {
    return false;
  }
else {
    return true;
  }
}


if($_SERVER['REQUEST_METHOD'] == "POST") {
  if(!check_emptyness($_POST)) {
    // niet leeg
    if(trim($_POST['naam']) != "je naam" && trim($_POST['email']) != "je email" && trim($_POST['message']) != "je bericht") {
      // alles anders ingevuld
      $bericht = "Dit is een automatisch verzonden e-mailbericht. Gelieve hierop niet te antwoorden.\n\n";
      $bericht .= "Beste ".$_POST['naam'].",\n\n";
      $bericht .= "Bedankt voor je bericht aan Ceci Casariego-Mazereel. Ze beantwoordt zo snel mogelijk.\nDit was je bericht: ".$_POST['message'];
      if(mail($_POST['email'], $subject, $bericht)) { // headers??
        echo 'Bedankt! Je bericht is verzonden en je hebt een bevestiging ontvangen in je mailbox. Ceci antwoord z.s.m. je bericht.';
      }
else {
        echo 'Bedankt! Je bericht is verzonden. Ceci antwoord z.s.m. je bericht.';
      }
    }
else {
      echo 'Vul je wel alles in? Probeer het nogmaals.';
    }
  }
else {
    echo 'Vul je wel alles in? Probeer het nogmaals.';
  }
}


// je formulier
?>
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Chechu

chechu

24/05/2008 16:42:00
Quote Anchor link
En daarom ben ik op dit forum terechtgekomen, omdat ik geen php ken ...

Twee vraagjes ivm je post:
1/ ik zie geen email adres staan
2/ wat is verschil tussen deze twee:
Quote:
echo 'Bedankt! Je bericht is verzonden en je hebt een bevestiging ontvangen in je mailbox. Ceci antwoord z.s.m. je bericht.';
} else {
echo 'Bedankt! Je bericht is verzonden. Ceci antwoord z.s.m. je bericht.';
 
Jesper Diovo

Jesper Diovo

24/05/2008 16:54:00
Quote Anchor link
1. Klopt, die kan je er zelf nog bijzetten (met de juiste afhandeling natuurlijk). Het ging mij vooral om de code rondom het formulier-controleren.
2. Dat je geen bevestiging hebt ontvangen. Bekijk de code maar eens ;-).
 
Chechu

chechu

24/05/2008 17:42:00
Quote Anchor link
Jezpur, kun je het volledige formulier plaatsen, aub, met de email erbij, want ik begrijp hier allemaal niks van. Zoals puntje twee: voor mij lijkt het dat er twee keer dezelfde functie staat. Wanneer wordt er wel een bevestiging verzonden, en wanneer niet ?
Gewijzigd op 01/01/1970 01:00:00 door chechu
 
Jesper Diovo

Jesper Diovo

24/05/2008 18:00:00
Quote Anchor link
Als de mail-functie true retourneert is er wél een mailtje verstuurd en is er dus wél een bevestiging verstuurd. Als de mail-functie false retourneert is er géén mailtje versturen, en dus geen bevestiging. Dat is het verschil tussen die twee meldingen.

Als je hier al niets van snapt, kun je beter even de PHP Beginners Handleiding doorlezen. Steek je vast nog wel wat van op ;-).
 
Chechu

chechu

24/05/2008 18:03:00
Quote Anchor link
Quote:
Als de mail-functie false retourneert is er géén mailtje versturen, en dus geen bevestiging.

Waarom zeg je dan twee keer bedankt dat het verzonden is ??
Kun je het mailadres in je vorige correctie passen, aub ?

Weet ik, ik moet tutorials lezen, maar dat doe ik wanneer ik er mijn hele kopje kan bijsteken, en dat kan nu niet...
 
Jesper Diovo

Jesper Diovo

24/05/2008 18:15:00
Quote Anchor link
Chechu, denk nou eens na. Voordat dit verzonden is, hoort er toch een mailtje verstuurt te worden naar Ceci? Dát is verzonden. Daarvoor dank je de bezoeker. Ik heb er niet voor niets neergezet: "en je hebt een bevestiging ontvangen in je mailbox".

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
<?php
/* Een van mijn handige functies om te kijken of een value in een array leeg is */
function check_emptyness ($array) {
  $return = array();
  if(is_array($array)) {
    foreach($array as $key => $value) {
      if(is_array($value)) {
        $return[] = check_emptyness($value);
      }
else {
        $return[] = empty($value);
      }
    }
  }
else {
    $return[] = false;
  }


  if(in_array(false, $return)) {
    return false;
  }
else {
    return true;
  }
}


// kijk of er iets is verzonden
if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(!check_emptyness($_POST)) {
        // niet leeg
        if(trim($_POST['naam']) != "je naam" && trim($_POST['email']) != "je email" && trim($_POST['message']) != "je bericht") {
            // alles anders ingevuld
            
            $jouwmail = '[email protected]';
            $cSubject = 'Via site';
            $cBericht = 'Naam: '.$_POST['naam'].'\n';
            $cBericht .= 'E-mailadres: '.$_POST['email'].'\n';
            $cBericht .= 'Bericht: '.$_POST['message'].'\n';
            $headers = 'From: '.$_POST['naam'].' <'.$_POST['email'].'>'.'\r\n';
            
            if(mail($jouwmail, $cSubject, $cBericht)) {
                // mail naar ceci is verstuurd
                $bSubject = 'Bevestiging ontvangst mail aan Ceci Casariego-Mazereel';
                $bBericht = "Dit is een automatisch verzonden e-mailbericht. Gelieve hierop niet te antwoorden.".'\n\n';
                $bBericht .= "Beste ".$_POST['naam'].",".'\n\n';
                $bBericht .= "Bedankt voor je bericht aan Ceci Casariego-Mazereel. Ze beantwoordt zo snel mogelijk.".'\n'."Dit was je bericht: ".$_POST['message'];
                if(mail($_POST['email'], $bSubject, $bBericht)) { // headers??
                    // bevestigingsmail is verzonden

                    echo 'Bedankt! Je bericht is verzonden en je hebt een bevestiging ontvangen in je mailbox. Ceci antwoord z.s.m. je bericht.';
                }
else {
                    // bevestigingsmail is niet verzonden
                    echo 'Bedankt! Je bericht is verzonden. Ceci antwoord z.s.m. je bericht.';
                }
            }
else {
                // mail naar ceci is niet verstuurd
                echo 'Helaas... Je bericht is niet verzonden. Probeer het nogmaals.';
            }
        }
else {
            // niet anders ingevuld, geef foutmelding
            echo 'Vul je wel alles in? Probeer het nogmaals.';
        }
    }
else {
        // leeg
        echo 'Vul je wel alles in? Probeer het nogmaals.';
    }
}


// je formulier
?>


En nu ophouden met zeuren en PHP gaan leren. Als je geen PHP kent en je wilt een website voor iemand gaan maken, ben je niet goed bezig. Eerst kennis, dan pas diensten gaan aanbieden.
 
Chechu

chechu

24/05/2008 18:23:00
Quote Anchor link
Ik snap het verschil nog niet, maar dankjewel.
Ik wil geen diensten aanbieden; dit is mijn site ! Maar doordat designers pakken geld vragen, heb ik beetje bij beetje mijn eigen site opgebouwd. En nu wilde ik nog zo'n formulier, maar het lukte me niet. Heel erg bedankt !
 
Chechu

chechu

24/05/2008 18:29:00
Quote Anchor link
Ik heb het net uitgeprobeerd hier:
http://www.cecicasariego.com/contactNL1.html
en het lukt niet. Als ik niks invul, verzendt die ook.
Dit zijn de voorwaarden om NIET te verzenden:
1. Name equals " your name"
2. Name is blank
3. Email equals " your e-mail address"
4. Email is blank
3. Message equals " your message"
5. Message is blank
Wat loopt er verkeerd ?
 

Pagina: 1 2 volgende »



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.