Gerner Christensen
Gerner Christensen

Reputation: 43

How to replace space with underscore in a typen text in a form using PHP or javascript in exesting script

I need a little help. I have created the below script. A form that save its info to my database and a long with that it create some (2 on different paths) folders on the server.

My issue is that in the form under ”folder” you can type the name of the folder you want to create along with the info that is saved in the database. At the moment everything works just as it should. My request/issue is how do a replace space “ “ from the folder name to an underscore “_”

Means, if someone enters a folder name called “My Folder Photo” I need the script to change the name to: “my_folder_photo” so it will work in urls on the website.

The is my codes so fare:

<?php
include "../config.php";
if(isset($_POST['send']))
{
mysql_query("insert into profiles set name= '".$_POST["name"]."', age= '".$_POST["age"]."', country = '".$_POST["country"]."', folder = '".$_POST["folder"]."'");

$folder = $_POST['folder'];
$path1 = '../game1/photos/' . $folder;
$path2 = '../game2/photos/' . $folder;
mkdir($path1);
mkdir($path2);
header("Location: myprofile-new-step2.php");

exit;
}

?>


<form method="post" action="<?=$_SERVER["PHP_SELF"]?>" name="myform" id="myform">
<table bgcolor="#FFFFFF"  border="0" align="center"><tr><td width="70">
Name: 
</td><td width="270">
<input type="text" name="name" size="40">
</td><td>

</td></tr><tr><td>
Age: 
</td><td>
<input type="text" name="age" size="40">
</td><td>

</td></tr><tr><td>
Country: 
</td><td>
<select name="country"  data-placeholder="<?=$country?>" class="chosen-select" style="width:250px;" id="<?=$country?>" value="<?=$country?>"  <?= (!empty($country) ? 'checked="checked"' : "")?>>
            <option value="<?=$country?>"></option>
            <option value="United States">United States</option>
            <option value="United Kingdom">United Kingdom</option>
</select>
</td><td>
Enter the country you live in.
</td></tr><tr><td>
Folder: 
</td><td>
<input type="text" name="folder" size="40"  id="folder">
</td><td>

</td></tr></table> 
<center><br /> 
<input type="submit" name="send" title="NEXT" value="NEXT"></center>
</form>

Im a new to php so need as much help as possible to figure this out :) THANKS

Upvotes: 0

Views: 440

Answers (2)

Eisa Adil
Eisa Adil

Reputation: 1733

strtolower(str_replace(" ", '_', $string));

Replaces the space with an underscore. $string in the name of the folder, in your case.

str_replace()

Upvotes: 1

jszobody
jszobody

Reputation: 28949

Do something like this:

$folder = str_replace(" ","_",strtolower($_POST['folder']));

See strtolower() for making the folder name lowercase, and str_replace() for replacing spaces with underscores.

I would also recommend using basename() to help ensure that someone doesn't try to submit a malicious path.

Upvotes: 1

Related Questions