HTML/PHP Mailform werkt niet meer

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
Ik heb een mailform gebruikt in het verleden, met succes. Nu wilde ik het formulier aanpassen en gebruiken voor een andere site, maar deze werkt opeens niet meer. Als het e-mailtje binnenkomt dan zie je geen ingevulde gegevens waar ze horen te staan. Het formulier heeft voorheen op PHP 4 gedraaid en nu op 5, zit daar misschien een probleem in. Ik kan in iig het probleem niet vinden Misschien dat jullie kunnen helpen.

Het formulier zelf:
HTML:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Aanmeldformulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stylesheet.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body,td,th {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 11px;
 color: #333333;
}
body {
 margin-top: 0px;
}
.style1 {font-size: 14px}
.style3 {font-size: 10px; font-weight: bold; }
a:link {
 color: #333333;
 text-decoration: none;
}
a:visited {
 text-decoration: none;
 color: #333333;
}
a:hover {
 text-decoration: underline;
 color: #333333;
}
a:active {
 text-decoration: none;
 color: #333333;
}
-->
</style>
</head>

<body class="algemeen">

<p>Laat een berichtje achter:
<form action="mail.php" method="post" name="formmail" id="Aanmeldingsfomulier">
    <table width="500" border="0" cellspacing="0" cellpadding="2">
    <tr>
      <td width="95">Naam*</td>
      <td width="144"><input name="naam" type="text" id="naam"></td>
      <td colspan="2" rowspan="4" valign="bottom"><input type="submit" name="Submit" value="Verzenden"></td>
      </tr>
    <tr>
      <td>Telefoon*</td>
      <td><input name="telefoon" type="text" id="telefoon"></td>
      </tr>
    <tr>
      <td>E-mail*</td>
      <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
      <td>Bericht</td>
      <td><label>
        <textarea name="bericht" cols="30" rows="5" id="bericht"></textarea>
      </label></td>
      </tr>
  </table>
    <div align="right"></div>
</form>
</body>
</html>


De php engine:
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
<? 

$to = "info@***.nl"; 
$naam = $naam; 
$telefoon = $telefoon; 
$email = $email; 
$bericht = $bericht; 

$abo = $_POST['abo']; 
$banner = $_POST['banner']; 

$today = date ("l, F jS Y"); 

//>----------------------------------------------------------------------------< 
//> Script opties                                                                          < 
//>----------------------------------------------------------------------------< 

$denyall = "1"; 
$siteurl = "www.***.nl"; 
$callingurl = getenv("HTTP_REFERER"); 

$autoresponse = "0"; 
$confsubject = "Bericht via de website ***.nl"; 
$automessage = "Bedankt voor berichtje."; 


//>----------------------------------------------------------------------------< 
//> Controleren of alle velden ingevuld zijn                                 < 
//>----------------------------------------------------------------------------< 


//>----------------------------------------------------------------------------< 
//> Controleren of het email adres geldig is                                < 
//>----------------------------------------------------------------------------< 

if (($email != "")) { 
        $locationofat = strpos($email, '@'); 
        $locationofdot = strrpos($email, '.'); 
        if (($locationofat == "0") || ($locationofdot < $locationofat) || $locationofdot == "0") { 
                readfile("bademail.htm"); 
                exit; 
                } else { 
                } 
} 

//>----------------------------------------------------------------------------< 
//> Verwijder lege velden                                                            < 
//>----------------------------------------------------------------------------< 
//>----------------------------------------------------------------------------< 
//> Alles is OK, email verzenden                                                  < 
//>----------------------------------------------------------------------------< 
//> Eerst message body opstellen.                                             < 
//>                                                                                               < 
//>----------------------------------------------------------------------------< 

$msg .= "Dit bericht is achtergelaten op www.***.nl:\n\n"; 

$msg .= "Naam: $naam\n"; 
     
$msg .= "Telefoonnummer: $telefoon\n"; 
    
$msg .= "Faxnummer: $fax\n"; 
   
$msg .= "E-mail: $email\n"; 

$msg .= "Keuze: $bericht\n";


//>----------------------------------------------------------------------------< 
//> Verzend email                                                                        < 
//>----------------------------------------------------------------------------< 

$mailheaders = "From: $email\n"; 

mail($to, "Aanmelding", $msg, $mailheaders); 


        readfile("autothankyou.htm"); 

       
exit;


Ik heb rondgezocht, maar kan geen antwoorden vinden.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
gooi eens wat random echo's in je script, dan kan je zien tot waar hij komt

