form met submit button (probleempje)
Pagina: « vorige 1 2 3 4 volgende »
Neemt niet weg dat het best verouderd eruit ziet. Tabellen zijn serieus niet meer van de tijd, en die()-als functie is ook niet echt nodig. Ook wat tabs om de boel netjes uit te lijnen zijn ook niet overbodig.
sorry voor de late reactie.
ik ben er achter dat ik een oude en nieuwe recapcha door elkaar gebruikten.
ik heb nu de oude controle van recapcha verwijderd die verwijst naar een php bestand wat niet meer bestaat.
nu werkt het form wel alleen de recapcha niet meer.
dit heb ik verwijderd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
/********************* RECAPTCHA CHECK *******************************
This code checks and validates recaptcha
****************************************************************/
require_once('recaptchalib.php');
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
die ("<h3>Image Verification failed!. Go back and try again.</h3>" .
"(reCAPTCHA said: " . $resp->error . ")");
}
?>
/********************* RECAPTCHA CHECK *******************************
This code checks and validates recaptcha
****************************************************************/
require_once('recaptchalib.php');
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
die ("<h3>Image Verification failed!. Go back and try again.</h3>" .
"(reCAPTCHA said: " . $resp->error . ")");
}
?>
ik heb trouwens nu via de recapcha site nu een text vlak voor de /head geplaatst en de code met key voor het afbeelden van het plaatje aan het einde van het form.
en natuurlijk de key codes toegevoegd om te verbinden in de php file waarmee je connectie maakt met de database.
Gewijzigd op 12/01/2015 23:19:25 door - Ariën -
Wat gebeurt er dan?
je kan zonder aan te geven dat je geen robot bent het formulier versturen.
privatekey heb je wel goed ingesteld? En hoe hoe je deze code geimplementeerd in je formulier?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
?>
<?php
<div class="g-recaptcha" data-sitekey="********************************"></div>
?>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
?>
<?php
<div class="g-recaptcha" data-sitekey="********************************"></div>
?>
en in de database met connectie
Code (php)
1
2
3
4
5
2
3
4
5
<?php
/*************** reCAPTCHA KEYS****************/
$publickey = "**********************************i";
$privatekey = "*********************************S";
?>
/*************** reCAPTCHA KEYS****************/
$publickey = "**********************************i";
$privatekey = "*********************************S";
?>
dit is alles wat er ingevoegd is.
maar volgens mij gaat het fout dat het nergens gecontroleerd wordt.
Gewijzigd op 12/01/2015 23:18:21 door - Ariën -
Waar controleer je of je formulier is verstuurd?
if($_POST['doRegister'] == 'Register')
{
maar het formulier wordt goed verstuurd!
alleen de recapcha controle doet het niet.
Gewijzigd op 12/01/2015 23:29:36 door marcel sauer
En gebruik deze code eens, dit is meer correcter omdat je wilt weten of je formulier verstuurd, is, en niet alleen of er op een knop is gedrukt.
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
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
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
<?php
/********** formulier verzonden***************************/
if($_SERVER['REQUEST_METHOD']=="POST") {
echo "Je formulier is via POST verstuurd";
} else {
echo "Je formulier is niet verstuurd. Hier kan je bijvoorbeeld je formulier tonen";
}
if($_SERVER['REQUEST_METHOD']=="POST")
{
/******************* Filtering/Sanitizing Input *****************************
This code filters harmful script code and escapes data of all POST data
from the user submitted form.
*****************************************************************/
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
/************************ SERVER SIDE VALIDATION **************************************/
/********** This validation is useful if javascript is disabled in the browswer ***/
if(empty($data['full_name']) || strlen($data['full_name']) < 4)
{
$err[] = "ERROR - Invalid name. Please enter atleast 3 or more characters for your name";
//header("Location: register.php?msg=$err");
//exit();
}
// Validate User Name
if (!isUserID($data['user_name'])) {
$err[] = "ERROR - Invalid user name. It can contain alphabet, number and underscore.";
//header("Location: register.php?msg=$err");
//exit();
}
// Validate Email
if(!isEmail($data['usr_email'])) {
$err[] = "ERROR - Invalid email address.";
//header("Location: register.php?msg=$err");
//exit();
}
// Check User Passwords
if (!checkPwd($data['pwd'],$data['pwd2'])) {
$err[] = "ERROR - Invalid Password or mismatch. Enter 5 chars or more";
//header("Location: register.php?msg=$err");
//exit();
}
$user_ip = $_SERVER['REMOTE_ADDR'];
// stores sha1 of password
$sha1pass = PwdHash($data['pwd']);
// Automatically collects the hostname or domain like example.com)
$host = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);
$path = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
// Generates activation code simple 4 digit number
$activ_code = rand(1000,9999);
$usr_email = $data['usr_email'];
$user_name = $data['user_name'];
/************ USER EMAIL CHECK ************************************
This code does a second check on the server side if the email already exists. It
queries the database and if it has any existing email it throws user email already exists
*******************************************************************/
$rs_duplicate = mysql_query("select count(*) as total from users where user_email='$usr_email' OR user_name='$user_name'") or die(mysql_error());
list($total) = mysql_fetch_row($rs_duplicate);
if ($total > 0)
{
$err[] = "ERROR - The username/email already exists. Please try again with different username and email.";
//header("Location: register.php?msg=$err");
//exit();
}
/***************************************************************************/
if(empty($err)) {
$sql_insert = "INSERT into `users`
(`full_name`,`user_email`,`pwd`,`address`,`tel`,`fax`,`website`,`date`,`users_ip`,`activation_code`,`country`,`user_name`
)
VALUES
('$data[full_name]','$usr_email','$sha1pass','$data[address]','$data[tel]','$data[fax]','$data[web]'
,now(),'$user_ip','$activ_code','$data[country]','$user_name'
)
";
mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
$user_id = mysql_insert_id($link);
$md5_id = md5($user_id);
mysql_query("update users set md5_id='$md5_id' where id='$user_id'");
// echo "<h3>Thank You</h3> We received your submission.";
if($user_registration) {
$a_link = "
*****ACTIVATION LINK*****\n
http://$host$path/activate.php?user=$md5_id&activ_code=$activ_code
";
} else {
$a_link =
"Your account is *PENDING APPROVAL* and will be soon activated the administrator.
";
}
$message =
"Hello \n
Thank you for registering with us. Here are your login details...\n
User ID: $user_name
Email: $usr_email \n
Passwd: $data[pwd] \n
$a_link
Thank You
Administrator
$host_upper
______________________________________________________
THIS IS AN AUTOMATED RESPONSE.
***DO NOT RESPOND TO THIS EMAIL****
";
mail($usr_email, "Login Details", $message,
"From: \"Member Registration\" <mijn email adres>\r\n" .
"X-Mailer: PHP/" . phpversion());
header("Location: thankyou.php");
exit();
}
}
?>
[/CODE]
/********** formulier verzonden***************************/
if($_SERVER['REQUEST_METHOD']=="POST") {
echo "Je formulier is via POST verstuurd";
} else {
echo "Je formulier is niet verstuurd. Hier kan je bijvoorbeeld je formulier tonen";
}
if($_SERVER['REQUEST_METHOD']=="POST")
{
/******************* Filtering/Sanitizing Input *****************************
This code filters harmful script code and escapes data of all POST data
from the user submitted form.
*****************************************************************/
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
/************************ SERVER SIDE VALIDATION **************************************/
/********** This validation is useful if javascript is disabled in the browswer ***/
if(empty($data['full_name']) || strlen($data['full_name']) < 4)
{
$err[] = "ERROR - Invalid name. Please enter atleast 3 or more characters for your name";
//header("Location: register.php?msg=$err");
//exit();
}
// Validate User Name
if (!isUserID($data['user_name'])) {
$err[] = "ERROR - Invalid user name. It can contain alphabet, number and underscore.";
//header("Location: register.php?msg=$err");
//exit();
}
// Validate Email
if(!isEmail($data['usr_email'])) {
$err[] = "ERROR - Invalid email address.";
//header("Location: register.php?msg=$err");
//exit();
}
// Check User Passwords
if (!checkPwd($data['pwd'],$data['pwd2'])) {
$err[] = "ERROR - Invalid Password or mismatch. Enter 5 chars or more";
//header("Location: register.php?msg=$err");
//exit();
}
$user_ip = $_SERVER['REMOTE_ADDR'];
// stores sha1 of password
$sha1pass = PwdHash($data['pwd']);
// Automatically collects the hostname or domain like example.com)
$host = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);
$path = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
// Generates activation code simple 4 digit number
$activ_code = rand(1000,9999);
$usr_email = $data['usr_email'];
$user_name = $data['user_name'];
/************ USER EMAIL CHECK ************************************
This code does a second check on the server side if the email already exists. It
queries the database and if it has any existing email it throws user email already exists
*******************************************************************/
$rs_duplicate = mysql_query("select count(*) as total from users where user_email='$usr_email' OR user_name='$user_name'") or die(mysql_error());
list($total) = mysql_fetch_row($rs_duplicate);
if ($total > 0)
{
$err[] = "ERROR - The username/email already exists. Please try again with different username and email.";
//header("Location: register.php?msg=$err");
//exit();
}
/***************************************************************************/
if(empty($err)) {
$sql_insert = "INSERT into `users`
(`full_name`,`user_email`,`pwd`,`address`,`tel`,`fax`,`website`,`date`,`users_ip`,`activation_code`,`country`,`user_name`
)
VALUES
('$data[full_name]','$usr_email','$sha1pass','$data[address]','$data[tel]','$data[fax]','$data[web]'
,now(),'$user_ip','$activ_code','$data[country]','$user_name'
)
";
mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
$user_id = mysql_insert_id($link);
$md5_id = md5($user_id);
mysql_query("update users set md5_id='$md5_id' where id='$user_id'");
// echo "<h3>Thank You</h3> We received your submission.";
if($user_registration) {
$a_link = "
*****ACTIVATION LINK*****\n
http://$host$path/activate.php?user=$md5_id&activ_code=$activ_code
";
} else {
$a_link =
"Your account is *PENDING APPROVAL* and will be soon activated the administrator.
";
}
$message =
"Hello \n
Thank you for registering with us. Here are your login details...\n
User ID: $user_name
Email: $usr_email \n
Passwd: $data[pwd] \n
$a_link
Thank You
Administrator
$host_upper
______________________________________________________
THIS IS AN AUTOMATED RESPONSE.
***DO NOT RESPOND TO THIS EMAIL****
";
mail($usr_email, "Login Details", $message,
"From: \"Member Registration\" <mijn email adres>\r\n" .
"X-Mailer: PHP/" . phpversion());
header("Location: thankyou.php");
exit();
}
}
?>
[/CODE]
Na lijn 53 zou je die captcha controle wel kunnen inbouwen. gebruik dan geen die(), maar een nette foutmelding uit je $err[] array. Veel netter.
een code voor een veroudert type recapcha die naar de libary verwijst.
ik gebruik de nieuwe versie dus de controlle bestaat niet meer die zou er opnieuw ingebouwd moeten worden.
ik ga proberen of ik het er in gebouwd krijg.
alvast bedankt.
Prima, als je vragen hebt, dan horen we het wel in dit topic. Succes!
ik kom er nog niet helemaal uit.
ik heb dit op "papier" gezet maar dit is het niet..
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// Check GeCapcha
if (!g-recaptcha($data['g-recaptcha'])) {
$err[] = "ERROR - Invalid ReCapcha input.";
}
?>
[/CODE]
// Check GeCapcha
if (!g-recaptcha($data['g-recaptcha'])) {
$err[] = "ERROR - Invalid ReCapcha input.";
}
?>
[/CODE]
Is dat de bedoeling?
nee is niet de bedoeling :S
En die code van 12 januari om 22:57, in dit topic?
ik heb in mijn site 2.0 zitten.
de php recaptchalib.php bestaat niet in mijn site.
als ik de code van 12 januari om 22:57 invoeg en dan de php file uit je link er bij zet doet hij weer niks. formulier controle zegt verstuurd maar niks in de database en geen vervolg pagina thankyou.php