zephyrstudios Posted July 10, 2006 Share Posted July 10, 2006 Hello,I am trying to create a quick little registration page-trying to learn php. I have the form created and get the response-but now I am trying to get the registrars name back in the return statement and am unable to figure out the code to do that. Any help is appreciated.Thank youAnne<?php // register.php//This script registers a user by storing their information in a text file and creating a directory for them.if(isset ($_POST['submit'])){//Handle form $problem = FALSE; //No problems so far //Check for each value. if (empty ($_POST['fname'])) { $problem = TRUE; print '<p>Please enter a first name!</p>'; } if (empty ($_POST['lname'])) { $problem = TRUE; print '<p>Please enter a last name!</p>'; } if (!$problem) { if ($fp = fopen ('./users.txt', 'ab')) {//Open the file //Create the data to be written $dir = time() . rand (0, 4596); $data = $_POST['fname'] . "\t" . $data = $_POST['lname'] . "\t" . $data = $_POST['address'] . "\t" . $dir ."\r\n"; //Write the data and close the file fwrite ($fp, $data); fclose ($fp); //create the directory mkdir ("./users/$dir"); //Print a message print '<p>Congratulations $fname $lname! /></p>'; } else {//Couldn't write to the file print '<p>You could not be registered due to a system error.</p>'; } } else {//Forgot a field print '<p> Please try again!</p>'; }} else {//Display again//Leave PHP and display the form?><form action="register.php" method="post"><br /><table width="100%" border="0"> <tr> <th width="11%" scope="col"><div align="left"><strong>First Name: </strong></div></th> <th width="81%" scope="col"><div align="left"> <input type="text" name = "fname" size="25" /> </div></th> <th width="4%" scope="col"> </th> <th width="4%" scope="col"> </th> </tr> <tr> <td><div align="left"><strong>Last Name: </strong></div></td> <td><div align="left"> <input type="text" name="lname" size="25" /> </div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="left"><strong>Address: </strong></div></td> <td><div align="left"> <input type="text" name="address" size="35"/> </div></td> <td> </td> <td> </td> </tr> <tr> <td><strong>City:</strong></td> <td><input type="text" name="city" size="35"/></td> <td> </td> <td> </td> </tr> </table><br /><br /><input type="submit" name="submit" value="Register" /></form><?php Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/ Share on other sites More sharing options...
Daniel0 Posted July 10, 2006 Share Posted July 10, 2006 Here you go: [code]<?php // register.php//This script registers a user by storing their information in a text file and creating a directory for them.if(isset ($_POST['submit'])) //Handle form{ $problem = FALSE; //No problems so far //Check for each value. if(empty($_POST['fname'])) { $problem = TRUE; print '<p>Please enter a first name!</p>'; } if(empty($_POST['lname'])) { $problem = TRUE; print '<p>Please enter a last name!</p>'; } if(!$problem) { if($fp = fopen('./users.txt', 'ab')) //Open the file { //Create the data to be written $dir = time().rand(0, 4596); $data = $_POST['fname']."\t".$data = $_POST['lname']."\t".$data = $_POST['address']."\t".$dir."\r\n"; //Write the data and close the file fwrite($fp, $data); fclose($fp); //create the directory mkdir("./users/$dir"); //Print a message print "<p>Congratulations {$fname} {$lname}! /></p>"; } else { //Couldn't write to the file print '<p>You could not be registered due to a system error.</p>'; } } else { //Forgot a field print '<p> Please try again!</p>'; }}else { //Display again//Leave PHP and display the form?><form action="register.php" method="post"><table width="100%" border="0"> <tr> <th width="11%" scope="col"><div align="left"><strong>First Name: </strong></div></th> <th width="81%" scope="col"><div align="left"> <input type="text" name = "fname" size="25" value='<?=$_POST['fname']?>' /> </div></th> <th width="4%" scope="col"> </th> <th width="4%" scope="col"> </th> </tr> <tr> <td><div align="left"><strong>Last Name: </strong></div></td> <td><div align="left"> <input type="text" name="lname" size="25" value='<?=$_POST['lname']?>' /> </div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="left"><strong>Address: </strong></div></td> <td><div align="left"> <input type="text" name="address" size="35" value='<?=$_POST['address']?>'/> </div></td> <td> </td> <td> </td> </tr> <tr> <td><strong>City:</strong></td> <td><input type="text" name="city" size="35" value='<?=$_POST['city']?>'/></td> <td> </td> <td> </td> </tr> </table><input type="submit" name="submit" value="Register" /></form><?php}?>[/code] Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-55429 Share on other sites More sharing options...
zephyrstudios Posted July 11, 2006 Author Share Posted July 11, 2006 Thank you for helping me-I am only seeing that you added the{$fname} {$lname} and that did not work-is there something else I am missing??? Thank you in advance for your time and patience.Anne Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56003 Share on other sites More sharing options...
akitchin Posted July 11, 2006 Share Posted July 11, 2006 the problem is that unless register_globals is on (which it shouldn't and needn't be), $fname and $lname will not be registered as local variables. try doing one of the following:1) setting $fname = $_POST['fname'] and likewise for last name, or2) using {$_POST['fname']} in place of $fname.i'd suggest the latter, as it is better practice in my opinion (rather than crowding the namespace with useless variables). note that the braces are needed when using array values, since otherwise the single quotes are taken as literals (as far as i remember).hope this helps. Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56020 Share on other sites More sharing options...
zephyrstudios Posted July 11, 2006 Author Share Posted July 11, 2006 That helped alot!!! :) This is what worked:'.($_POST['fname']).' But now I am trying to add their last name. I have tried '.($_POST['fname']['lname']).' '.($_POST['fname']).' '.($_POST['lname'].'I keep getting errors. i am looking in alot of books trying to solve this and I am sure it is very simple-just not simple to a newbie. Thanks again in advance for your time and patience.Anne Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56029 Share on other sites More sharing options...
akitchin Posted July 11, 2006 Share Posted July 11, 2006 perhaps i can go ahead and fix the offending line for you:[code]print '<p>Congratulations '.$_POST['$fname'].' '.$_POST['lname'].'! /></p>';[/code]when exiting single quotes, you may include variables as you normally would, without parentheses.let me know how this works out. Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56030 Share on other sites More sharing options...
zephyrstudios Posted July 11, 2006 Author Share Posted July 11, 2006 I am sorry I can't figure this out.....frustrating!! I tried what you had and know only the last name shows up, I even took the dollar sign out from the fname and still ony the last name works. Anymore help is greatly appreciated.Thank youAnne Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56286 Share on other sites More sharing options...
Daniel0 Posted July 11, 2006 Share Posted July 11, 2006 What exactly are you trying to do then? Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56290 Share on other sites More sharing options...
zephyrstudios Posted July 11, 2006 Author Share Posted July 11, 2006 I am sorry.... I got it. I found a mistake in my code that I had changed during a test. Thank you very much for your help. I am so excited I was able to get this to work with a lot of help from this forum!!!!!!Thank you for having a place like this.Anne Quote Link to comment https://forums.phpfreaks.com/topic/14147-registration-form-help/#findComment-56292 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.