Jump to content


Photo

Can anyone help.


  • Please log in to reply
4 replies to this topic

#1 case

case
  • New Members
  • Pip
  • Newbie
  • 7 posts

Posted 19 July 2006 - 10:30 AM

I've fixed my previous problem and i have been confronted with another one.

the script i've written displays some flash movies along side an enquiry form, and when you enter all the details and press the submit button it sends the details where there supposed to go and then display the appropiate thank you message, but it also display the entire form again and the flash movies which i dont want it to do. 

As i've only been messing around with php for about 2 months now, i'm a little unsure what to do. An ideal solution would be have the program load a specific page depending on what has occured. (ie. one page if there was an error and one whenh everything is ok) i'm pretty sure that this can be done and i'm positive that some where, someone has the knowlegede.

i have attached one of the forms (there are 8 in total on the site, but they are all identical except for the flash movies) in the hope that one of you can help me figure this one out.

i eagerly await a reply.

[attachment deleted by admin]

#2 brown2005

brown2005
  • Members
  • PipPipPip
  • Advanced Member
  • 943 posts

Posted 19 July 2006 - 10:32 AM

CAN U POST THE CODE PLEASE

#3 SammyP

SammyP
  • Members
  • PipPipPip
  • Advanced Member
  • 58 posts
  • LocationLondon

Posted 19 July 2006 - 10:37 AM

Without looking at the code, how does it know to display the thankyou message? If you have enough details about the user's actions to do that, surely you can suppress the form and any other items as well.

There will be better ways but what I mean is, where the thankyou message goes, set a boolean to true and only add items that you don't want if it is false.

Hard to tell if that helps. Can't download files at work.

Sam.

If this has solved your problem, a quick 'Thanks' is appreciated, but marking the thread as 'Solved' is better - it saves a lot of time.

Sam.

#4 Joe Haley

Joe Haley
  • Members
  • PipPipPip
  • Advanced Member
  • 103 posts
  • LocationCanada, eh?

Posted 19 July 2006 - 10:38 AM

i belive
<?php
if ($_POST['forums_submit_buttons_name'])
{
// forum has been subminited, so prosses it.
}
else
{
// display forum, as it hasnt been submited.
}
?>

is what you are looking for.
Give a man a fish; you have fed him for today.  Teach a man to fish; and you have fed him for a lifetime
Don't teach men to program. Teach them to fish.

Please, try the RTFM solution before asking for help:
http://php.net/manual/en/index.php

#5 case

case
  • New Members
  • Pip
  • Newbie
  • 7 posts

Posted 19 July 2006 - 06:11 PM

heres the code :

<?php
// set flag to indicate weather the mail has been sent
$mailSent = false;
if (array_key_exists('pcdComments', $_POST)) {
// mail processing script
// remove escape characters from POST array
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value) {
$value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
}

  // validate the input, beginning with name
  $name = trim($_POST['name']);
  if (empty($name)) {
    $error['name'] = 'Please enter your name';
    }

// check for valid email address
$email = $_POST['email'];
$pattern = '/^[^@]+@[^\s\r\n\'";,@%]+$/';
if (!preg_match($pattern, trim($email))) {
$error['email'] = 'Please enter a valid email address';

// check the content of the text area
$messageBody = trim($_POST['message']);

// init. varibles
$to = 'info@planetcd.biz' ; // set email address
$subject = 'Enquiry re: Blues Music'; // set subject

// build the message
$message = 'On '.date('l, M j, Y').' at '.date('g:ia').', ';
$message .= "$name ($email) from $company ($position) wrote: \n\n";
$message .= $messageBody;

// send the email
$additionalHeaders = "From: Planet CD<info@planetcd.biz>\r\n";
$additionalHeaders .= "Reply-To: $email";

// send the mail if theres no errors
if (!isset($error)) {
$mailSent = mail($to, $subject, $message, $additionalHeaders);
// check the mail was sent successfully
if (!$mailSent) {
$error['notSent'] = 'Sorry, there was a problem sending you enquiry. Please try later.';
}
}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<!-- define meta tags -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<!-- page header -->
<title>PlanerCD Online Enquiry Form</title>

<!-- define styles used for text and 'floating media player' -->
<style type="text/css">
.style2 {
font-family: eurostile;
font-size: 16px;
font-weight: bold;
color: #9966CC;
text-decoration: none;
font-style: normal;
line-height: normal;
font-variant: normal;
text-transform: none;
text-align: left;
}
#onmyown {
position:absolute;
top:385px;
left:178px;
z-index:10;
height: 33px;
width: 287px;
}
</style>

<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.Name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>

<!-- script to run flash objects properly -->
        <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>

