Hulp nodig met controleren van telefoonnummer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc vdL

Marc vdL

12/08/2014 14:50:08
Quote Anchor link
Beste PHP'ers,

Ik ben geen programmeur maar moet nu toch een beroep doen op een stukje PHP. Het gaat om het verzenden van een telefoonnummer.

Het idee is dat wanneer men geen 10 cijfers intoetst het bericht niet verstuurd kan worden.

Tot nu toe heb ik m werkend maar wanneer men niets invult wordt deze ook verstuurd en dat moet natuurlijk niet.

Ik heb tot nu toe het volgende:

HTML file:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Bel me terug</title>
<style type="text/css">
table {
    background-repeat: no-repeat;
}
body,td,th {
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 11px;
    color: #FFF;
}
body {
    margin-left: 10px;
    margin-top: 10px;
}
</style>
</head>

<body>

<table width="300" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><br /><br /><br /><br /><br /><br /><br /><br /><center>
    
    <form action="mailform.php" method="post">
      <p>Uw telefoonnr.:<br />
        <input type="text" name="tel"><br><br>
        <input type="submit" value="Bel me terug">
      </p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
    </form>
    </center>
 
    </td>
  </tr>
</table>
</body>
</html>


En de PHP code ziet er uit als volgt:
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
<?php
// Geef hieronder het emailadres op waar de email heen gestuurd moet worden:
$_MC['ontvanger'] = '[email protected]';

// Geef hieronder het onderwerp van de email op:
$_MC['onderwerp'] = 'Belverzoek via de website';

// Geef hieronder het URL op waar de bezoeker naar toe doorgestuurd moet worden:
$_MC['bedankt'] = 'http://www.mijndomein.nl/bedankt.php';

///////////////////////////////////////////////////
// EINDE CONFIGURATIE. HIERONDER NIETS AANPASSEN //
///////////////////////////////////////////////////

//

$_MC['bericht'] = "Onderstaande belverzoek is binnengekomen via de BEL ME TERUG knop \r\n\r\n";

//
foreach($_POST as $veld_naam => $veld_invoer)
{

if ($veld_naam == 'mc_afzender') { $_MC['afzender'] = "$veld_invoer"; }
else {
$_MC['bericht'] .= "$veld_naam: $veld_invoer\r\n"; }
}



//
$emailadres_check = '/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' .
'(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i';
$emailadres_check = preg_match ($emailadres_check, $_MC['afzender']);
/*--
if ($emailadres_check == '0') { echo 'Ongeldig emailadres opgegeven. Ga terug om dit probleem op te lossen.'; exit; }

//
$code = date("md");
if ($_POST[mc_getal] != "$code") { echo 'Ongeldig anti-spam code opgegeven. Ga terug om dit probleem op te lossen.'; exit; }

//
$headers = 'From: '.$_MC['afzender'].'' . "\r\n" .
    'Reply-To: '.$_MC['afzender'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();--*/

//

mail($_MC['ontvanger'], $_MC['onderwerp'], $_MC['bericht'], $headers);

//
header('Location: '.$_MC['bedankt'].'');

?>


Niet het mooiste script maar het werkt. Kan iemand me helpen?

Met vriendelijke groet,

Marc
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 12/08/2014 22:16:21 door - Ariën -
 
PHP hulp

PHP hulp

19/04/2024 01:37:45
 
Obelix Idefix

Obelix Idefix

12/08/2014 15:59:50
Quote Anchor link
En waar controleer je in dit script dan of het telefoonnummer is gevuld (en of het voldoet aan de 10 cijfers)?
Houd er rekening mee dat mensen vele varianten kunnen invoeren:
012-3456789
012 34 56 78 9
+31 12 345 6789
(31) 123456789
En nog vele combinaties.

Beste (?) wat je kunt doen is om elk teken apart te controleren. Als het een cijfer is, verhoog je een tellertje. Als aan het eind van de controle het tellertje op 10 staat, heb je tien getallen. Of je daarmee een geldig telefoonnummer hebt is natuurlijk niet te zeggen.
 
Marc vdL

Marc vdL

12/08/2014 16:02:02
Quote Anchor link
10 cijfers achter elkaar vind ik goed genoeg. En of dat nummer dan geldig is maakt me niet uit. Als je maar kunt zien dat er iets is ingevoerd.
 
- SanThe -

- SanThe -

12/08/2014 16:12:04
Quote Anchor link
<form action="mailform.php" method="post">

Is bovenstaand script (inclusief het php-stukje) mailform.php?

Je checkt niet of er gepost is.
Je emailheaders zijn fout.
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
 
Marc vdL

Marc vdL

12/08/2014 16:19:38
Quote Anchor link
Ja dat is mailform.php
 
Pipo Clown

Pipo Clown

12/08/2014 17:46:37
Quote Anchor link
Ook ik kan nergens enige controle op het telefoonnummer vinden.

Zo lang we niet kunnen zien WAT je doet kunnen we je ook niet vertellen wat er mis gaat.
 
Obelix Idefix

Obelix Idefix

12/08/2014 22:10:35
Quote Anchor link
Marc vdL op 12/08/2014 14:50:08:
Niet het mooiste script maar het werkt.

Het script hoeft niet 'mooi' te zien, maar als de enige vereiste is dat het werkt, lijkt me dat een verkeerde insteek.
 
- Ariën  -
Beheerder

- Ariën -

12/08/2014 22:16:57
Quote Anchor link
- Aar -:
Ik heb de topictitel aangepast va: 'Hulp met scriptje nodig' naar 'Hulp nodig met controleren van telefoonnummer'.
Dit omdat de topic iets te generiek was, en niet aangaf wat de vraag/probleem-stelling van het topic was.
Gewijzigd op 12/08/2014 22:18:09 door - Ariën -
 
Peter K

Peter K

13/08/2014 08:58:31
Quote Anchor link
Als je iets niet wilt versturen als het leeg is kun je dit b.v. met HTML5 afhandelen.
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_required

Let wel op, dit is alleen in de browser. Je zult dus zoals bovenstaand ook in je PHP script op de server nog moeten controleren.
 
Ivo P

Ivo P

13/08/2014 09:16:32
Quote Anchor link
Je kunt beginnen met alles wat geen cijfer is uit de invoer te verwijderen.

Dan zou je voor een Nederlands telefoonnummer 10 of 12 cijfers moeten overhouden (12 alleen voor data-nummers).

Daarna weet je dat het met een 0 begint

http://www.pfz.nl/wiki/invoer-validatie/#regular-expressions-is-het-een-nederlands-telefoonnummer
 
Ward van der Put
Moderator

Ward van der Put

13/08/2014 11:58:42
Quote Anchor link
Ivo, zijn het niet 13 cijfers?

(06) 12 34 56 78 = 0031612345678
 
Ivo P

Ivo P

13/08/2014 12:01:16
Quote Anchor link
Quote:
Vanwege het uitgeput raken van de 06 reeks worden sinds eind 2013 nummers voor mobiele datanummers (data-abonnementen voor tablet etc, maar ook liften, meetapparatuur etc) geput uit de reeks 097. Dit zijn 12 cijferige nummers. Dus 2 posities langer dan de gebruikelijke nummers voor vaste of mobiele telefonie.
 
Ward van der Put
Moderator

Ward van der Put

13/08/2014 12:07:01
Quote Anchor link
Aha! +1
 



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.