/    Sign up×
Community /Pin to ProfileBookmark

Validation help!

I have the following code. When I click submit, it tells me “validate_form is not defined.” Can you tell me what’s wrong and how to fix it? When all the fields are filled in correctly, I need a pop-up box to come up that confirms the book selected and the quantity. I don’t know how to do this at all.

[CODE]
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
<head>
<title>Book Order Form</title>
<style type=”text/css”>

* {
margin:0px;
padding:0px;
font-family:’Times New Roman’, sans-serif;
font-size:16px;
color:#333333;
font-weight: bold;
}

.container {
width:500px;
background-color:#fff;
margin:10px auto;
text-align:center;
border:2px solid #CDC9A5;
overflow:hidden;
}

.basic {
display:block;
text-align:left;
background-color:#999999;
padding:2px 0px;
}

.formHoldersL:first-child {
border-top:0px;
}

.formHoldersL {
display:block;
width:188px;
float:left;
text-align:left;
padding:4px 17px;
border-top:2px solid #CDC9A5;
height:inherit;
}
.formHoldersR:first-child {
border:0px;
}

.formHoldersR {
display:block;
width:275px;
float:right;
text-align:left;
padding:0px;
border-top:2px solid #CDC9A5;
border-left:2px solid #CDC9A5;
height:inherit;
}

.clear {
clear:both;
}

.button {
border-top:2px solid #CDC9A5;
}

</style>
<script type=”text/JavaScript”>

function validate_form() {
var error_msg = “”;
var form = document.form;

if (form.books.selectedIndex==0)
error_msg += “Please select your book.n”;
}
if (form.Qty.value==””)
error_msg += “Please fill in the ‘Qty’ box.n”;
}
if (form.name.value==””)
error_msg += “Please fill in the ‘Name’ box.n”;
}
if (form.address.value==””)
error_msg += “Please fill in the ‘Address’ box.n”;
}
if (form.zipcode.value==””)
error_msg += “Please fill in the ‘Zip Code’ box.n”;
}
if (form.state.value==””)
error_msg += “Please fill in the ‘State’ box.n”;
}
if (form.phone.value==””)
error_msg += “Please fill in the ‘Phone’ box.n”;
}
if (form.email.value==””)
error_msg += “Please fill in the ‘Email’ box.n”;
}

if (form.email.value.matches(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i) == false )
error_msg = “Please put in a properly-formatted email address.n”;
}
if (form.Qty.value.matches(/^[1-9]d*$/) == false )
error_msg = “Please put in a quantity great than 0. n”;
}
if( error_msg != “” )
alert(error_msg);

return (error_msg == “”);
}

</script>
</head>

<body>
<form method=”post” action=”post” onsubmit=”validate_form()”>

<div class=”container”>

<div class=”basic”>Online Bookstore</div>
<div class=”formHoldersL”>Select the book</div>
<div class=”formHoldersR”><select name=”books”>
<option>Javascript Book</option>
<option>Java Language Book</option>
<option>VBScript Book</option>
<option>Advanced Programming in Java</option>
<option>Data Structures in C++</option>
<option>Perl and CGI</option>
</select></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Qty</div>
<div class=”formHoldersR”><input name=”Qty” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Do you want a free subscription to the newsletter?</div>
<div class=”formHoldersR”><input name=”newsletter” type=”radio” value=”yes” /> Yes <input name=”newsletter” type=”radio” value=”no” /> No

<p>&nbsp;</p></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Free Information Book List:</div>
<div class=”formHoldersR”><select name=”information” size=”5″>
<option>Internet Books</option>
<option>Programming Languages</option>
<option>Networking Books</option>
<option>Internet Security Books</option>
<option>Scripting Books</option>
<option>Application Design Books</option>
</select></div>
<div class=”clear”></div>

