How to Use Variable as the Key - string

If I use a String for the $key my code works but if I use $hasorhasnotentered it returns "Array". How can I use a Variable for the $key?
<?php
$user_id = $current_user->ID;
$key = $hasorhasnotentered;
$single = true;
$user_last = get_user_meta( $user_id, $key, $single );
echo '<p>The '. $key . ' value for user id ' . $user_id . ' is: ' . $user_last . '</p>';
?>
The Variable is being defined by user interaction of a form below is the form code
<form method="post" id="adduser" action="/my-likes-list/">
<input type="text" name="<?php echo $hasorhasnotentered;?>" id="<?php echo $hasorhasnotentered;?>" value="<?php echo $yesentered; ?>"/>
<p class="form-submit">
<input name="updateuser" type="submit" id="updateuser" class="submit button" value="update-user" onclick='enterdnew()'/>
<?php wp_nonce_field( 'update-user' ) ?>
<input name="action" type="hidden" id="action" value="Update" />
</p>
</form>

Your code looks OK, but I expect your $hasorhasnotentered variable is not undefined. If it's value comes from user input check for definedness before you use it!

You can use a variable just as you did. It's just that the variable needs to contain a string. Evidently, your $hasorhasnotentered contains. That explains why it would return an array because if $key is left blank get_user_meta returns all of the meta data in an array. See the documentation: https://codex.wordpress.org/Function_Reference/get_user_meta
$key
(string) (optional) The meta_key in the wp_usermeta table for the meta_value to be returned. If left empty, will return all user_meta fields for the given user.
Default: (empty string)
Edit:
In the form code above, I believe you want:
<input type="text" name="hasorhasnotentered" id="hasorhasnotentered" value="<?php echo $hasorhasnotentered; ?>"/>
Then, on load, the value of the element will be set to whatever $hasorhasnotentered is. And the user will set $hasorhasnotentered to be whatever text they type in the element.
Then, on submit, $hasorhasnotentered will be the text of the input field.
I have to admit, I may not be understanding the intent of your code.

Related

how to check empty value of a string in golang template

I have this below golang template code snippet where I take values from a map of type map[string]interface{} and check if that string is empty or not but my string empty check is failing as:
template: apps.html:62:29: executing "apps.html" at <eq $src "">: error calling eq: invalid type for comparison . I tried to print the empty value also and it is rendered as <nil> but my {{if eq $src "<nil>"}} check is also failing and even if I put nil then also it fails. Is there any better way to achieve this.
{{$src := (index . "source")}}
{{$tar := (index . "target")}}
{{if eq $src ""}}
<div></div>
{{else}}
<div style="display:none;">
<input id="username" name="source" value="{{ $src }}"/>
<input id="username" name="target" value="{{ $tar }}"/>
</div>
{{end}}
Here is what you're doing (always better to give an example play.golang.org link if possible):
https://play.golang.org/p/uisbAr_3Qy
A few problems with what you're doing: If you're using a map for context, you don't need to use index at all, so your variables are not required. If you want to check if a key exists, just check for a nil entry with if. If your map contains elements of type interface, you can't compare with a string, only use eq when you're sure you have an element but are not sure what it might be, and wrap it in an if test if unsure whether the key exists.
I think you want to do something like this:
{{if .source }}
<div style="display:none;">
<input id="username" name="source" value="{{ .source }}"/>
<input id="username" name="target" value="{{ .target }}"/>
</div>
{{else}}
<div>empty</div>
{{end}}
https://play.golang.org/p/D2DCjAklFE
See the docs for text/template as they have a lot more detail:
https://golang.org/pkg/text/template/#hdr-Actions
If you want to compare with null(nil) use: https://github.com/Masterminds/sprig/issues/53#issuecomment-483414063
{{ kindIs "invalid" $value }}

How to set a position while we write a string into a file using PHP?

I want to write an attribute inside text field tag, in my file file.txt. Below code writes some content in file.txt,
$my_file = 'file.txt';
$handle = fopen($my_file, 'a') or die('Cannot open file: '.$my_file);
$data = 'New data line 1';
fwrite($handle, $data);
$new_data = "\n".'New data line 2';
fwrite($handle, $new_data);
Below is my form html code,
<form>
<input type="text" value="FIrst Name" />
<form>
I want to write a name attribute name="fname" as below,
<form>
<input type="text" name="fname" value="FIrst Name" />
<form>
How to set a position while we write a string into a file.

