PayPal IPN Posting Twice

I have a test page called order.cfm. This page posts to
PayPal for payments. I have a file called ipn.cfm which waits for
PayPals verification. However, it is being executed twice. The
first time through it has all the form variables, but the sencond
time it does not. How can I stop it from being posted twice. Below
is my code:
ORDER.CFM
<form action="https://www.paypal.com/cgi-bin/webscr"
method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business"
value="mybusiness@mybusinesscom">
<input type="hidden" name="item_name_1" value="Item Name
1">
<input type="hidden" name="amount_1" value="0.01">
<input type="hidden" name="invoice" value="101">
<input type="hidden" name="tax_cart" value="0.00">
<input type="hidden" name="shipping" value="0.00">
<input type="submit" value="PayPal">
</form>
IPN.CFM
<cfheader statuscode="200" statustext="OK">
<cffile action="append"
file="#GetDirectoryFromPath(GetBaseTemplatePath())#IPN_log.txt"
output="THIS PAGE HAS BEEN CALLED ON
#DateFormat(Now(),'mm/dd/yyyy') & TimeFormat(Now(), '
hh:mm:ss')#" addnewline="yes">
<cfset x = GetHttpRequestData()>
<cfset str="cmd=_notify-validate&" & x.content>
<!---post back to PayPal for validation--->
<cfhttp url="https://www.paypal.com/cgi-bin/webscr?#str#"
method="GET" resolveurl="no">
</cfhttp>
<cffile action="append"
file="#GetDirectoryFromPath(GetBaseTemplatePath())#IPN_log.txt"
output="
Paypal Says the transaction is: #CFHTTP.FileContent#
Transaction status: #FORM.payment_status#
Seller account: #FORM.RECEIVER_EMAIL#
addnewline="yes">
<cfloop index="TheField" list="#Form.FieldNames#">
<cfset str = str &
"#LCase(TheField)#=#URLEncodedFormat(Form[TheField])#">
<cffile action="append"
file="#GetDirectoryFromPath(GetBaseTemplatePath())#IPN_log.txt"
output="#LCase(TheField)#----#(Form[TheField])#"
addnewline="yes">
</cfloop>
<cfoutput>
<!--- Payment verified --->
<cfif CFHTTP.FileContent is "VERIFIED">
VERIFIED<br />
<!-- check that payment_status=Completed -->
<cfif FORM.payment_status eq "Completed">
Completed<br />
<!-- check that receiver_email is your email address
(that money went into your account -->
<cfif FORM.RECEIVER_EMAIL eq
"[email protected]">
Paypal says the funds went into your account<br />
<!--- Everything checked ok, add your action here
(typically you would want to update your database here --->
<cfelse>
<!--- The receiver email doesn't match. Log this as
possible fraud --->
The receiver email, #FORM.RECEIVER_EMAIL#, doesn't match.
</cfif>
</cfif>
<cfelseif CFHTTP.FileContent is "INVALID">
<!-- The information is not valid, please investigate and
trace invalid info -->
Invalid Info<br />
<!---Something that was purchased was invalid, either the
order or the information provided. This is usually good to log in
case someone is trying to purchase with stolen card numbers, etc.
Here simply place a QUERY tag that insert the data above into a
database.--->
<cfelse>
Error<br />
<!-- ERROR -->
<!---This usually means that something went wrong along
the way, you can use this area to log it and keep for your
records.--->
</cfif>
</cfoutput>

What do you mean about entering details again, do you mean when they are on paypal?

Similar Messages

  • PayPal IPN - INVALID

    All those of you with experience of PayPal IPN know that this
    should be simple, right?
    You point PayPal's IPN checker at your page and it POST's to
    it. You gather the form field values, loop over them, add
    thehe22cmd" name/value pair and post them back. Simple, no,
    INVALID. What am I missing here? Something in the cfhttp or
    cfhttpparam? I'm foxed!
    dickbob

    quote:
    As I understand it PayPal's IPN now requires a POST rather
    than a GET
    All of my code that I use with IPN is GET, and it is used
    many times during the day.
    On my IPN, which is setup mainly for ReOccuring Payments, I
    use this CODE:
    <cftry>
    <cfset x = GetHttpRequestData()>
    <CFSET str="cmd=_notify-validate&" & x.content>
    <CFHTTP URL="https://www.paypal.com/cgi-bin/webscr?#str#"
    METHOD="GET" RESOLVEURL="false">
    </CFHTTP>
    <!---Set vars from returned data--->
    <CFIF #CFHTTP.FileContent# is "VERIFIED">
    <cfset txn_type = '#FORM.txn_type#'>
    <CFIF IsDefined("FORM.item_number")>
    <cfset Username = '#form.item_number#'>
    </cfif>
    <CFIF IsDefined("url.username")>
    <cfset Username = '#url.username#'>
    </cfif>
    <cfset payer_id = '#form.payer_id#'>
    <cfset subscr_id = '#form.subscr_id#'>
    <cfset first_name = '#form.first_name#'>
    <cfset last_name = '#form.last_name#'>
    <cfset payer_email = '#FORM.payer_email#'>
    <CFIF IsDefined("FORM.subscr_date")>
    <cfset subscr_date = '#form.subscr_date#'>
    </cfif>
    <CFIF IsDefined("FORM.payment_date")>
    <cfset payment_date = '#form.payment_date#'>
    </cfif>
    <CFIF IsDefined("FORM.payment_gross")>
    <cfset payment_gross = '#form.payment_gross#'>
    </cfif>
    <CFIF IsDefined("FORM.payment_status")>
    <cfset payment_status = '#form.payment_status#'>
    </cfif>
    <CFIF IsDefined("FORM.txn_id")>
    <cfset txn_id = '#form.txn_id#'>
    </cfif>
    </CFIF>
    <!---If this is a subscription setup--->
    <cfif #FORM.txn_type# is "subscr_signup">
    <!---update orders table--->
    cfquery name="InsertOrder" datasource="#mydatasource#">
    INSERT INTO Orders(user_name, payment_status, payment_date,
    payment_gross, txn_id, txn_type, payer_email, subscr_date,
    subscr_id, payer_id)
    VALUES('#Username#', 'SubSetup',
    '#DateFormat(now(),'mm/dd/yy')#', '0', '', '#TXN_TYPE#',
    '#payer_email#', '#DateFormat(now(),'mm/dd/yy')#','#subscr_id#',
    '#payer_id#')
    </cfquery>
    <cfcatch type="any">
    <cffile action="append"
    file="d:\inetpub\website\paypal_errorlog.txt"
    output="#DateFormat(Now(),'mm/dd/yy')#: Error on Paypal IPN
    page:
    #cfcatch#">
    <br />
    </cfcatch>
    </cftry>
    Now I also do quite a bit of other things as well in my code,
    update tables and send emails, and the query here is for example .
    But this works fine all of the time.
    What error are you getting exactly?

  • This.submitForm posting twice !!!

    Environment:
    Acrobat Pro 9 with LifeCycle Designer ES 8.2
    OS - Windows 2003
    ToolKit used - Adding Javascript using PDFNet toolkit
    Control - Adding Javascript to "Button" Control
    Event - MouseDown [also tried with MouseUp]
    Symptoms: this.submitForm action posting the form data twice, other actions like app.alert('testing'); displays only one time.
    this.submitForm({
    cURL: "/testPage.aspx?IsXML=true#FDF",
    cSubmitAs: "XML",
    cCharset: "utf-8"
    How to aviod double post back? Eagerly waiting for the answer.
    Thank You
    inath

    Hi Paul,
    Thanks for your reply.
    Intially we had Button Control Submit Url and Submit type properties setup in LC Designer (allowed to edit only button properties in LC designer).
    (using button control to receive xml form data, whereas http submit button posting FDF format)
    Based on our requirement we are not allowed to edit/modify the pdf document in life cycle designer to add javascript for validation, navigation control and etc. So we adopted pdfnet toolkit to inject javascript into pdf document to meet our client side requirement. Using this tool, adding javascript to radio button group need to be refresh the field (RefreshFieldAppearence()) then only JScript trigger event will take place into action. When I use this method submit button is not triggering (not posting to the URL), alternate solution would be injecting JavaScript to button control to post document data to the server and noticed this.submitForm posting twice.
    Is there a way to notify the Event Manager or button control to post the document only once using javascript?
    -regards
    inath

  • Duty Posting has been posted twice

    Hello Experts,
    The start of Debugging Phase will be on Create Billing Document VF01.
    The issue of the user lies on the Accounting Document created upon Billing. On the Document Flow the Accounts were posted twice having the same Assignment Field.
    Instead of Reversing the Account, the system had double post the SIT Duty Account and COS Excise Duty.
    The expected outcome should be:
    50 MK1 22051 SITDutyUp Wh Spirit 34787653 -10,087.50 GBP
    40 MK1 45000 COS Excise Duty     34787653  10,087.50 GBP
    40 MK1 22051 SITDutyUp Wh Spirit 34787653 -10,087.50 GBP
    50 MK1 45000 COS Excise Duty     34787653  10,087.50 GBP
    And not: 
    50 MK1 22051 SITDutyUp Wh Spirit 34787653 -10,087.50 GBP
    40 MK1 45000 COS Excise Duty     34787653  10,087.50 GBP
    50 MK1 22051 SITDutyUp Wh Spirit 34787653 -10,087.50 GBP
    40 MK1 45000 COS Excise Duty     34787653  10,087.50 GBP
    Where can i start debugging this?what specific user exit can i debug to trace the problem.
    I appreciate your help guys
    Thanks!

    Dear Jan,
    Please do settings as per below SAP Note:
    *Note 551932 - Cancellation of Billing with Excise invoice
    Note Language: English Version: 2 Validity: Valid from 05.09.2002*
    Summary
    Symptom
    When a billing document is cancelled, the attached excise invoice also gets
    reversed. Again the user can go and cancel the excise invoice independently
    through CIN making double accounting of the reversal.
    More Terms
    Excise invoice, Cancellation of excise invoice, j1iH, VF11
    Cause and Prerequisites
    This is because of the new cancellation procedure of the billing.
    This happens because the accounting document for Excise invoice posting is
    linked to the document flow of SD. So when you cancel the billing all the
    related accounting documents are reversed.
    Solution
    This is because of the new Billing cancellation procedure. You have to
    implement the userexit mentioned in note 339928. This will ensure that the
    cancellation of excise invoice works as it used to do before the new
    cancellation procedure.
    In the userexit userexit_fll_xkomk1 in function rv_accounting_document
    create add the code attached below. The userexit is in rv60bfza. This will
    not get overwritten in upgrades.
    FORM USEREXIT_FILL_XKOMK1.
    rule_new_cancel = 'A'.
    ENDFORM.
    This will ensure that excise invoice related accounting document is not
    reversed at the time of billing. You may use the existing functionality to
    cancel the excise invoice
    *Related NotesNumber Short Text
    339928 New cancellation procedure cannot be deactivated*
    Regards,
    Barathi S.

  • Paypal IPN + Coldfusion 7 not working?

    I am trying to set up coldfusion to handle payPal IPN but I cant find any tutorials that explain how to get it to work, anything I find is out of date or I just cant get it to work.
    I've tried using the code on paypal developer site here:
    https://cms.paypal.com/cms_content/CA/en_US/files/developer/IPN_COLDFUSION.txt
    and I have enabled IPN on my paypal account but I'm not sure I've set it up correctly. Is there a way to check if paypal is even sending data back to my site?
    Been having a look and it seems the ipn I set up isnt even running. when I test the payment (i set up a basic ipn.cfm file that writes to a text file) it still doesnt work. Could there be a reason why paypal isnt running the ipn? If I go to the ipn.cfm file in a browser then the test txt file is created.
    Cheers!

    Hi Jeff,
    Can you let us know the directory location for wwwroot on your system.
    jeffcg2 wrote:
    That does not work. As soon as I put C:\ColdFusion10\cfusion in the Server Home I get the error Server Home Invalid. I have uninstalled Coldfusion 10 and re-installed added the latest updates. Coldfusion 10 is working fine running on IIS 7.
    Not necessarily. As soon as you select the "cfusion" location, it would automatically pick the wwwroot location.
    jeffcg2 wrote:
    With Coldfusion 10 , since you have C:\ColdFusion10\cfusion\wwwroot. as the Document root will this only work if you install the included web server?
    Regards,
    Anit Kumar

  • F.05- Exchange  diff amnt getting posted twice in the same period

    We have an issue relating to the F.05 job run in SAP. This T-code will revaluate all the forex transactions to the specified rate only once during the month and post the differential entry to ensure that all the balances are restated.
    During the month of Mar 08, while we processed the F.05, we were not able to take the download in excel and hence we again processed F.05 inorder to extract the report. While we processed again F.05, the system has again posted another entry in SAP for the same amount as earlier.
    I am explaning with an example as below :
    First Run : System Entry
    Dr. Exch Difference Rs. 200
    Cr. Revaluation A/c Rs.(200)
    Second Run : System Entry
    Dr. Exch Difference Rs. 200
    Cr. Revaluation A/c Rs.(200)
    Net Imapact
    Dr. Exch Difference Rs. 400
    Cr. Revaluation A/c Rs.(400)
    Based on the above example, the system has processed the F.05 run twice and posted the amounts double. Let us know whether the F.05 needs to be processed only once a month (if yes, then how do we extract a report if needed later), or can we process multiple times in a month (in that case, there shouldn't be additional entries posted).

    Hi,
    Usually, F.05 only run once per month or per quarter. There are two kinds of FX run,
    1) balance sheet preparation valuation, it was selected if you check the box in the posting page. System would generate the FX posting, plus write a FX difference amount to each open item. And when you run the transaction 2nd time in next month, only the difference between 1st and 2nd time would be posted. Let's say if next month has the same valuation rate as 1st time, then, it would not have postings generated.
    2) Valuation without open item flagged, system would valuate the open items all the time as new, there is no flag in the open item which has been valuated. Therefore, every time when you run the valuation and postings would be generated no matter your valuation rate has been changed or not. And usually, would reverse the postings on the 1st day of next period.
    In your case, I think you are running the 2nd type since you have 2nd batch of postings generated which have the same value as the first one. Please check whether it is correct, because it would have different correction handling for each type.
    If you are the 2nd type, just simply reverse one of the batches documents by F.80 is ok.
    Regards,

  • Posting twice on JSSE socket

    Has anyone run into a problem of a POST request being sent twice on one call - the first time the data is sent without request for authorization and the second time with authorization information.
    Using a net mon I see the two Posts in different frames which besides confusing Oblix is a performance drag.
    Am using jdk 1.3x and the JSSE 1.0.3
    thanks

    The following has worked for me in the past:  URL orderURL = new URL(reqStr);
      HttpURLConnection cnx = (HttpURLConnection) orderURL.openConnection();
      cnx.setRequestMethod("POST");
      cnx.setRequestProperty("User-Agent", USER_AGENT);
      cnx.setRequestProperty("Content-length", _len);
      cnx.setRequestProperty("Authorization", "Basic " + _digestAuth);
      cnx.setDoInput(true);
      cnx.setDoOutput(true);
      cnx.connect();Replace "_digestAuth" with the Base64'd string of userid:pwd. Fill in "USER_AGENT" with whatever floats your boat. Make sure "_len" accurately represents the length of your content in bytes. Note that I use this for an HTTPS URL - but since I'm not trying to do anything HTTPS-specific with it, I only treat it as an HttpURLConnection.
    Since it hits the server with the uid:pwd already in place, I don't get the 403.
    Grant

  • PayPal Form Post Integration

    Hi Everyone,
    I'm trying to embed a PayPal button in my application using their "Cart Upload" capabilities associated with their [Website Payments Standard|https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_cart_upload] option. It is all done through an HTML form like the following:
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
      <input type="hidden" name="cmd" value="_cart">
      <input type="hidden" name="upload" value="1">
      <input type="hidden" name="business" value="[email protected]">
      <input type="hidden" name="item_name_1" value="Item Name 1">
      <input type="hidden" name="item_number_1" value="ITM1">
      <input type="hidden" name="amount_1" value="1.00">
      <input type="hidden" name="item_name_2" value="Item Name 2">
      <input type="hidden" name="item_number_2" value="ITM2">
      <input type="hidden" name="amount_2" value="2.00">
      <input type="hidden" name="no_shipping" value="1">
      <input type="submit" value="PayPal">
    </form> The problem is, every APEX page is already bound by a form, so you can't embed this form into any page. I've seen the 2007 Whitepaper about integrating PayPal using UTL_HTTP, but that is way more work than using the above code. Anyone know how I can include this in a page without it conflicting with the APEX form?

    jritschel wrote:
    The problem is, every APEX page is already bound by a form, so you can't embed this form into any page. I've seen the 2007 Whitepaper about integrating PayPal using UTL_HTTP, but that is way more work than using the above code. Anyone know how I can include this in a page without it conflicting with the APEX form?Locate it on the page outside of the APEX form. Create a page template with a region position or item substitution string outside of <tt>#FORM_OPEN#...#FORM_CLOSE#</tt> and generate the PayPal form code in that region or item.

  • Messages posted twice - ALWAYS

    My boss is getting all her emails twice? Is there a setting that is causing this to happen? I have her email being retreived on 3 computers but I don't think that would be a problem. Also sometimes Mail does make us enter our passwords multiple times. Until we restart our computers sometimes.

    .oO(iigot2bme)
    >I am getting ready to post my own art work on my web site
    and would like to
    >copyright my images.
    Your images are protected by copyright already.
    >Using a watermark isn't an option at this time.
    It's your best option. Use it.
    >I do have
    >the Java Script code to disable the right-click on a page
    Impossible. Modern browsers will prevent that.
    >but I have no idea
    >where to put it in the code.
    Please look through the archive of this group, this issue was
    discussed
    often enough. In short - there's always only one answer:
    Don't do it.
    > Also, I was told that a better option was to place the
    image in the background
    >of a cell and layer a transparent image on top so that if
    someone right-clicks
    >to save, they get an empty white box. How would I go
    about doing this? I know
    >you would use an HTML wrapper, but I can't figure out
    how.
    Why do so many people always want to make things much more
    complicated
    for their visitors than they have to be?
    > I'm also open to any other suggestions.
    What about
    <img src="/path/to/your/image.jpg" alt="..."
    title="...">
    Nice, clean, userfriendly, reliable. That's how it's supposed
    to be.
    Micha

  • [deleted because accidentally posted twice]

    Sorry, had accidentally posted this thread twice (so have deleted erroneous first one)!
    Message was edited by: arko2

    To Apple Discussions!
    My bundled software shows the same items as yours. However, it also included:
    *Photo Booth*
    Aperture Trial
    Office 2004
    iWork
    GarageBand & iDVD were greyed out.
    My MBP came pre-installed w/10.5.2 or 10.5.3.

  • HT4623 I update my new iphone with the data of my old iphone.  Now every email is post twice.  Can someone tell me how to correct that from happening?

    I purchase a new iphone.  I backed up my old iphone and moved the data to my new iphone.  My new iphone shows my emails twice every time a new email comes up.  How can I correct this issue?

    Just to make sure - You're saying you had backed up your iPhone 4. When you plug in the 3GS, and try to "restore" the data from the iPhone 4 backup onto the 3GS, you get that error? Check to see if the iOS version is up-to-date, and hopefully it isn't. It might also be because your iPhone 4 wasn't, and is causing some sort of problem.
    Good luck!

  • Colors Screwed Up (sorry if this posted twice)

    Last time I clicked post nothing happened so I'm not sure if this posted.
    Anyway, the light blue color used in Aqua in places like iChat buddylists (bg of every other person on list), Mail Sidebar, Aquasition........, for some reason used in color labels in finder, and other apps has somehow been replaced with ugly, plain old cyan.
    http://img419.imageshack.us/my.php?image=colorscrewupza6.png <-- Note that some of the parts of this picture are screwed up only because of poor quality. (sorry about that.) Those icons aren't messed up. Aquasition is a good example though, because it shows three common places where the color is used. 1)sidebars 2)lists 3)mixing colors (shown with that ad at the bottom which should be orange.)
    Things that led up to my problem are:
    1. Yesterday things were crashing and in the error message the unselected buttons were just like text; the button part was missing. *fixed after restart
    2. desktop icons weren't showing up until highlighted or single clicked. *fixed after restart.

    This is only in my account. I created a test account and everything is fine.
    In that case, it's very likely a corrupt preference file. Try deleting the following files from the ~/Library/Preferences/ folder in your user account.
    com.apple.desktop.plist
    com.apple.finder.plist
    com.apple.systempreferences.plist
    Actually, you could move those three items to the desktop. Restart and see if it fixes things. If not, you can then move them back and replace the new ones that were created. If it does fix things, you'll have to check and see if some of your other custom settings changed in the System Preferences, as the one .plist holds various settings.

  • I paid my bill on line, and it somehow posted twice, so that I overpaid by $443.57. I have spoken to customer service several times over the last 5 days, and was told that my refund request was "sent via TOPS form to the treasury department". Having recei

    >> Duplicate post removed to comply with the Verizon Wireless Terms of Service   Please see Bill Over-Payment <<
    Message was edited by: Verizon Moderator

    See my reply to the other identical post you made on this issue.

  • Genius can compile list but cannot locate songs from folder, any tips, sorry if this is posted twice, I'm very new

    Hi All
    Another atttempt at question, I'm new at this
    New computer, downloaded Itunes 10.5 imported songs from old folder from portable harddrive, all's well music plays, genius can compile list but can"t locate files from folder, I can do it 1 by 1 but it's very slow any suggestions
    regards
    Richard
    thanks

    I'm not certain, but it sounds like you are describing missing file syndrome where tracks show up with exclamation marks...
    This normally happens if the file is no longer where iTunes expects to find it. It may be a by-product of the way you moved the library. Other possible causes are that you or some third party tool has moved, renamed or deleted the file, or that the drive it lives on has had a change of drive letter. It is also possible that iTunes has changed from expecting the files to be in the pre-iTunes 9 layout to post-iTunes 9 layout,or vice-versa, and so is looking in slightly the wrong place.
    Select a track with an exclamation mark, use Ctrl-I to get info, then cancel when asked to try to locate the track. Look on the summary tab for the location that iTunes thinks the file should be. Now take a look around your hard drive(s). Hopefully you can locate the track in question. If a section of your library has simply been moved, or a drive letter has changed, it should be possible to reverse the actions.
    Alternatively, as long as you can find a location holding the missing files, then you should be able to use my FindTracks script to reconnect them to iTunes .
    tt2

  • Quick Paypal IPN q

    Hello,
    I just need to confirm my understandings of the available
    variables
    https://www.paypal.com/IntegrationCenter/ic_ipn-pdt-variable-reference.html
    Ok were I to pass any values to paypal using any of the
    variables listed and
    the entire transaction went well, does that mean paypal
    pass's back all the
    values of the variables been passed in the first plase. take
    for example
    I have a form on my page. which has a pay now button. when
    the user clicks
    it takes them to paypal with the content of my textareas and
    hidden fields.
    If the transaction goes through ok does this mean I call call
    the values
    from paypal.
    <input name="item_number" type="hidden" value="12345">
    <input type="hidden" name="return"
    value="
    http://www.mysite.com/Pay1_db_process.asp">
    so the above is passed to paypal
    now my question is on my Pay1_db_process.asp page
    can I call the values like this using the request.form. on my
    Pay1_db_process.asp as in below
    <%= Request.Form("item_number" %>
    regards
    k

    as simple as that!
    thanks very much

Maybe you are looking for

  • MacBook vs. 12" Powerbook

    I currently have a 12" 1.33 Ghz powerbook. I am considering a new MacBook to replace my comp. I want to use my nedw comp to edit video in iMovie (just home video.) Will the MacBook be more capable than my powerbook? I would get at least 1GB of RAM (c

  • Virtual Machine

    Hello, I downloaded Java Runtime Environment v1.4.0_01 on my C drive in a windows folder. When I try to run it, it says that my security settings need to be set to medium. I set it to medium and hit apply then refresh as I'm supposed to do. But each

  • [solved itself] cpupower doesn't scale ivy bridge high enough

    Not sure if I should have put this in the testing section, the kernel section or here. But I try here. cpu family : 6 model : 58 model name : Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz My problem is: $ analyzing CPU 0: driver: acpi-cpufreq CPUs which

  • Only 6 bookmarks per folder in ios7

    After upgrading to ios7 my bookmarks in safari for both my ipad2 and my iPhone 5 only show the first 6 of each folder. My desktop shows all the correct pages but for some reason my newly upgraded products only show six a piece. I have iCloud sync tur

  • Unwanted space when working with tables

    I have created a layout using tables (in CS4), and when I top align the tables containing images and text, it leaves a large, blank, unwanted space at the bottom. I am unable to resize the tables accordingly to eliminate the space, how can I fix this