<div class=”basic”>Delivery Information</div>
<div class=”clear”></div>
<div class=”formHoldersL”>Name</div>
<div class=”formHoldersR”><input name=”name” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Address</div>
<div class=”formHoldersR”><input name=”address” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>ZipCode</div>
<div class=”formHoldersR”><input name=”zipcode” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>State</div>
<div class=”formHoldersR”><input name=”state” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Phone</div>
<div class=”formHoldersR”><input name=”phone” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”formHoldersL”>Email</div>
<div class=”formHoldersR”><input name=”email” type=”text” size=”20″ /></div>
<div class=”clear”></div>
<div class=”button”><input type=”submit” value=”Submit”/><input type=”reset” /></div>
<div class=”clear”></div>
</div>
</form>
</body>
</html>[/CODE]

to post a comment
JavaScript

10 Comments(s)

Copy linkTweet thisAlerts:
@JMRKERAug 03.2008 — Try this:
[code=php]
<form method="post" action="post" onsubmit="return validate_form()">
[/code]


Also add the '{' character after the if (condition)

as in:
[code=php]
if (form.books.selectedIndex==0) { error_msg += "Please select your book.n"; }
[/code]

What happens then?
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — It still says validate_ form is not defined. Do I have to put things in the () after validate_form. Would that be defining it?
Copy linkTweet thisAlerts:
@JMRKERAug 03.2008 — No, you only need to pass arguments within the () if they are to be used.

I just noticed that you are using a variable named 'form'

This is a reserved word, so to avoid confusion, try changing

all instances of it, like:
[code=php]
var frm = document.form;

if (frm.books.selectedIndex==0) { error_msg += "Please select your book.n"; }
[/code]
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — Thanks. I just sent you a pm. I'm desperate for help with this. Sorry to be annoying. It's taken me so long to get this far that I have no clue what to change or tamper with to get the right result. I'm scared to screw my work up.
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — Okay, I changed it to frm. This at least helps me understand things better.
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — [CODE]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Book Order Form</title>
<style type="text/css">

* {
margin:0px;
padding:0px;
font-family:'Times New Roman', sans-serif;
font-size:16px;
color:#333333;
font-weight: bold;
}

.container {
width:500px;
background-color:#fff;
margin:10px auto;
text-align:center;
border:2px solid #CDC9A5;
overflow:hidden;
}

.basic {
display:block;
text-align:left;
background-color:#999999;
padding:2px 0px;
}

.formHoldersL:first-child {
border-top:0px;
}

.formHoldersL {
display:block;
width:188px;
float:left;
text-align:left;
padding:4px 17px;
border-top:2px solid #CDC9A5;
height:inherit;
}
.formHoldersR:first-child {
border:0px;
}

.formHoldersR {
display:block;
width:275px;
float:right;
text-align:left;
padding:0px;
border-top:2px solid #CDC9A5;
border-left:2px solid #CDC9A5;
height:inherit;
}

.clear {
clear:both;
}

.button {
border-top:2px solid #CDC9A5;
}

</style>
<script type="text/JavaScript">

function validate_form() {
var error_msg = "";
var frm = document.order_form;

if (frm.books.selectedIndex==0)
error_msg += "Please select your book.n";
}
if (frm.Qty.value=="")
error_msg += "Please fill in the 'Qty' box.n";
}
if (frm.name.value=="")
error_msg += "Please fill in the 'Name' box.n";
}

if (frm.address.value=="")
error_msg += "Please fill in the 'Address' box.n";
}

if (frm.zipcode.value=="")
error_msg += "Please fill in the 'Zip Code' box.n";
}

if (frm.state.value=="")
error_msg += "Please fill in the 'State' box.n";
}
if (frm.phone.value=="")
error_msg += "Please fill in the 'Phone' box.n";
}
if (frm.email.value=="")
error_msg += "Please fill in the 'Email' box.n";
}

if (frm.email.value.matches(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i) == false )
error_msg = "Please put in a properly-formatted email address.n";
}
if (frm.Qty.value.matches(/^[1-9]d*$/) == false )
error_msg = "Please put in a quantity great than 0. n";
}
if( error_msg != "" )
alert(error_msg);

return (error_msg == "");
}

</script>
</head>

<body>
<form method="post" action="post" onsubmit="return validate_form()">

<div class="container">

