Hi,

I'm very new to PHP. Any help is appreciated.

I wrote a script that should create a flat file and store information in the flat file that was entered in a form on an earlier page. The script runs successfully and with no errors, and creates the file with the correct name (so my variable values are being passed ok by $_POST), but when I look at the file, nothing was written to it. It was only created and named.

Here's the script...

<?php 					

$accountname = $_POST['accountname'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$cell = $_POST['cell'];	
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];	
$data = "$accountname \n $phone \n $fax \n $cell \n $add1 \n $add2 \n $city \n $state \n $zip \n";
$ending = ".txt";
$filename = "$accountname$ending";
$handle = fopen($filename, 'x+');

if (file_exists('$filename')){  
echo "The accountname $accountname already exists."; 
}else{
$handle;
fwrite($filename, $data);
fclose($filename);  
echo "Data Stored Successfully";  
} 
?>

also, if an existing file name is used, it is not stopping the script to echo "The accountname $accountname already exists."

Thanks in advance for any help. I'd look it up on my own, but I'm not getting any errors to google and I can't find a good tutorial for what I'm trying to do.

- John

Recommended Answers

All 3 Replies

try these changes...I put some comments where I thought they might help you understand what I changed...

<?php 					

$accountname = $_POST['accountname'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$cell = $_POST['cell'];	
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];	
$data = "$accountname \n $phone \n $fax \n $cell \n $add1 \n $add2 \n $city \n $state \n $zip \n";
$ending = ".txt";
$filename = "$accountname$ending";

//strings are only interpolated in double quotes! do not use single quotes if placing variables in strings.
//'$filename' = $filename
//"$filename" = the contents of $filename

if (file_exists("$filename"))//check for file in this directory
{  
	echo "The accountname $accountname already exists."; 
}
else
{
	//open file handle in this directory
	$handle = fopen($filename, 'x+');
	
	//write to handle
	fwrite($handle, $data);
	
	//close file handle
	fclose($handle);  
	
	//the next line will echo regardless if what it says is true...
	echo "Data Stored Successfully";  
} 
?>

hali - frickkin - louia!!!

It works!

Thank you!

Even better, the comments you made make sense to me now.

You are awesome!

:icon_cheesygrin:

glad to be of assistance!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.