edit a file with PHP.


 
Thread Tools Search this Thread
Top Forums Web Development edit a file with PHP.
# 1  
Old 02-16-2012
edit a file with PHP.

Ok here is what I have going on.

I am listing the contest of a directory so I can edit and delete files.

The code I am using to do that is below (Other then editing as it does not work).

Code:
<?php
$directory = ("enctlfiles/");
$dir = opendir($directory);
$files = array();
while (($file = readdir($dir)) != false) {
$files[] = $file;
}
closedir($dir);
sort($files);
print("<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks>\n");
print("<TR><TH>File Name</TH><th>Modified Date</th><th>Entries In File</th><th>Delete | Edit</th></TR>\n");
foreach ($files as $file)
 {
                if (strpos($file, '.jpg',1)||strpos($file, '.ctl',1) ){
                echo "<TR><TD><a href=$directory$file>$file</a></td>";
                echo "<td>";
                echo date("F d Y H:i:s",filemtime($directory. $file));
                echo "<td>";
                echo count(file($directory. $file));
                echo "<td>";
                echo "<a href=enctlfiles/dodelete.php?file=$file>Delete</a> | <a href=enctlfiles/editfile.php?file=$file>Edit</a>";


             }
        }
?>

That lists all of the files in order in a nice pretty table. The delete function works. The edit one not so much Smilie. It is due to me not knowing what I am doing I am sure of it.

Here is the contents of the editfile.php

Code:
<form action="edit.php" method="post">
<TEXTAREA NAME="save" COLS=150 ROWS=50 wrap="off">
<?php
$dir = ".";
include($dir. '/' .$_GET['file']);
?>
</textarea>
<P><INPUT TYPE="SUBMIT" VALUE="Update File"><INPUT
TYPE="RESET">
</FORM>

That populates the textarea with the file contents when you click on the "Edit" link. I don't know if that is the right way to get the data in there to be able to edit the file.

Here is the contents of the edit.php file:

Code:
<?php
//$org = ($_GET['file']) or exit("Unable to open file!"); //I have tried this but it give me that Unable to open file.
$org = $_POST['save'] or exit("Unable to open file!"); //This returns me to the prodsh.php page but does not edit the file.
$copy = $org . date("-m-d-Y-His");
copy($org,$copy);
$f = fopen($org, 'w');
fwrite($f, $_POST['save']);
fclose($f);
header('Location: http://somesite.com/GroveTuckey/itemsetup/prodsh.php');
?>

I think the editfile.php and the edit.php file are jacked up but don't know where.

I am trying to learn this and this site has been very helpful when I get stumped on something so I thank you in advance for the help given.

Also I know the danger of editing files via a webpage. This is not public or on a server that is accessible by the world. Right now I don't want to deal with a database.

---------- Post updated at 11:14 AM ---------- Previous update was at 10:35 AM ----------

I have edited files using the below code:

Code:
<form action="doedit.php" method="post">
<TEXTAREA NAME="save" COLS=150 ROWS=50 wrap="off">
<?php
include('somefile.ctl');
?>
</textarea>
<P><INPUT TYPE="SUBMIT" VALUE="Update File"><INPUT
TYPE="RESET">
</FORM>

With the contents of doedit.php being:

Code:
<?php
$org = 'Somefile.ctl';// This is the name of the file in the form above
$copy = $org . date("-m-d-Y-His");
copy($org,$copy);
$f = fopen('somefile.ctl', 'w');//This is the name of said file also.
fwrite($f, $_POST['save']);
fclose($f);
header('Location: http://somesite.com/GroveTickey/editfile.php');
?>

But since the names of the files can be anything I can't put specific names in the script.

This works great other then having to hardcode file names.

Last edited by GroveTuckey; 02-16-2012 at 12:04 PM..
# 2  
Old 02-16-2012
You won't be able to write to the file unless the web server has write permissions. Are you sure you have them for that file?
# 3  
Old 02-16-2012
Yup.

I can edit a file if I call for them in the script directly (The last part of my post).

I will look at the permission again though.......

The folder the files are in themselves has permission of 777 and the files are 664.

Corona688 did that answer your question?

I also have a working script that creates files from info that is entered into a textarea.

Thanks Corona688!

I feel I am not passing the info from one php script to the next correctly. But again I am a n00b at all of this.
# 4  
Old 02-16-2012
Quote:
Originally Posted by GroveTuckey
The folder the files are in themselves has permission of 777
This gives the entire universe permission to delete and create new files in this folder. Are you sure that's a good idea?
Quote:
and the files are 664.

Corona688 did that answer your question?
Not quite. Who owns these files, the user and group?
# 5  
Old 02-16-2012
Quote:
This gives the entire universe permission to delete and create new files in this folder. Are you sure that's a good idea?
This is on a server that is not accessible to the outside world. I mean I can change the permission on the folder itself.