<div class="basic">Online Bookstore</div>
<div class="formHoldersL">Select the book</div>
<div class="formHoldersR"><select name="books">
<option>Javascript Book</option>
<option>Java Language Book</option>
<option>VBScript Book</option>
<option>Advanced Programming in Java</option>
<option>Data Structures in C++</option>
<option>Perl and CGI</option>
</select></div>
<div class="clear"></div>
<div class="formHoldersL">Qty</div>
<div class="formHoldersR"><input name="Qty" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Do you want a free subscription to the newsletter?</div>
<div class="formHoldersR"><input name="newsletter" type="radio" value="yes" /> Yes <input

name="newsletter" type="radio" value="no" /> No

<p>&nbsp;</p></div>
<div class="clear"></div>
<div class="formHoldersL">Free Information Book List:</div>
<div class="formHoldersR"><select name="information" size="5">
<option>Internet Books</option>
<option>Programming Languages</option>
<option>Networking Books</option>
<option>Internet Security Books</option>
<option>Scripting Books</option>
<option>Application Design Books</option>
</select></div>
<div class="clear"></div>

<div class="basic">Delivery Information</div>
<div class="clear"></div>
<div class="formHoldersL">Name</div>
<div class="formHoldersR"><input name="name" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Address</div>
<div class="formHoldersR"><input name="address" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">ZipCode</div>
<div class="formHoldersR"><input name="zipcode" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">State</div>
<div class="formHoldersR"><input name="state" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Phone</div>
<div class="formHoldersR"><input name="phone" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Email</div>
<div class="formHoldersR"><input name="email" type="text" size="20" /></div>
<div class="clear"></div>
<div class="button"><input type="submit" value="Submit"/><input type="reset" /></div>
<div class="clear"></div>
</div>
</form>
</body>
</html>[/CODE]
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — Should I make the code like this:

<form method="post" action="post" onsubmit= return "validate_form()" />

Before, I only had > at the end, instead of />.

However, this only leads to it displaying a page saying it cannot find the file, but at least it isn't saying that it's undefined.
Copy linkTweet thisAlerts:
@JMRKERAug 03.2008 — You didn't make all the changes I recommended.

The following still doesn't work, but I've put in some alerts for testing purposes.

Note that the function is being called, but that the values that are to be checked are non-existent. You need to be sure that you are getting the correct values for the checks to be accomplished.

Sorry I haven't given a correct code yet, but it's approaching midnight and my mind is turning to mush. :o

