Avatar billede brevkasserne Nybegynder
24. juni 2003 - 00:11 Der er 7 kommentarer og
2 løsninger

Samme tjek i PHP og JavaScript

Tjekker disse koder det samme i henholdsvis PHP og JavaScript? Det er specielt tjekningen af e-mail jeg er i tvivl om!

JavaScript-------------------------

function check_input() {
if (!(document.register.username.value.length >= 3 && document.register.username.value.length <= 20 && document.register.username.value.match(/^[a-z0-9_-]+$/i))) {
alert('Please specify a valid username!');
document.register.username.focus();
return false; }

if (!(document.register.password.value.length >= 6 && document.register.username.value.length <= 20)) {
alert('Please specify a valid password!');
document.register.password.focus();
return false; }

if (!(document.register.email.value.indexOf('@') > 0 && document.register.email.value.lastIndexOf('.') > document.register.email.value.lastIndexOf('@') && document.register.email.value.indexOf('@') == document.register.email.value.lastIndexOf('@')) || (document.register.email.value.indexOf('@.')) > 0 || (document.register.email.value.indexOf(';')) > 0 || (document.register.email.value.indexOf(' ')) > 0 || (document.register.email.value.indexOf(':')) > 0 || (document.register.email.value.indexOf(',')) > 0 || (document.register.email.value.indexOf('.@')) > 0  ) {
alert('Please specify a valid e-mail!');
document.register.email.focus();
return false; }

if (!(document.register.country.value > 0)) {
alert('Please specify a valid country!');
document.register.country.focus();
return false; }

if (!(document.register.gender.value > 0)) {
alert('Please specify a valid gender!');
document.register.gender.focus();
return false; }

if (!(document.register.age.value > 0)) {
alert('Please specify a valid age!');
document.register.age.focus();
return false; }

if (!(document.register.password.value == document.register.password_check.value)) {
alert('Your password entries did not match!');
document.register.password_check.focus();
return false; }

document.register.submit(); }

PHP -----------------------------

if (!eregi('^[a-z0-9_-]{3,20}$', $_POST['username'])) {
header("location:register.php?status=invalid_username");
} elseif (!eregi('.{6,20}', $_POST['password'])) {
header("location:register.php?status=invalid_password");
} elseif (!eregi('.@.+.',$_POST['email'])) {
header("location:register.php?status=invalid_email");
} elseif ($_POST['country'] < 0) {
header("location:register.php?status=invalid_country");
} elseif ($_POST['gender'] < 0) {
header("location:register.php?status=invalid_gender");
} elseif ($_POST['age'] < 0) {
header("location:register.php?status=invalid_age");
} elseif ($_POST['password'] != $_POST['password_check']) {
header("location:register.php?status=invalid_password_check");
Avatar billede jakoba Nybegynder
24. juni 2003 - 00:54 #1
De er 'det samme'. dvs
værdien i $_POST['username']  (php) er den samme som
værdien i document.register.username.value  (javascript)

den eneste tvivlsommer er password , i nogle browsere er det begrænset hvad javascript må gøre med et password felt. For php er det blot en almindelig variabel.

din test af email felter er ret forskellig i de to sprog, javascript testen er strengere end php testen.

mvh JakobA
Avatar billede brevkasserne Nybegynder
24. juni 2003 - 09:18 #2
er der nogen som kan komme med det samme tjek i php for email som den er i javascript?

jeg skulle gerne have de helt ens tjek både i php og javascript...
Avatar billede nielle Nybegynder
24. juni 2003 - 09:35 #3
Må man være så fri at foreslå et alternativt email-tjek i JavaScript?

document.register.email.value.match(/^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$/i)
Avatar billede jakoba Nybegynder
24. juni 2003 - 09:44 #4
god ide. det er en endnu bedre test, og den præcis samme test kan skrive i php som:
  if (!eregi('^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$', $_POST['email']))
Avatar billede brevkasserne Nybegynder
24. juni 2003 - 20:43 #5
Så skulle det være ændret. MANGE TAK!
Laver i ikke lige begge et svar, så fordeler jeg pointene!
Vil godt lige som 100% sikkerhed be' jer om at tjekke min kode igennem nu:

JavaScript-----------------------------------------------------

function check_input() {
if (!(document.register.username.value.length >= 3 && document.register.username.value.length <= 20 && document.register.username.value.match(/^[a-z0-9_\-\.]+$/i))) {
alert('Please specify a valid username!');
document.register.username.focus();
return false; }

if (!(document.register.password.value.length >= 6 && document.register.username.value.length <= 20)) {
alert('Please specify a valid password!');
document.register.password.focus();
return false; }

if (!(document.register.email.value.match(/^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$/i))) {
alert('Please specify a valid e-mail!');
document.register.email.focus();
return false; }

if (!(document.register.country.value > 0)) {
alert('Please specify a valid country!');
document.register.country.focus();
return false; }

if (!(document.register.gender.value > 0)) {
alert('Please specify a valid gender!');
document.register.gender.focus();
return false; }

if (!(document.register.age.value > 0)) {
alert('Please specify a valid age!');
document.register.age.focus();
return false; }

if (!(document.register.password.value == document.register.password_check.value)) {
alert('Your password entries did not match!');
document.register.password_check.focus();
return false; }

document.register.submit(); }

PHP-----------------------------------------------------

} elseif (!eregi('^[a-z0-9_\-\.]{3,20}$', $_POST['username'])) {
header("location:register.php?status=invalid_username");
} elseif (!eregi('.{6,20}', $_POST['password'])) {
header("location:register.php?status=invalid_password");
} elseif (!eregi('^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z0-9_\-\.]+$', $_POST['email'])) {
header("location:register.php?status=invalid_email");
} elseif ($_POST['country'] < 0) {
header("location:register.php?status=invalid_country");
} elseif ($_POST['gender'] < 0) {
header("location:register.php?status=invalid_gender");
} elseif ($_POST['age'] < 0) {
header("location:register.php?status=invalid_age");
} elseif ($_POST['password'] != $_POST['password_check']) {
header("location:register.php?status=invalid_password_check");
Avatar billede jakoba Nybegynder
24. juni 2003 - 20:45 #6
den skulle være ok.
Avatar billede nielle Nybegynder
24. juni 2003 - 20:46 #7
Yub.
Avatar billede nielle Nybegynder
24. juni 2003 - 20:50 #8
Og så et svar.

Jeg forstår dog ikke helt - du var jo begyndt at bruge regulære udtryk til username. Hvorfor stoppede du så da du kom til email-feltet?
Avatar billede brevkasserne Nybegynder
24. juni 2003 - 21:02 #9
Jeg var ikke helt klar over hvilke tegn som var tilladt i e-mail :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester