Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Contactformulier wordt niet verzonden

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo,

Ik ben bezig met een php contactformulier op een website te plaatsen. Nu had ik hem uitgeprobeerd op mijn eigen website en daar deed hij het gewoon perfect. Hij werd goed weergegeven en ook verzonden. Maar nu heb ik hem op een andere site geupload en wanneer je de contactpagina aanklikt zie je daar een deel van het script staan (in Firefox). In Internet Explorer ziet het er wel wat beter uit, maar het formulier word ook niet verzonden. Dan word de link opeens: www.mijnsite.nl/<? echo $_SERVER['PHP_SELF']; ?>

Hoe kan ik dit oplossen? Ik moet zeggen dat ik wel een amateur ben op het gebied van php, maar heb al verschillende dingen geprobeerd en op internet gezocht... Wat niet hielp.

Dit is verder mijn code:

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
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
 <? 
if($_SERVER['REQUEST_METHOD']=="POST")
{ 
if(strlen($_POST['name']) == 0)
    { $error_msg ="- Je hebt je naam niet ingevuld.<br>"; } 
if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['uwemail']))
    { $error_msg .="- Je hebt geen geldig email-adres ingevuld.<br>"; } 
if(isset($_POST['telefoon']) && !empty($_POST['numbre']))
    { $telefoon = strip_tags($_POST['numbre']); }
    else
    {
$aErrors[1]="U bent uw telefoonnummer vergeten in te vullen!.<br>";      
}
if(strlen($_POST['field']) ==0)
    { $error_msg .="- Je hebt geen geldig bericht ingevuld.<br>"; } 
    
if(!empty($error_msg))
    { 
    //Een van de velden werd niet goed ingevuld 
    echo "<br /><br /><b>De volgende fouten zijn opgetreden:</b><br><br>"; 
    echo $error_msg; 
    echo "<br>Klik alstublieft op <a  href=javascript:history.back(1)>Ga terug</a> en vul alle velden in.<br><br>"; 
    }
else 
    { 
    $recipient = "email@email.nl"; //Het email adres van de persoon die vragen moet ontvangen. 
    $subject = $_POST['sub']; //Subject van de mail. 
    $header = "From: " . $_POST['uwemail'] . "\n"; 
    $mail_body = "Contactformulier werd op " . date("d-m-Y") . " om " . date("H:i") . " uur ingevuld.\n"; 
    $mail_body .= "Naam: " . $_POST['name'] . "\n"; 
    $mail_body .= "E-mailadres: " . $_POST['uwemail'] . "\n"; 
    $mail_body .= "Telefoonnummer: " . $_POST['numbre'] . "\n";
    $mail_body .= "Bericht:\n"; 
    $mail_body .= $_POST['field']; 
    $mail_body .= "\n\n -- Einde van het bericht --"; 
    mail($recipient, $subject, $mail_body, $header); 
    echo "<b><br /><br />Uw bericht is succesvol verzonden</b><br>Er zal zo snel mogelijk contact met u opgenomen worden.</b><br>"; 
    echo "<a class=\"main\" href='javascript:history.back(1)'>Ga terug</a>"; 
    }
} 
else 
{ 
?> 

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST" name="contact"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
      <td><br> 
        <table width="80%" height="171" border="0" align="center" cellpadding="0" cellspacing="0"> 
          <tr> 
            <td height="2">&nbsp;</td> 
            <td height="2"><font size="1"><strong>(Velden met een * zijn verplicht)</strong></font></td> 
            <td height="2">&nbsp;</td> 
          </tr> 
          <tr> 
            <td height="26"><p class="tekst">Naam:</p></td> 
            <td height="26" colspan="2"> <input type="text" name="name" size="30"> 
              <font size="2">* </font></td> 
          </tr> 
          <tr> 
            <td height="27"><p class="tekst">Emailadres:</p></td> 
            <td height="27" colspan="2"> <input type="text" name="uwemail" size="30"> 
              <font size="2"> * </font></td> 
          </tr> 
                    <tr> 
            <td height="27"><p class="tekst">Telefoonnummer:</p></td> 
            <td height="27" colspan="2"> <input type="text" name="numbre" size="30"> 
              <font size="2"> * </font></td> 
          </tr> 
          <tr> 
            <td width="123" height="26" class="Kleiner"> <p class="tekst">Onderwerp:</p></td> 
            <td colspan="2"> <input type="text" name="sub" size="30"> <font size="2"> * </font></td> 
          </tr> 
          <tr> 
            <td width="123" class="Kleiner"><p class="tekst">Bericht:</p></td> 
            <td width="262" rowspan="2"><br /> <textarea name="field" cols="27" rows="3" wrap="VIRTUAL"></textarea> 
              <font size="2">&nbsp; </font></td> 
            <td width="294"><font size="2">&nbsp;* </font></td> 
          </tr> 
          <tr> 
            <td width="123" height="25" class="Kleiner">&nbsp;</td> 
            <td>&nbsp;</td> 
          </tr> 
          <tr> 
            <td width="123">&nbsp;</td> 
            <td colspan="2"> <div align="left"> 
                <input type="Submit" name="Submit" value="Verzenden"> 
               <input type="Reset" name="Reset" value="Wis velden"> </div></td> 
          </tr> 
        </table> 
        <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%"> 
          <tr> 
            <td>&nbsp;</td> 
          </tr> 
        </table> 
      </td> 
    </tr> 
  </table> 
</form> 

<?php 
} 
?> 


Alvast bedankt voor de hulp!

Groeten,
Stinkzwam

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13:05

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op maandag 28 maart 2011 @ 16:48:
Hoe kan ik dit oplossen? Ik moet zeggen dat ik wel een amateur ben op het gebied van php, maar heb al verschillende dingen geprobeerd en op internet gezocht... Wat niet hielp.
Als je je php code gewoon in de browser kunt zien (view source zie je waarschijnlijk je complete code) betekent dat dat PHP op die server niet wordt ondersteund en daarom dus niet beschikbaar is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Maranello
  • Registratie: Maart 2006
  • Laatst online: 27-05 15:16
Op regel 1 en 45 gebruik je short tags voor php. Wellicht ondersteund je hosting dat niet. Gebruikt
PHP:
1
<?php
in plaats van <?

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 27-10 15:31
Ps... http://www.securephpwiki.com/index.php/Email_Injection anders word je binnen no-time gebruikt als spambot ...

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Janoz schreef op maandag 28 maart 2011 @ 16:50:
[...]

Als je je php code gewoon in de browser kunt zien (view source zie je waarschijnlijk je complete code) betekent dat dat PHP op die server niet wordt ondersteund en daarom dus niet beschikbaar is.
Nee, in dit geval betekent het waarschijnlijk gewoon dat short tags (<? /* code */ ?>) niet werken, zoals Maranello al zegt. Short tags zijn om deze reden altijd een slecht idee.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.