en maak iets als
PHP:
1
if (mail(blabla)) echo 'goed'; else echo 'mislukt';

Dan weet je zeker of het mailen werkt of niet. :)

Maar je zegt dat je nu een andere versie gebruikt.
Weet je zeker dat je configuratie dan ook alles toelaat wat jij nodig hebt? :)

[ Voor 23% gewijzigd door Gonadan op 05-10-2006 16:28 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • ReZ1987
  • Registratie: September 2003
  • Laatst online: 17:02
Even snel gekeken, en denk dat dit het is:
PHP:
1
2
3
4
5
$to = "info@***.nl";  
$naam = $naam;  
$telefoon = $telefoon;  
$email = $email;  
$bericht = $bericht;


moet dit zijn denk ik:
PHP:
1
2
3
4
5
$to = "info@***.nl";  
$naam = $_POST["$naam"];  
$telefoon = $_POST["$telefoon"];  
$email = $_POST["$email"];  
$bericht = $_POST["$bericht"];


Maar vind het dan nog wel vreemd dat ie het op PHP4 wel deed :P

Death Knight Zaebor(80), Warlock Thortur (80) en Druid Galithor (80). Retired.


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
[b][message=26607071,noline]ReZ1987 schreef op donderdag 05 oktober 2006 @
Maar vind het dan nog wel vreemd dat ie het op PHP4 wel deed :P
Dat is gewoon een instelling in je config.

register globals o.i.d. ;)
Dat kan door de versie wissel wel uitgegaan zijn. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • ReZ1987
  • Registratie: September 2003
  • Laatst online: 17:02
Gonadan schreef op donderdag 05 oktober 2006 @ 16:29:
[...]

Dat is gewoon een instelling in je config.

register globals o.i.d. ;)
Dat kan door de versie wissel wel uitgegaan zijn. :)
Mjah dat zal het zijn :) Voor de rest vielen mij geen dingen op die niet klopten eigenlijk :)

Death Knight Zaebor(80), Warlock Thortur (80) en Druid Galithor (80). Retired.


Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
Gonadan schreef op donderdag 05 oktober 2006 @ 16:27:
gooi eens wat random echo's in je script, dan kan je zien tot waar hij komt

en maak iets als
PHP:
1
if (mail(blabla)) echo 'goed'; else echo 'mislukt';

Dan weet je zeker of het mailen werkt of niet. :)

Maar je zegt dat je nu een andere versie gebruikt.
Weet je zeker dat je configuratie dan ook alles toelaat wat jij nodig hebt? :)
Ik heb de echo's hier gezet en de comments weggehaald:

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

$to = "info@***.nl"; 
$naam = $_POST["$naam"];   
$telefoon = $_POST["$telefoon"];   
$email = $_POST["$email"];   
$bericht = $_POST["$bericht"]; 

$abo = $_POST['abo']; 
$banner = $_POST['banner']; 

$today = date ("l, F jS Y"); 


if (mail(blabla)) echo 'goed'; else echo 'mislukt'; 
$denyall = "1"; 
$siteurl = "www.***.nl"; 
$callingurl = getenv("HTTP_REFERER"); 

$autoresponse = "0"; 
$confsubject = "Bericht via de website ***.nl"; 
$automessage = "Bedankt voor berichtje."; 

if (mail(blabla)) echo 'goed'; else echo 'mislukt'; 
if (($email != "")) { 
        $locationofat = strpos($email, '@'); 
        $locationofdot = strrpos($email, '.'); 
        if (($locationofat == "0") || ($locationofdot < $locationofat) || $locationofdot == "0") { 
                readfile("bademail.htm"); 
                exit; 
                } else { 
                } 
} 


if (mail(blabla)) echo 'goed'; else echo 'mislukt'; 
$msg .= "Dit bericht is achtergelaten op www.***.nl:\n\n"; 

$msg .= "Naam: $naam\n"; 
     
$msg .= "Telefoonnummer: $telefoon\n"; 
    
$msg .= "Faxnummer: $fax\n"; 
   
$msg .= "E-mail: $email\n"; 

$msg .= "Bericht: $bericht\n";



$mailheaders = "From: $email\n"; 

mail($to, "Aanmelding ***", $msg, $mailheaders); 


        readfile("autothankyou.htm"); 

       
exit;


3 x mislukt in de autothankyou

Dit zijn nieuwe instellingen van de server:
> register_globals = Off
> register_argc_argv = Off
> register_long_arrays = Off
> magic_quotes_gpc = Off
> enable_dl = Off

zit hier de fout in ?