Quote:
Not quite. Who owns these files, the user and group?
The files are owned by the user(twilliab) and the group is www.

Sorry I did not answer your question correctly. I hope I did this time.

---------- Post updated at 02:00 PM ---------- Previous update was at 12:18 PM ----------

I guess when it comes down to it I want to be able to list a certain file type in a dir. Have a link to edit the file. Take me to another page where it has a text area filled in with the file information. Let me edit said file and save the changes. Making a copy of the original so I have a backup.
# 6  
Old 02-16-2012
Taking a closer look.

For page?var=value URL's, you must use $_GET, not $_POST.

You are not preserving the filename anywhere, so the code won't know what file to save as. Right now, you're using the file contents as the file name!

You can preserve it as another field in the form.
Code:
<input type='hidden' name='filename' value='<?=$filename?>' >

# 7  
Old 02-16-2012
I have to think on what that means. I am slow Smilie

I am using $_GET in the form. So I think I got that.

Thanks again!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Web Development

Want to edit a sh file using php code

Hi friends, I want to edit sh file using php, i have tried different method. but its shows permission issues. Folder path : xyz permission :0755 owner: 545 group: 0 filename : abc.sh permission :0644 owner:0 group: 0 how to edit these files using php/ i have use below codes, but... (3 Replies)
Discussion started by: sanjay833i
3 Replies

2. UNIX for Advanced & Expert Users

Edit file

Hi All, I have file with 200K Records and each line with 400 character. I need to edit the some part of the file. For example, i need to edit character from 115 to 125, 135to 145 and 344 to 361 Can you please anyone help me to do this? Regards, (1 Reply)
Discussion started by: balasubramani04
1 Replies

3. Shell Programming and Scripting

Best way to edit a file

looking for a script or command to push out from a centralized machine to multiple machines. I have the software in place that will do this already, but I need to tell it what command to run on each machine with this file. what I need is a script or command to edit a file in a specific manner.... (13 Replies)
Discussion started by: skunky
13 Replies

4. Shell Programming and Scripting

edit file

I have a file containing dates like below 2010 1 02 2010 2 01 2010 3 05 i want the dates to be like below 20100102 20100201 20100305 i tired using awk '{printf "%s%02s%02s",$1,$2,$3}' But it does not work,it puts all the dates in one line,i want them in seperate lines like the... (6 Replies)
Discussion started by: tomjones
6 Replies

5. Shell Programming and Scripting

Script to Edit the file content and create new file

I have a requirement, which is as follows *. Folder contains list of xmls. Script has to create new xml files by copying the existing one and renaming it by appending "_pre.xml" at the end. *. Each file has multiple <Name>fileName</Name> entry. The script has to find the first occurance of... (1 Reply)
Discussion started by: sudesh.ach
1 Replies

6. Shell Programming and Scripting

Edit value in File

I have a file oratab with entry like this SCADAG:/esitst1/oracle/product/9.2.0.8:Y I am trying to discover a way to change the 9.2.0.8 part of this to something like 10.2.0.4 as part of an upgrade script. I have tried cat /etc/oratab >>/tmp/oratab... (1 Reply)
Discussion started by: sewood
1 Replies

7. UNIX for Dummies Questions & Answers

edit a .fs file

I have a .fs file that I want to edit, (or just be able to see what is in it) preferably through a windows environment. Does anyone know how to do that? Thanks (4 Replies)
Discussion started by: kiterboy
4 Replies

8. UNIX for Dummies Questions & Answers

Edit the File

Hello Everyone I am new to this forum. I am having a requirement to edit the file(the file is having some sql code). And this file is in my colleagues login. This is readonly Now I would like to edit this file. In which way can I do this? (1 Reply)
Discussion started by: pradkumar
1 Replies

9. Shell Programming and Scripting

file edit help

Hi, Could anyone give me a idea how to strip the lines from a given file. example *********** 1st occurence 1st occurence 1st occurence 1st occurence *********** 2nd occurence 2nd occurence 2nd occurence 2nd occurence 2nd occurence 2nd occurence ************* 3rd occurence 3rd... (10 Replies)
Discussion started by: sentak
10 Replies

10. UNIX for Dummies Questions & Answers

file name edit

ok I have a list of files for example: 130-4-32.HindIII.0.ids 130-4-32.HindIII.0.ppm 130-4-32.HindIII.0.ppm.gz 130-4-33.HindIII.0.bands 130-4-33.HindIII.0.ics 130-4-33.HindIII.0.ids 130-4-33.HindIII.0.ppm 130-4-33.HindIII.0.ppm.gz 130-4-34.HindIII.0.bands ... (1 Reply)
Discussion started by: lorcet222
1 Replies
Login or Register to Ask a Question