Tuesday, 15 July 2014

php - Blank record appears on results table when webpage is visited -



php - Blank record appears on results table when webpage is visited -

i have created following:

a database table named user_ideas

create table if not exists ?( id int not null auto_increment primary key, name varchar(50) not null, suggestion text not null, date timestamp(8) not null default current_timestamp ) engine = innodb default character set=utf8;

a simple form named index.php

<form method="post" action="suggestions.php"> <label><span class="asterisk">*</span>name</label> <input name="name" placeholder="type here" required> <label><span class="asterisk">*</span>email</label> <input name="email" type="email" placeholder="type here" required> <label><span class="asterisk">*</span>suggestion</label> <textarea name="suggestion" required placeholder="type here" onkeydown="limittext(this.form.suggestion,this.form.countdown,750);" onkeyup="limittext(this.form.suggestion,this.form.countdown,750);"> </textarea><br>(maximum characters: 750)<br>you have <input class="limit" readonly type="text" name="countdown" value="750"> characters left. <label><span class="asterisk">*</span>what 2+2? (anti-spam)</label> <input name="human" placeholder="type here" required> <input id="submit" name="submit" type="submit" value="submit"> </form>

a form processing script named suggestions.php

<?php //process form & email $name = str_replace("'", "\'", strip_tags($_post['name'])); $email = strip_tags($_post['email']); $suggestion = str_replace("'", "\'", strip_tags($_post['suggestion'])); $from = 'from: me'; $to = 'example@example.com'; $subject = 'hello'; $human = strip_tags($_post['human']); $body = "from: $name\n e-mail: $email\n message:\n $suggestion"; if ($_post['submit']) { if ($name != '' && $email != '') { if ($human == '4') { if (mail ($to, $subject, $body, $from)) { echo '<p>your message has been sent!</p>'; } else { echo '<p>something went wrong, go , seek again!</p>'; } } else if ($_post['submit'] && $human != '4') { echo '<p>you answered anti-spam question incorrectly!</p>'; } } else { echo '<p>you need fill in required fields!!</p>'; } } ?> <?php //connect database $dbc = mysqli_connect('localhost', 'user', 'password', 'dbname') or die('error connecting mysql server.'); //create insert statement $query = "insert user_ideas(name, email, suggestion, date) values ('$name', '$email', '$suggestion', now())"; //insert record table $result = mysqli_query($dbc, $query) or die ('error querying database.'); //close connection database mysqli_close($dbc); //display give thanks user , link form page print "<br>"; print "<h1 class=\"meantime\">nice 1 <span class=\"nice\"> " . stripslashes($name) . "</span>. shall check out.</h1>"; print "<h2 class=\"meantime\">in meantime, see others have posted.</h2>"; print "<br><br>"; ?> <?php //display table entries guests table //connect database $dbc = mysqli_connect('localhost', 'user', 'root', 'dbname') or die('error connecting mysql server.'); $query = "select * user_ideas"; //create select query $result = mysqli_query($dbc, $query) or die('error querying database.'); //for each record in table, display table row print "<tr><th>name</th><th>suggestions</th></tr>"; while($row = mysqli_fetch_array($result)){ print "<tr><td>" . $row['name'] . "</td><td>" . $row['suggestion'] . "</td>"; print "</tr>"; } //close connection database mysqli_close($dbc); ?> </table>

so far works. however, 1 thing causing problem.

if goes suggestions.php page - perhaps want see of entries , not finish form, blank record added table on suggestions.php page. refresh causes problem.

i have "thank you" script , table of "form entries" script on same page. how can prevent blank records appearing? redirect doesn't seem work since redirecting person same page i.e. fill out form go suggestions.php give thanks , see table results on page.

any help great.

thanks,

andy ;-)

php mysql

No comments:

Post a Comment