(hij verstuurt het formulier wel, zonder dat ie eerst het ingevulde emailadres controleert en accepteerd, heb namelijk hgeen ingevuld.)

[ Voor 57% gewijzigd door Falcon2107 op 05-10-2006 16:49 ]


Acties:
  • 0 Henk 'm!

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 01:06
Register globals staat uit, dus je zult inderdaad $_POST['varnaam'] moeten gebruiken.

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Dat mail(blabla) was een voorbeeld, ik bedoelde dat je de mailopdracht aan het eind van je script even in een IF moest zetten ;)

Voor de rest zou een echo 'tot hier'; al genoeg zijn tussendoor om te kijken hoever hij komt.
Maar als je register globals uit staat dan is het probleem inderdaad al gevonden. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
InZane schreef op donderdag 05 oktober 2006 @ 17:11:
Register globals staat uit, dus je zult inderdaad $_POST['varnaam'] moeten gebruiken.
dus ik gebruik nu:

PHP:
1
2
3
4
5
6
7
$naam = $_POST["$naam"];    
$telefoon = $_POST["$telefoon"];    
$email = $_POST["$email"];    
$bericht = $_POST["$bericht"];  

$abo = $_POST['abo'];  
$banner = $_POST['banner'];


maar de problemen blijven

Acties:
  • 0 Henk 'm!

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Falcon2107 schreef op donderdag 05 oktober 2006 @ 17:23:
[...]


dus ik gebruik nu:

PHP:
1
2
3
4
5
6
7
$naam = $_POST["$naam"];    
$telefoon = $_POST["$telefoon"];    
$email = $_POST["$email"];    
$bericht = $_POST["$bericht"];  

$abo = $_POST['abo'];  
$banner = $_POST['banner'];


maar de problemen blijven
PHP:
1
2
3
4
5
6
7
$naam = $_POST["naam"];    
$telefoon = $_POST["telefoon"];    
$email = $_POST["email"];    
$bericht = $_POST["bericht"];  

$abo = $_POST["abo"];  
$banner = $_POST["banner"];



[/code]

Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
Yeah Baby!

Tnks. bedankt jongen. voorals nog gaan weer aan de slag.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Het verschil tussen ' en " maakt in dit geval nauwelijks uit.

Anyway, je probleem staat volgens mij nagenoeg direct in de FAQ: Programming FAQ - PHP: Mijn POST en GET forms werken niet (meer) , dus lees dat eens goed door :)

En daarnaast is met debuggen vrij snel uit te vinden welke variabelen nu leeg blijven.

[ Voor 6% gewijzigd door Creepy op 05-10-2006 19:57 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • sjhgvr
  • Registratie: Januari 2004
  • Laatst online: 04-08 14:27
Nooit verteld dat je user input nooit moet vertrouwen?
Lees dit eens: http://www.securephpwiki.com/index.php/Email_Injection

oisd.nl


Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
Dus dat betekend dat we het nog beveiligen moeten tegen spammers?

Acties:
  • 0 Henk 'm!

  • Polichism
  • Registratie: Maart 2002
  • Niet online

Polichism

MOEHOE

(overleden)
Falcon2107 schreef op maandag 09 oktober 2006 @ 10:13:
[...]


Dus dat betekend dat we het nog beveiligen moeten tegen spammers?
ack :)
anders blijf je spammer voedsel :)

{02:31:10} (splinkie): ik hoor net van iemand dat ze nu met een fietsband moest naaien omdat ze geen condooms meer kon betalen || {02:34:44} (Asjemenou): beter met een lange tijd met goodyear dan een korte tijd met firestone en in de problemen komen


Acties:
  • 0 Henk 'm!

  • Falcon2107
  • Registratie: Juli 2001
  • Laatst online: 06-09-2022

Falcon2107

DUTCH-FALCON

Topicstarter
Polichism schreef op maandag 09 oktober 2006 @ 11:18:
[...]


ack :)
anders blijf je spammer voedsel :)
Wat is daar de beste manier voor??

Acties:
  • 0 Henk 'm!

Verwijderd

in dat artikel, gelinkt door DapinododiadeaL, staat genoeg waardevolle informatie.

In ieder geval is de beste tip, het niet zonder meer accepteren van de input van een gebruiker, check dus op voorkomen van speciale tekens, benodigd voor het toevoegen van headers, de ":" wordt namelijk altijd gebruikt om een waarde toe te kennen aan een header "cc: a@b.nl", deze vervangen door andere tekens zou een goede oplossing kunnen zijn.
Pagina: 1