<body>
<div id="wrapper">
<!-- display flash movie of concept cover -->
<div align="center">
  <script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macr...vie,flash/blues' ); //end AC code
    </script>
  <noscript>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macr...rsion=7,0,19,0" width="132" height="132" align="middle">
      <param Name="movie" value="flash/blues.swf" />
      <param Name="quality" value="high" />
      <embed src="flash/blues.swf" width="132" height="132" align="middle" quality="high" pluginspage="http://www.macromedi...getflashplayer" type="application/x-shockwave-flash"></embed>
      </object>
      </noscript>
    </div> 

<!-- this section handles all the messages, depending on what has happened -->
<?php if (isset($error['notSent'])) { ?>
    <h1 align="center" class="style2">Server Error</h1>
    <p align="center" class="warning"><?php echo $error['notSent']; ?></p>
<div align="center">
<?php } elseif ($mailSent) { ?>
    </div>
<h1 align="center" class="style2">Enquiry submitted.</h1>
<p align="center" class="style2">We appreciate your interest and will be in touch soon.</p>
<div align="center">
<?php } else { ?>
  </div>

<p align="center" class="style2">Thanks for your enquiry regarding the Blues music, please fill out the details below &amp; we will send you an 8 track sampler CD concept - of exceptional quality - which will illustrate the calibre of product we can produce on behalf for your company/client. </p>
<div align="center">
  <?php } ?>
 
</div>
 
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="contactForm" id="contactForm" onsubmit="MM_validateForm('name','','R','email','','RisEmail','message','','R');return document.MM_returnValue">

<table width="100%" border="0">
  <tr>
    <td width="50%" align="left"><!-- Name section -->
    <label for="name" class="style2">Name:</label>
<?php if (isset($error['name'])) { ?>
    <span class="warning"><?php echo $error['name']; ?></span>
    <?php } ?>
    <input type="text" name="name" id="name"
<?php if(isset($error)) {echo "value='$name'";} ?> />
</td>
   
<td width="50%" align="left"><!-- company -->
<label for="company" class="style2">Company:</label>
<?php if (isset($error['company'])) { ?>
<span class"warning"><?php echo $error['company']; ?></span>
<?php }?>
<input type="text" Name="company" id="company"
<?php if(isset($error)) {echo "value='$company'";} ?> />
</td>
  </tr>
<tr>
<td width="50%" align="left"><!-- email address -->
    <label for="email" class="style2">Email:</label>
    <?php if (isset($error['email'])) { ?>
<span class"warning"><?php echo $error['email']; ?></span>
<?php }?>
<input type="text" Name="email" id="email"
<?php if(isset($error)) {echo "value='$email'";} ?> />
</td>

<td width="50%" align="left"><!-- position -->
<label for="position" class="style2">Position:</label>
<?php if (isset($error['position'])) { ?>
<span class"warning"><?php echo $error['position']; ?></span>
<?php }?>
<input type="text" Name="position" id="position"
<?php if(isset($error)) {echo "value='$position'";} ?> />
</td>
</tr>
<tr>

<td colspan="2" align="left" valign="top">
<!-- USER MESSAGE -->
<label for="textarea" class="style2">Additional Info/Comments/Address:</label>
<?php if (isset($error['message'])) { ?>
<span class"warning"><?php echo $error['message']; ?></span>
<?php }?>
<br />
<textarea Name="message" cols="50" rows="3" id="message"><?php if(isset($error))
{echo $messageBody;} ?></textarea>
</td>
</tr>
</table>
<br />
<!-- display 'submit' button -->
<input Name="pcdComments" type="submit" id="pcdComments" value="Submit Enquiry" />
</form>

<div id="onmyown">
  <p align="left"><img src="images/button_click2mute.jpg" alt="floating layer music player" width="136" height="21" align="bottom" />
      <script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macr...reaming/blues-f' ); //end AC code
</script>
      <noscript>
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macr...ersion=4,0,0,0" width="145" height="32" align="bottom">
        <param Name="movie" value="streaming/blues-f.swf" />
        <param Name="quality" value="best" />
        <param Name="wmode" value="transparent" />
        <param Name="bgcolor" value="#FFFFFF" />
        <param Name="loop" value="true" />
        <embed src="streaming/blues-f.swf" quality="best" wmode="transparent" bgcolor="#FFFFFF" loop="True" width="145" height="32" type="application/x-shockwave-flash" pluginspage="http://www.macromedi...ShockwaveFlash" align="bottom"></embed>
      </object>
    </noscript>
  </p>
</div>
</body>
</html>

what happens is this :-

when the form is first displayed, theres a small flash movie and a streaming flash music player that starts automatically playing.  after the user has entered their information and it has been submitted then a message saying thank you is displayed or if there's an error then an error message is displayed BUT!, the form and the flash movies are also displayed again.  wheat i would like if for only the thank you message to be displayed along with a "click here to continue" style link to another page.

please forgive me if this makes no sense, i'm trying my best to explain things.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users