[code=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Book Order Form</title>
<style type="text/css">

* {
margin:0px;
padding:0px;
font-family:'Times New Roman', sans-serif;
font-size:16px;
color:#333333;
font-weight: bold;
}

.container {
width:500px;
background-color:#fff;
margin:10px auto;
text-align:center;
border:2px solid #CDC9A5;
overflow:hidden;
}

.basic {
display:block;
text-align:left;
background-color:#999999;
padding:2px 0px;
}

.formHoldersL:first-child {
border-top:0px;
}

.formHoldersL {
display:block;
width:188px;
float:left;
text-align:left;
padding:4px 17px;
border-top:2px solid #CDC9A5;
height:inherit;
}
.formHoldersR:first-child {
border:0px;
}

.formHoldersR {
display:block;
width:275px;
float:right;
text-align:left;
padding:0px;
border-top:2px solid #CDC9A5;
border-left:2px solid #CDC9A5;
height:inherit;
}

.clear {
clear:both;
}

.button {
border-top:2px solid #CDC9A5;
}

</style>
<script type="text/JavaScript">

function validate_form() { alert('Start of validateion');
var error_msg = "";
var frm = document.order_form;

if (frm.books.selectedIndex==0) { error_msg += "Please select your book.n"; } else { alert(frm.books.selectedIndex); }
if (frm.Qty.value=="") { error_msg += "Please fill in the 'Qty' box.n"; } else { alert(frm.Qty.value); }

/* following replaced with temporary code above for testing
if (frm.books.selectedIndex==0) {
error_msg += "Please select your book.n";
}
if (frm.Qty.value=="") {
error_msg += "Please fill in the 'Qty' box.n";
}
*/
if (frm.name.value=="") {
error_msg += "Please fill in the 'Name' box.n";
}

if (frm.address.value=="") {
error_msg += "Please fill in the 'Address' box.n";
}

if (frm.zipcode.value=="") {
error_msg += "Please fill in the 'Zip Code' box.n";
}

if (frm.state.value=="") {
error_msg += "Please fill in the 'State' box.n";
}
if (frm.phone.value=="") {
error_msg += "Please fill in the 'Phone' box.n";
}
if (frm.email.value=="") {
error_msg += "Please fill in the 'Email' box.n";
}

if (frm.email.value.matches(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i) == false ) {
error_msg = "Please put in a properly-formatted email address.n";
}
if (frm.Qty.value.matches(/^[1-9]d*$/) == false ) {
error_msg = "Please put in a quantity great than 0. n";
}
if( error_msg != "" ) { alert(error_msg); }
alert('End of validationn'+error_msg); // for testing only
return (error_msg == "");
}

</script>
</head>

<body>
<form name-"order_form" method="post" action="post" onsubmit="return validate_form()">

<div class="container">

<div class="basic">Online Bookstore</div>
<div class="formHoldersL">Select the book</div>
<div class="formHoldersR"><select name="books">
<option>Javascript Book</option>
<option>Java Language Book</option>
<option>VBScript Book</option>
<option>Advanced Programming in Java</option>
<option>Data Structures in C++</option>
<option>Perl and CGI</option>
</select></div>
<div class="clear"></div>
<div class="formHoldersL">Qty</div>
<div class="formHoldersR"><input name="Qty" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Do you want a free subscription to the newsletter?</div>
<div class="formHoldersR"><input name="newsletter" type="radio" value="yes" /> Yes <input

name="newsletter" type="radio" value="no" /> No

<p>&nbsp;</p></div>
<div class="clear"></div>
<div class="formHoldersL">Free Information Book List:</div>
<div class="formHoldersR"><select name="information" size="5">
<option>Internet Books</option>
<option>Programming Languages</option>
<option>Networking Books</option>
<option>Internet Security Books</option>
<option>Scripting Books</option>
<option>Application Design Books</option>
</select></div>
<div class="clear"></div>

<div class="basic">Delivery Information</div>
<div class="clear"></div>
<div class="formHoldersL">Name</div>
<div class="formHoldersR"><input name="name" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Address</div>
<div class="formHoldersR"><input name="address" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">ZipCode</div>
<div class="formHoldersR"><input name="zipcode" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">State</div>
<div class="formHoldersR"><input name="state" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Phone</div>
<div class="formHoldersR"><input name="phone" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Email</div>
<div class="formHoldersR"><input name="email" type="text" size="20" /></div>
<div class="clear"></div>
<div class="button"><input type="submit" value="Submit"/><input type="reset" /></div>
<div class="clear"></div>
</div>
</form>
</body>
</html>
[/code]
Copy linkTweet thisAlerts:
@MolsauthorAug 03.2008 — It's fine. I thought I did make all of the changes you suggested. I'm sorry, I've been working on this so long that I don't know what I'm doing anymore.
Copy linkTweet thisAlerts:
@JMRKERAug 03.2008 — There is just something basically wrong with your

var frm = document.form

assignment as I could never get it to work this way. :mad:

Here, with some debugging code left in, is a working version.
[code=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Book Order Form</title>
<style type="text/css">

* {
margin:0px;
padding:0px;
font-family:'Times New Roman', sans-serif;
font-size:16px;
color:#333333;
font-weight: bold;
}

.container {
width:500px;
background-color:#fff;
margin:10px auto;
text-align:center;
border:2px solid #CDC9A5;
overflow:hidden;
}

.basic {
display:block;
text-align:left;
background-color:#999999;
padding:2px 0px;
}

.formHoldersL:first-child {
border-top:0px;
}

.formHoldersL {
display:block;
width:188px;
float:left;
text-align:left;
padding:4px 17px;
border-top:2px solid #CDC9A5;
height:inherit;
}
.formHoldersR:first-child {
border:0px;
}

.formHoldersR {
display:block;
width:275px;
float:right;
text-align:left;
padding:0px;
border-top:2px solid #CDC9A5;
border-left:2px solid #CDC9A5;
height:inherit;
}

.clear { clear:both; }

.button {
border-top:2px solid #CDC9A5;
}

</style>
<script type="text/JavaScript">
// From: http://www.webdeveloper.com/forum/showthread.php?t=187974

function validate_form() { // alert('Start of validateion'); // for testing only
var error_msg = "";

// var frm = document.order_form; // for whatever reason, this format does NOT work

var Books = document.getElementById('Books').selectedIndex;
var Qty = document.getElementById('Qty').value;
var Person = document.getElementById('Person').value;
var Address = document.getElementById('Address').value;
var Zipcode = document.getElementById('Zipcode').value;
var State = document.getElementById('State').value;
var Phone = document.getElementById('Phone').value;
var Email = document.getElementById('Email').value;
/*

alert('Inputs:'+
'nBooks:'+Books+'nQty:'+Qty+'nPerson:'+Person+'nAddress'+Address
+'nZipcode:'+Zipcode+'nState:'+State+'nPhone:'+Phone+'nEmail:'+Email);
*/
if (Books==0) { error_msg += "Please select your book.n"; }
if (Qty=="") { error_msg += "Please fill in the 'Qty' box.n"; }
if (Person=="") { error_msg += "Please fill in the 'Name' box.n"; }

if (Address=="") { error_msg += "Please fill in the 'Address' box.n"; }

if (Zipcode=="") { error_msg += "Please fill in the 'Zip Code' box.n"; }

if (State=="") { error_msg += "Please fill in the 'State' box.n"; }
if (Phone=="") { error_msg += "Please fill in the 'Phone' box.n"; }
if (Email=="") { error_msg += "Please fill in the 'Email' box.n"; }

if (Email.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i) == false ) {
error_msg = "Please put in a properly-formatted email address.n"; }
if (Qty.match(/^[1-9]d*$/) == false ) {
error_msg = "Please put in a quantity great than 0. n"; }
if( error_msg != "" ) { alert(error_msg); }

return (error_msg == "");
}

</script>
</head>

<body>
<form name-"order_form" method="get" action="" onsubmit="return validate_form()">

<div class="container">

<div class="basic">Online Bookstore</div>
<div class="formHoldersL">Select the book</div>
<div class="formHoldersR">
<select id="Books" name="books">
<option>Javascript Book</option>
<option>Java Language Book</option>
<option>VBScript Book</option>
<option>Advanced Programming in Java</option>
<option>Data Structures in C++</option>
<option>Perl and CGI</option>
</select>
</div>
<div class="clear"></div>
<div class="formHoldersL">Qty</div>
<div class="formHoldersR"><input id="Qty" name="Qty" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Do you want a free subscription to the newsletter?</div>
<div class="formHoldersR">
<input name="newsletter" type="radio" value="yes" /> Yes
<input name="newsletter" type="radio" value="no" /> No

<p>&nbsp;</p></div>
<div class="clear"></div>
<div class="formHoldersL">Free Information Book List:</div>
<div class="formHoldersR">
<select name="information" size="5">
<option>Internet Books</option>
<option>Programming Languages</option>
<option>Networking Books</option>
<option>Internet Security Books</option>
<option>Scripting Books</option>
<option>Application Design Books</option>
</select></div>
<div class="clear"></div>

<div class="basic">Delivery Information</div>
<div class="clear"></div>
<div class="formHoldersL">Name</div>
<div class="formHoldersR"><input id="Person" name="Person" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Address</div>
<div class="formHoldersR"><input id="Address" name="address" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">ZipCode</div>
<div class="formHoldersR"><input id="Zipcode" name="zipcode" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">State</div>
<div class="formHoldersR"><input id="State" name="state" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Phone</div>
<div class="formHoldersR"><input id="Phone" name="phone" type="text" size="20" /></div>
<div class="clear"></div>
<div class="formHoldersL">Email</div>
<div class="formHoldersR"><input id="Email" name="email" type="text" size="20" /></div>
<div class="clear"></div>
<div class="button">
<input type="submit" value="Submit"/>
<input type="reset" />
<!-- input type="button" value="Test Validate of Form" onclick="validate_form()" -->
</div>
<div class="clear"></div>
</div>
</form>
</body>
</html>
[/code]

It helps to get a good night's rest.

?
×

Success!

Help @Mols spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.25,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...