Magento registration returns 'Last name cannot be empty'
I am trying to deploy Magento 1.9.2.1. I used the package from the official site.
But a strange thing happened to me. Among all the instances I deploy, it fails at any page that requires validation of a customer information (registration, etc.). It returns the error 'Last name cannot be empty'. But even stranger, there were 1 or 2 times of success before the errors. That is, the error only happens after I have created 1 or 2 accounts.
I found that the validation method is in the model, as:
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors = Mage::helper('customer')->__('The last name cannot be empty.');
}
So I added some lines before it.
$errors = Mage::helper('customer')->__('The first name cannot be empty.');
$errors = Mage::helper('customer')->__($this->getFirstName());
$errors = Mage::helper('customer')->__($this->getLastName());
$errors = Mage::helper('customer')->__($this->getEmail());
This time there are 5 errors displayed at the registration page. As expected, the first is 'The first name cannot be empty.'
. But the second and third are all empty. The fourth is the email address I typed in.
Here comes another problem. The validation of the first name comes before that of the last name. Were they all empty, how could the error message be only 'The last name cannot be empty.'
?
And more substantially, why can I register at the very beginning? What is the substantial problem?
UPDATE: If I comment the validation for the two names, there are no more errors. But the account created has its last name empty, while first name as I typed in.
UPDATE 2:
print_r($this->getRequest()->getPost('lastname'));
print_r($this->getRequest()->getPost('firstname'));
These lines gives the posted data as expected.
model validation form-validation
|
show 1 more comment
I am trying to deploy Magento 1.9.2.1. I used the package from the official site.
But a strange thing happened to me. Among all the instances I deploy, it fails at any page that requires validation of a customer information (registration, etc.). It returns the error 'Last name cannot be empty'. But even stranger, there were 1 or 2 times of success before the errors. That is, the error only happens after I have created 1 or 2 accounts.
I found that the validation method is in the model, as:
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors = Mage::helper('customer')->__('The last name cannot be empty.');
}
So I added some lines before it.
$errors = Mage::helper('customer')->__('The first name cannot be empty.');
$errors = Mage::helper('customer')->__($this->getFirstName());
$errors = Mage::helper('customer')->__($this->getLastName());
$errors = Mage::helper('customer')->__($this->getEmail());
This time there are 5 errors displayed at the registration page. As expected, the first is 'The first name cannot be empty.'
. But the second and third are all empty. The fourth is the email address I typed in.
Here comes another problem. The validation of the first name comes before that of the last name. Were they all empty, how could the error message be only 'The last name cannot be empty.'
?
And more substantially, why can I register at the very beginning? What is the substantial problem?
UPDATE: If I comment the validation for the two names, there are no more errors. But the account created has its last name empty, while first name as I typed in.
UPDATE 2:
print_r($this->getRequest()->getPost('lastname'));
print_r($this->getRequest()->getPost('firstname'));
These lines gives the posted data as expected.
model validation form-validation
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (Firstname
vs.FirstName
).
– mam08ixo
Aug 12 '15 at 10:01
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
I guess it starts with thepublic function createPostAction()
, within which there is a$customer = $this->_getCustomer();
, and theprotected function _getCustomer()
involves some$customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.
– Colliot
Aug 12 '15 at 18:05
I am pretty sure the magic happens at_getCustomerErrors()
but ain't got my debugging equipment at hand right now.
– mam08ixo
Aug 12 '15 at 21:03
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33
|
show 1 more comment
I am trying to deploy Magento 1.9.2.1. I used the package from the official site.
But a strange thing happened to me. Among all the instances I deploy, it fails at any page that requires validation of a customer information (registration, etc.). It returns the error 'Last name cannot be empty'. But even stranger, there were 1 or 2 times of success before the errors. That is, the error only happens after I have created 1 or 2 accounts.
I found that the validation method is in the model, as:
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors = Mage::helper('customer')->__('The last name cannot be empty.');
}
So I added some lines before it.
$errors = Mage::helper('customer')->__('The first name cannot be empty.');
$errors = Mage::helper('customer')->__($this->getFirstName());
$errors = Mage::helper('customer')->__($this->getLastName());
$errors = Mage::helper('customer')->__($this->getEmail());
This time there are 5 errors displayed at the registration page. As expected, the first is 'The first name cannot be empty.'
. But the second and third are all empty. The fourth is the email address I typed in.
Here comes another problem. The validation of the first name comes before that of the last name. Were they all empty, how could the error message be only 'The last name cannot be empty.'
?
And more substantially, why can I register at the very beginning? What is the substantial problem?
UPDATE: If I comment the validation for the two names, there are no more errors. But the account created has its last name empty, while first name as I typed in.
UPDATE 2:
print_r($this->getRequest()->getPost('lastname'));
print_r($this->getRequest()->getPost('firstname'));
These lines gives the posted data as expected.
model validation form-validation
I am trying to deploy Magento 1.9.2.1. I used the package from the official site.
But a strange thing happened to me. Among all the instances I deploy, it fails at any page that requires validation of a customer information (registration, etc.). It returns the error 'Last name cannot be empty'. But even stranger, there were 1 or 2 times of success before the errors. That is, the error only happens after I have created 1 or 2 accounts.
I found that the validation method is in the model, as:
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors = Mage::helper('customer')->__('The last name cannot be empty.');
}
So I added some lines before it.
$errors = Mage::helper('customer')->__('The first name cannot be empty.');
$errors = Mage::helper('customer')->__($this->getFirstName());
$errors = Mage::helper('customer')->__($this->getLastName());
$errors = Mage::helper('customer')->__($this->getEmail());
This time there are 5 errors displayed at the registration page. As expected, the first is 'The first name cannot be empty.'
. But the second and third are all empty. The fourth is the email address I typed in.
Here comes another problem. The validation of the first name comes before that of the last name. Were they all empty, how could the error message be only 'The last name cannot be empty.'
?
And more substantially, why can I register at the very beginning? What is the substantial problem?
UPDATE: If I comment the validation for the two names, there are no more errors. But the account created has its last name empty, while first name as I typed in.
UPDATE 2:
print_r($this->getRequest()->getPost('lastname'));
print_r($this->getRequest()->getPost('firstname'));
These lines gives the posted data as expected.
model validation form-validation
model validation form-validation
edited Aug 12 '15 at 18:42
Colliot
asked Aug 12 '15 at 9:50
ColliotColliot
1136
1136
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (Firstname
vs.FirstName
).
– mam08ixo
Aug 12 '15 at 10:01
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
I guess it starts with thepublic function createPostAction()
, within which there is a$customer = $this->_getCustomer();
, and theprotected function _getCustomer()
involves some$customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.
– Colliot
Aug 12 '15 at 18:05
I am pretty sure the magic happens at_getCustomerErrors()
but ain't got my debugging equipment at hand right now.
– mam08ixo
Aug 12 '15 at 21:03
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33
|
show 1 more comment
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (Firstname
vs.FirstName
).
– mam08ixo
Aug 12 '15 at 10:01
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
I guess it starts with thepublic function createPostAction()
, within which there is a$customer = $this->_getCustomer();
, and theprotected function _getCustomer()
involves some$customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.
– Colliot
Aug 12 '15 at 18:05
I am pretty sure the magic happens at_getCustomerErrors()
but ain't got my debugging equipment at hand right now.
– mam08ixo
Aug 12 '15 at 21:03
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (
Firstname
vs. FirstName
).– mam08ixo
Aug 12 '15 at 10:01
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (
Firstname
vs. FirstName
).– mam08ixo
Aug 12 '15 at 10:01
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
I guess it starts with the
public function createPostAction()
, within which there is a $customer = $this->_getCustomer();
, and the protected function _getCustomer()
involves some $customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.– Colliot
Aug 12 '15 at 18:05
I guess it starts with the
public function createPostAction()
, within which there is a $customer = $this->_getCustomer();
, and the protected function _getCustomer()
involves some $customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.– Colliot
Aug 12 '15 at 18:05
I am pretty sure the magic happens at
_getCustomerErrors()
but ain't got my debugging equipment at hand right now.– mam08ixo
Aug 12 '15 at 21:03
I am pretty sure the magic happens at
_getCustomerErrors()
but ain't got my debugging equipment at hand right now.– mam08ixo
Aug 12 '15 at 21:03
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33
|
show 1 more comment
1 Answer
1
active
oldest
votes
Check if lastname attribute is present in your customer_form_attribute
table for checkout_register
form and other forms.
To list available fields on checkout_register
form, use:
SELECT `main_table`.*, ea.attribute_code
FROM `customer_form_attribute` AS `main_table`
inner join eav_attribute ea on main_table.attribute_id = ea.attribute_id
WHERE (`main_table`.`form_code` = 'checkout_register')
Note the solution above is for registering customer on checkout form only.
To get a list of available forms do SELECT * FROM customer_form_attribute
.
Possible causes
In my case the problem happened after editing the attribute in admin, using a module that ignored the existence of checkout_register form (Clarion_Customerattribute).
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f78456%2fmagento-registration-returns-last-name-cannot-be-empty%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Check if lastname attribute is present in your customer_form_attribute
table for checkout_register
form and other forms.
To list available fields on checkout_register
form, use:
SELECT `main_table`.*, ea.attribute_code
FROM `customer_form_attribute` AS `main_table`
inner join eav_attribute ea on main_table.attribute_id = ea.attribute_id
WHERE (`main_table`.`form_code` = 'checkout_register')
Note the solution above is for registering customer on checkout form only.
To get a list of available forms do SELECT * FROM customer_form_attribute
.
Possible causes
In my case the problem happened after editing the attribute in admin, using a module that ignored the existence of checkout_register form (Clarion_Customerattribute).
add a comment |
Check if lastname attribute is present in your customer_form_attribute
table for checkout_register
form and other forms.
To list available fields on checkout_register
form, use:
SELECT `main_table`.*, ea.attribute_code
FROM `customer_form_attribute` AS `main_table`
inner join eav_attribute ea on main_table.attribute_id = ea.attribute_id
WHERE (`main_table`.`form_code` = 'checkout_register')
Note the solution above is for registering customer on checkout form only.
To get a list of available forms do SELECT * FROM customer_form_attribute
.
Possible causes
In my case the problem happened after editing the attribute in admin, using a module that ignored the existence of checkout_register form (Clarion_Customerattribute).
add a comment |
Check if lastname attribute is present in your customer_form_attribute
table for checkout_register
form and other forms.
To list available fields on checkout_register
form, use:
SELECT `main_table`.*, ea.attribute_code
FROM `customer_form_attribute` AS `main_table`
inner join eav_attribute ea on main_table.attribute_id = ea.attribute_id
WHERE (`main_table`.`form_code` = 'checkout_register')
Note the solution above is for registering customer on checkout form only.
To get a list of available forms do SELECT * FROM customer_form_attribute
.
Possible causes
In my case the problem happened after editing the attribute in admin, using a module that ignored the existence of checkout_register form (Clarion_Customerattribute).
Check if lastname attribute is present in your customer_form_attribute
table for checkout_register
form and other forms.
To list available fields on checkout_register
form, use:
SELECT `main_table`.*, ea.attribute_code
FROM `customer_form_attribute` AS `main_table`
inner join eav_attribute ea on main_table.attribute_id = ea.attribute_id
WHERE (`main_table`.`form_code` = 'checkout_register')
Note the solution above is for registering customer on checkout form only.
To get a list of available forms do SELECT * FROM customer_form_attribute
.
Possible causes
In my case the problem happened after editing the attribute in admin, using a module that ignored the existence of checkout_register form (Clarion_Customerattribute).
answered 8 mins ago
Ricardo MartinsRicardo Martins
580420
580420
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f78456%2fmagento-registration-returns-last-name-cannot-be-empty%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Are the names included in the POST data when submitting the registration form? Are the parameter keys correct (firstname, lastname)? Your error message will not include the names because you misspelled the accessors (
Firstname
vs.FirstName
).– mam08ixo
Aug 12 '15 at 10:01
@mam08ixo, thanks. I fixed the accessors, I got the last name empty while the first name normal. The post data looks normal. So the problem is in the middle I guess. But.I don't quite understand the getregistry thing and something else which I suppose is how magento process the data posted. Are there any good explanations on this?
– Colliot
Aug 12 '15 at 18:02
I guess it starts with the
public function createPostAction()
, within which there is a$customer = $this->_getCustomer();
, and theprotected function _getCustomer()
involves some$customer = $this->_getFromRegistry('current_customer');
. I can hardly see how the posted data is processed.– Colliot
Aug 12 '15 at 18:05
I am pretty sure the magic happens at
_getCustomerErrors()
but ain't got my debugging equipment at hand right now.– mam08ixo
Aug 12 '15 at 21:03
@mam08ixo, well I now think that it maybe the problem of the middle name. In the template given to me, the middle name is.removed. I guess they did not adjust the model, so the posted last name was fed to the middle name, thus the last name empty. How can I check my hypothesis?
– Colliot
Aug 13 '15 at 12:33