PHP Web Form Script Problem

Discussion in 'HTML' started by Jeff Dunnett, Feb 19, 2005.

  1. Jeff Dunnett

    Jeff Dunnett Guest

    Hello,

    I have written the following HTML Form:

    <html><head><title>Survey</title></head>
    <body bgcolor="black" text="white" link="#f6b580" vlink="#c0c0ff">
    <img src="logo.gif" width="324" height="104"alt="logo.gif (15760
    bytes)"><br><br>

    <table border="0" cellpadding="0" cellspacing="0" width="307" align="left">
    <tr>
    <td background="tableback.gif" height="25"><p align="center"><big>Game
    Submission</big><br></td>
    </tr>
    </table>

    <tr>
    <td>
    <br><br><br>
    <FORM METHOD="POST" ACTION="sendgamesub.php"
    enctype="text/plain">

    <b>Game Title</b>:<br> <INPUT TYPE="text" NAME="title" SIZE="35"><br><br>

    <b>Game Master</b>:<br> <INPUT TYPE="text" NAME="game_master"
    SIZE="35"><br><br>

    <b>E-Mail</b>:<br> <INPUT TYPE="text" NAME="email" SIZE="35"><br><br>

    <b>Game System</b>:<br> <INPUT TYPE="text" NAME="game_system"
    size="35"><br><br>

    Standard Rules <INPUT TYPE="radio" NAME="rules" VALUE="Standard_Rules">

    Modified Rules <INPUT TYPE="radio" NAME="rules"
    VALUE="Modified_Rules"><br><br>

    <b>Game Type</b>:<br>
    CCG <input type="radio" name="type" value="CCG"><br>
    Miniatures <input type="radio" name="type" value="mini"><br>
    RPG <input type="radio" name="type" value="rpg"><br>
    LARP <input type="radio" name="type" value="larp"><br>
    Board <input type="radio" name="type" value="board"><br><br>


    <b>Maturity Rating</b>:<br>
    PG <INPUT TYPE="radio" NAME="rating" VALUE="PG"><br>
    AA <INPUT TYPE="radio" NAME="rating" VALUE="AA"> <br>
    R <INPUT TYPE="radio" NAME="rating" VALUE="R"> <br><br>

    <b>Number of Players</b>:<br> Minimum:<input type="text" name="minplayers"
    size="2"> Maximum:<input type="text" name="maxplayers" size="2"><br><br>

    <b>Game Description:</b><br>
    What is your game about? What sort of characters are <br> available? Brief
    synopsis of plot.
    Limit to 5-6 sentences <br>
    <TEXTAREA NAME="Game_Description" ROWS=6 COLS=35></TEXTAREA> <br><br>

    <b>Anything else we should know about?:</b><br>
    <TEXTAREA NAME="Additional_Info" ROWS=6 COLS=35></TEXTAREA> <br><br>

    <INPUT TYPE="image" VALUE="Send" SRC="submit.gif" HEIGHT="33" WIDTH="159"
    BORDER=0 ALT="picture button">

    </td>
    </tr>

    <table border="0" width="307" align="left">
    <tr>
    <td align=center><br><br><h6> <a href="main.html">Home</a> | <a
    href="location.html">Location</a> | <a href="games.html">Games</a> | <a
    href="register.html">Register</a> | <a href="survey.html">Survey</a> | <a
    href="contact.html">Contact</a>
    </h6>
    <h6> <br> </td>
    </tr>
    </table></div></body></FORM></html>


    I have also written the following PHP script:

    <?php
    $to = ;
    $title = ($_POST['title']);
    $game_master = ($_POST['game_master']);
    $email = ($_POST['email']);
    $game_system = ($_POST['game_system']);
    $rules = ($_POST['rules']);
    $type = ($_POST['type']);
    $rating = ($_POST['rating']);
    $minplayers = ($_POST['minplayers']);
    $maxplayers = ($_POST['maxplayers']);
    $Game_Description = ($_POST['Game_Description']);
    $Additional_Info = ($_POST['Additional_Info']);


    $sub = "Game Submission";
    $headers .= "From: " .$game_master."<".$email.">\n";
    $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
    $mes = "Title: ".$title."
    Game Master: ".$game_master."
    E-Mail: ".$email."
    Game System: ".$game_system."
    Rules: ".$rules."
    Type: ".$type."
    Rating: ".$rating."
    Min. Players: ".$minplayers."
    Max. Players: ".$maxplayers."
    Game Description: ".$Game_Description."
    Additional Info: ".$Additional_Info."";

    mail($to, $sub, $mes, $headers);
    ?>

    The script isn't working properly. It sends the email but there is no data
    in the email. For instance it doesn't send the Game Master or the Rating.
    I can't seem to see where the problem is coming from. Can somebody point
    out the problem. From what I can tell there doesn't seem to be any syntax
    errors. I am fairly new to PHP so I could be mistaken.

    Regards,
    Jeff
     
    Jeff Dunnett, Feb 19, 2005
    #1
    1. Advertising

  2. Jeff Dunnett

    News Me Guest

    Jeff Dunnett wrote:
    > Hello,
    >
    > I have written the following HTML Form:
    >
    > <html><head><title>Survey</title></head>
    > <body bgcolor="black" text="white" link="#f6b580" vlink="#c0c0ff">
    > <img src="logo.gif" width="324" height="104"alt="logo.gif (15760
    > bytes)"><br><br>
    >
    > <table border="0" cellpadding="0" cellspacing="0" width="307" align="left">
    > <tr>
    > <td background="tableback.gif" height="25"><p align="center"><big>Game
    > Submission</big><br></td>
    > </tr>
    > </table>
    >
    > <tr>
    > <td>
    > <br><br><br>
    > <FORM METHOD="POST" ACTION="sendgamesub.php"
    > enctype="text/plain">
    >
    > <b>Game Title</b>:<br> <INPUT TYPE="text" NAME="title" SIZE="35"><br><br>
    >
    > <b>Game Master</b>:<br> <INPUT TYPE="text" NAME="game_master"
    > SIZE="35"><br><br>
    >
    > <b>E-Mail</b>:<br> <INPUT TYPE="text" NAME="email" SIZE="35"><br><br>
    >
    > <b>Game System</b>:<br> <INPUT TYPE="text" NAME="game_system"
    > size="35"><br><br>
    >
    > Standard Rules <INPUT TYPE="radio" NAME="rules" VALUE="Standard_Rules">
    >
    > Modified Rules <INPUT TYPE="radio" NAME="rules"
    > VALUE="Modified_Rules"><br><br>
    >
    > <b>Game Type</b>:<br>
    > CCG <input type="radio" name="type" value="CCG"><br>
    > Miniatures <input type="radio" name="type" value="mini"><br>
    > RPG <input type="radio" name="type" value="rpg"><br>
    > LARP <input type="radio" name="type" value="larp"><br>
    > Board <input type="radio" name="type" value="board"><br><br>
    >
    >
    > <b>Maturity Rating</b>:<br>
    > PG <INPUT TYPE="radio" NAME="rating" VALUE="PG"><br>
    > AA <INPUT TYPE="radio" NAME="rating" VALUE="AA"> <br>
    > R <INPUT TYPE="radio" NAME="rating" VALUE="R"> <br><br>
    >
    > <b>Number of Players</b>:<br> Minimum:<input type="text" name="minplayers"
    > size="2"> Maximum:<input type="text" name="maxplayers" size="2"><br><br>
    >
    > <b>Game Description:</b><br>
    > What is your game about? What sort of characters are <br> available? Brief
    > synopsis of plot.
    > Limit to 5-6 sentences <br>
    > <TEXTAREA NAME="Game_Description" ROWS=6 COLS=35></TEXTAREA> <br><br>
    >
    > <b>Anything else we should know about?:</b><br>
    > <TEXTAREA NAME="Additional_Info" ROWS=6 COLS=35></TEXTAREA> <br><br>
    >
    > <INPUT TYPE="image" VALUE="Send" SRC="submit.gif" HEIGHT="33" WIDTH="159"
    > BORDER=0 ALT="picture button">
    >
    > </td>
    > </tr>
    >
    > <table border="0" width="307" align="left">
    > <tr>
    > <td align=center><br><br><h6> <a href="main.html">Home</a> | <a
    > href="location.html">Location</a> | <a href="games.html">Games</a> | <a
    > href="register.html">Register</a> | <a href="survey.html">Survey</a> | <a
    > href="contact.html">Contact</a>
    > </h6>
    > <h6> <br> </td>
    > </tr>
    > </table></div></body></FORM></html>
    >
    >
    > I have also written the following PHP script:
    >
    > <?php
    > $to = ;
    > $title = ($_POST['title']);
    > $game_master = ($_POST['game_master']);
    > $email = ($_POST['email']);
    > $game_system = ($_POST['game_system']);
    > $rules = ($_POST['rules']);
    > $type = ($_POST['type']);
    > $rating = ($_POST['rating']);
    > $minplayers = ($_POST['minplayers']);
    > $maxplayers = ($_POST['maxplayers']);
    > $Game_Description = ($_POST['Game_Description']);
    > $Additional_Info = ($_POST['Additional_Info']);
    >
    >
    > $sub = "Game Submission";
    > $headers .= "From: " .$game_master."<".$email.">\n";
    > $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
    > $mes = "Title: ".$title."
    > Game Master: ".$game_master."
    > E-Mail: ".$email."
    > Game System: ".$game_system."
    > Rules: ".$rules."
    > Type: ".$type."
    > Rating: ".$rating."
    > Min. Players: ".$minplayers."
    > Max. Players: ".$maxplayers."
    > Game Description: ".$Game_Description."
    > Additional Info: ".$Additional_Info."";
    >
    > mail($to, $sub, $mes, $headers);
    > ?>
    >
    > The script isn't working properly. It sends the email but there is no data
    > in the email. For instance it doesn't send the Game Master or the Rating.
    > I can't seem to see where the problem is coming from. Can somebody point
    > out the problem. From what I can tell there doesn't seem to be any syntax
    > errors. I am fairly new to PHP so I could be mistaken.
    >
    > Regards,
    > Jeff
    >
    >


    Not that it has anything to do with the problem, but you should be
    single-quoting the email address:

    $to = '';

    In fact, with PHP 5, the script aborted with this error:

    PHP Parse error: syntax error, unexpected '@' in
    D:\\htdocs\\sendgamesub.php on line 2, referer: http://localhost/test.html


    You don't need the parens around all these:

    $var = $_POST[...];


    As for the empty content, it started working for me when I dropped the
    'enctype="text/plain"' from the <form ...> element.


    You should consider using an HTML validator. Firefox was a Tidy
    extensions that lists 15 warnings for the page as listed above.

    NM

    --
    convert UPPERCASE NUMBER to a numeral to reply
     
    News Me, Feb 19, 2005
    #2
    1. Advertising

  3. Jeff Dunnett

    Jeff Dunnett Guest

    NM,

    Thank you very much for your help. My problems are solved.

    Regards,
    Jeff
     
    Jeff Dunnett, Feb 19, 2005
    #3
  4. Jeff Dunnett

    Geoff Berrow Guest

    I noticed that Message-ID: <> from
    News Me contained the following:

    >You don't need the parens around all these:
    >
    >$var = $_POST[...];


    In fact he could have saved the bother of writing those lines at all
    e.g.

    $headers .= "From: " .$_POST['game_master']."<".$_POST['email'].">\n";

    --
    Geoff Berrow (put thecat out to email)
    It's only Usenet, no one dies.
    My opinions, not the committee's, mine.
    Simple RFDs http://www.ckdog.co.uk/rfdmaker/
     
    Geoff Berrow, Feb 19, 2005
    #4
  5. Jeff Dunnett

    Philip Ronan Guest

    Geoff Berrow wrote:

    > I noticed that Message-ID: <> from
    > News Me contained the following:
    >
    >> You don't need the parens around all these:
    >>
    >> $var = $_POST[...];

    >
    > In fact he could have saved the bother of writing those lines at all
    > e.g.
    >
    > $headers .= "From: " .$_POST['game_master']."<".$_POST['email'].">\n";


    NO!!!

    Never *ever* put unvalidated content into your email headers.

    Suppose I posted some data to your site with "game_master" set to something
    like this:

    %0ATo:%%0ASubject:%20V14GR4...

    Insecure scripts like yours make things really easy for spammers. Think
    about it.

    --
    phil [dot] ronan @ virgin [dot] net
    http://vzone.virgin.net/phil.ronan/
     
    Philip Ronan, Feb 19, 2005
    #5
  6. Jeff Dunnett

    Toby Inkster Guest

    Geoff Berrow wrote:

    > $headers .= "From: " .$_POST['game_master']."<".$_POST['email'].">\n";


    Ugly.

    Better:
    $headers .= "From: {$_POST[game_master]} <{$_POST}>\n";

    --
    Toby A Inkster BSc (Hons) ARCS
    Contact Me ~ http://tobyinkster.co.uk/contact
     
    Toby Inkster, Feb 19, 2005
    #6
  7. Jeff Dunnett

    Geoff Berrow Guest

    I noticed that Message-ID:
    <> from Toby Inkster
    contained the following:

    >> $headers .= "From: " .$_POST['game_master']."<".$_POST['email'].">\n";

    >
    >Ugly.
    >
    >Better:
    >$headers .= "From: {$_POST[game_master]} <{$_POST}>\n";[/color]

    The OP had already used the concatenation operator and so was familiar
    with it. When I am teaching PHP, I find my students struggle with
    syntax. Reducing the amount of things to remember helps.
    --
    Geoff Berrow (put thecat out to email)
    It's only Usenet, no one dies.
    My opinions, not the committee's, mine.
    Simple RFDs http://www.ckdog.co.uk/rfdmaker/
     
    Geoff Berrow, Feb 19, 2005
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Todd Shillam
    Replies:
    1
    Views:
    337
    Hywel
    Jun 19, 2004
  2. raviraj joshi
    Replies:
    0
    Views:
    333
    raviraj joshi
    Jul 4, 2009
  3. reshma shinde
    Replies:
    0
    Views:
    414
    reshma shinde
    Jul 4, 2009
  4. Rajive Narain
    Replies:
    0
    Views:
    1,938
    Rajive Narain
    Sep 18, 2009
  5. neha shena
    Replies:
    1
    Views:
    265
    Dennis Lee Bieber
    Oct 29, 2010
Loading...

Share This Page