How to concatenate a variable to a string in smarty?

I've following smarty code:
{foreach from=$preview_data key=key item=value}
<input type="hidden" class="form-control" name="units_$key" id="units_$key" value="{$value.units}">
{/foreach}
I want to attach a string units_ to a value contained in variable $key. I tried above code but it didn't work. How to achieve this?
$key is just a variable, use the same syntax:
<input type="hidden" class="form-control" name="units_{$key}" id="units_{$key}" value="{$value.units}">

How do I get Excel to interact with my website?

I want to use Excel 2010 to do calculations from my personal website. I would like for the user to enter data in a field and press submit. Then, Excel takes the data, performs calculations on it, and outputs the calculated data into another field form that the user can see.
This needs to be done away from the actual website because I don't want to share the formulas on Excel.
For example:
A web page has three fields: First digit, second digit, and solution. The end user enters 2 and 5 into the first and second forms and Press submit. An Excel sheet adds these numbers in the background. The number 7 appears in the solution field.
What is the best way to do this?
You say this is on your personal website, so I assume you have access to the server and can do some rudimentary scripting. Is it absolutely necessary to use Excel? This seems like it would be more straightforward to employ perl, PHP, python, etc. to perform simple addition.
If you did the calculations in Javascript, you would be exposing the formulas to viewers, as the client executes the script and therefore must have the source code.
However, with one of the aforementioned scripting languages, the source of the script is parsed by the server but never passed to the user.
For example, a php script could simply send the results of a form submit to itself:
Areas between <?php and ?> are parsed server-side and never passed to the user.
<?php
$a = '';
$b = '';
$result = '';
if (#$_POST['submit'] == 'Submit')
{
$a = $_POST['a'];
$b = $_POST['b'];
$result = SecretFormula($a, $b);
}
function SecretFormula($a, $b)
{
return $a + $b;
}
?>
<html>
<head>
</head>
<body>
<form id="form" method="post" action="">
Enter Number A: <input name="a" type="text" value="<?php echo $a; ?>" /><br />
Enter Number B: <input name="b" type="text" value="<?php echo $b; ?>" /><br />
<input name="submit" type="submit" value="Submit" /><br />
<br />
Result: <input name="result" type="text" value="<?php echo $result; ?>" />
</form>
</body>
</html>

A script to convert text in a form to query?

I'm a total newbie and want to start with php. I know some javascript already.
I want to be able to type some text in a form and convert it to a query e.g.
In my website there's this search box, I type in 'example' click submit and it gives me this=
http://www.externalsite.com/search?s=example&x=0
and pastes it to the address bar, you know like a search engine.
Any guidance will be appreciated.
Well, as you are doing PHP, you should point your form to submit to a PHP file. Then to retrieve the data, use $_GET or $_POST depending your form is posting or getting (as I can see from your exemple its a GET) so something like this :
HTML :
<form method="get" action="search.php">
<input type="text" name="q" id="q" value="" />
<input type="submit" value="Submit" />
</form>
On the PHP side :
<?php
$query = $_GET['q'];
header('Location: google.com/search?q=' . $query . '%20term');
die();
?>
Basically you're typing your search term into a form, which then posts (via GET) to a search page, which queries its database for records matching that string. A simple example of this follows:
index.php
<form method="get" action="search.php">
<p><input type="text" name="terms" /></p>
<p><input type="submit" value="Search" /></p>
</form>
When you submit that, it will direct you to search.php?terms=[terms here]. Our code found within search.php follows:
search.php
mysql_connect($host, $user, $pass) or die(mysql_error());
$terms = $_GET["terms"]; // you'll want to sanitize this data before using
$query = "SELECT col1, col2, col3
FROM tablename
WHERE col1 LIKE '%{$terms}%'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
print "We've found results.";
} else {
print "No results found.";
}
This is a very simple example (don't copy/paste this into production). Essentially you're pulling the submitted value(s) into a query, and then showing any results. This should be enough to get you started, but feel free to visit us here if/when you have more specific questions in the future.
Best of luck!

Resources