Question

How do I Post PHP form data to external and Interneal locations at the same time

Asked by: fergusonperf

Hello Everyone,

   I have read a bunch of ways to do this but none work for exactly what I need;

OK, I have an http://mydomain.com/index.php (Spalsh) Page where I ask the user for name and email address via simple form.  On submit that form gets posted to an external script (http://notmydomain.com/myAR.php) for processing into my 3rd party hosted autoresponder.  The the user then gets sent to my thankyou page located at http://mydomin.com/thankyou.php.  

  The problem is how can I access the user and email information that was posted on the  http://mydomin.com/index.php?  I wanted to use these two feilds to populate another form located on  http://mydomin.com/thankyou.php

   I don't want to pass these variables in the url like below even though it does work.
 (http://mydomain.com/thankyou.php?name=kevin&email=kevin@domain.com)

Any suggestions?  I have been at this for day's..    Yea, I'm a newbie ;)

I would love to do this in as much PHP as possible...

Kevin

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-11-22 at 18:16:34ID24922412
Tags

php

,

javascript

Topics

JavaScript

,

PHP Scripting Language

,

PHP and Databases

Participating Experts
5
Points
500
Comments
15

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Php and Databases is VB6
    Please could somebody help me with the following issues. 1. I have designed a VERY SIMPLE Webserver that will serve one page to a user requesting it....is there a way to incorporate the php interperator into VB6 so I can use a php page rather then Html ?? 2. Is there a way...
  2. redirect mydomain.com to www.mydomain.com
    I would like to know how to do the following: redirect mydomain.com to www.mydomain.com Currently when a user types in mydomain.com the can browse the website just the same as using www.mydomain.com. This creates a problem on SSL pages because the cert is for www.mydomain.c...
  3. mod_rewrite:  Rewrite http://mydomain.com/a1.…
    Hello, How can I mod_rewrite the following: http://mydomain.com/a1.a2 to http://mydomain.com/script.php?var1=a1.a2 I've been trying to do it but I keep getting the actual script.php file rewrited as well, so I suppose the rewrite would have to specifically ignore the ...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: leakim971Posted on 2009-11-22 at 19:01:24ID: 25884905

Hello fergusonperf,

You may use Ajax to send the data to the third party site (http://notmydomain.com/myAR.php) when user click on the submit button and so directly POST your data to http://mydomin.com/thankyou.php

Regards

 

by: elvin66Posted on 2009-11-22 at 23:59:46ID: 25885733

You could do this easily with sessions. You call session_start() at the beginning of the login or main page and that form data is then available from any other script you want simply by putting session_start() at the top of those pages. Let me know if you want an example.

 

by: profyaPosted on 2009-11-23 at 02:26:51ID: 25886346

As elvin66 suggested I thing using sessions will do the trick. To start using sessions you should place session_start() at the top of your php page, before any line prints an output. Then you can use $_SESSION array to keep your values in the session, for example: $_SESSION['Email']="x@y.com";

When you need the value saved in the session you call the session variable for exampel: echo $_SESSION['Email'];

Sessions we are talking about works on php pages.

I hope this helps.

 

by: chris18Posted on 2009-11-23 at 03:10:08ID: 25886516

Kevin

"I would love to do this in as much PHP as possible..."

I would suggest you use PHP CURL in the script http://mydomain.com/index.php  to post the variables in the background to a different php file which could write the variables to a simple text file.

Then http://mydomin.com/thankyou.php.  can read the variables from THAT simple text file

 

by: fergusonperfPosted on 2009-11-23 at 03:31:54ID: 25886631

profya: and elvin66:,

      How would I get the variables into the session?  Would I do some sort of "On Submit" code?  The variables we are talking about are not even populated until user clicks submit right?

Any example code?

Thanks guys...

 

by: profyaPosted on 2009-11-23 at 03:41:20ID: 25886676

Yes, when a form submitted, its inputs are stored in either $_POST or $_GET array depending on the form's method .... <FORM name=... METHOD=POST ......>

For example if your form is of method POST then when submitted the email input value is $_POST['email'];
for this to work, your form's inputs should have names.

 

by: leakim971Posted on 2009-11-23 at 03:41:57ID: 25886681

The following send the username and email to the third party by calling silently the external script without changing url (mydomain.com -> notmydomain.com), POST or reload your page.

<script language="javascript">
	function sendNewUser() {
		var xhr; 
		try {
			xhr = new ActiveXObject('Msxml2.XMLHTTP');
		}
		catch(e) {
			try {
				xhr = new ActiveXObject('Microsoft.XMLHTTP');
			} 
			catch(e2) {
				try {
					xhr = new XMLHttpRequest();
				}
				catch(e3) {
					xhr = false;
				}
			}
		}
		xhr.onreadystatechange = function(){
			if(xhr.readyState  == 4) if(!(xhr.status  == 200)) alert("Error code " + xhr.status);
		}
		var data = "name=" + document.getElementById("textboxUsername") + "&email=" + document.getElementById("textboxEmail");
		xhr.open("POST", "http://notmydomain.com/myAR.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
		xhr.send(data);
	}
</script>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:

Select allOpen in new window

 

by: profyaPosted on 2009-11-23 at 03:43:02ID: 25886683

For more information about sessions: http://www.php.net/manual/en/book.session.php
And for more information about forms: http://www.w3schools.com/php/php_forms.asp

I hope this helps.

 

by: Ray_PaseurPosted on 2009-11-23 at 08:03:02ID: 25888750

Kevin: If you want to post the code you're using now, perhaps we can give you a concrete solution.  Or you might want to adapt something like this.  Best, ~Ray

<?php // RAY_post_to_multiple_pages.php
error_reporting(E_ALL);
echo "<pre>\n"; 
// Q: HOW CAN I HAVE A FORM THAT POSTS TO MORE THAN ONE ACTION SCRIPT?
// A: USE A CANONICAL SCRIPT TO RE-POST THE DATA TO THE OTHER ACTION SCRIPTS. 
 
// THE LIST OF URLS AND ACTION SCRIPTS - USE AS MANY AS NEEDED - DIFFERENT NAMES, ETC
$target["www.laprbass.com"] = 'RAY_bounce_post.php';
$target["www.laprbass.com"] = 'RAY_bounce_post.php';
// NOTE IN THIS EXAMPLE THERE IS ONLY ONE ADDITIONAL SCRIPT - ARRAY OVERWRITES 
 
// THIS IS THE CANONICAL ACTION SCRIPT - IS ANYTHING POSTED?
if (!empty($_POST))
{
    // IF SO, REPACKAGE IT TO GO TO THE SUBSIDIARY SCRIPTS
    $repost = '';
    foreach ($_POST as $key => $val) // ASSEMBLE KEY=VAL PAIRS
    {
        $repost .= $key . '=' . urlencode(stripslashes($val)) . '&';
    }
    $repost = rtrim($repost, '&');   // REMOVE THE LAST AMPERSAND 
    // ITERATE OVER THE TARGET SCRIPTS POSTING TO EACH ONE
    foreach ($target as $url => $page)
    {
        // SET UP POST DATA - NOTE VARS $url $page strlen($repost)
        $header = '';
        $header .= "POST /$page HTTP/1.0\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Content-Length: " . strlen($repost) . "\r\n\r\n"; 
        // OPEN THE SOCKET TO THE REMOTE PAGE
        $fp = fsockopen ($url, 80, $errno, $errstr, 30); 
        // TEST FOR VERIFICATION
        if (!$fp) // HTTP ERROR
        {
            die("ERROR: fsockopen() FAILED \n ERRNO=$errno \n ERRSTR=$errstr \n");
        } 
        // HTTP OPEN - WRITE HEADER AND POST REQUEST
        fputs ($fp, $header . $repost); 
        // HTTP OPEN - READ RESPONSE, DISCARDING HEADERS TO THE VERY END (UNLESS YOU CARE)
        $replies = '';
        $headers = '';
        while (!feof($fp))
        {
            $replies  = fgets ($fp, 1024);
            echo "\n$replies"; // SHOW RETURNING HEADERS
            $headers .= $replies;
        }
        fclose ($fp); 
        // SHOW THE BROWSER OUTPUT REPLIES, IF ANY, FROM THE REMOTE SCRIPTS
        echo "\n$url $page $replies"; 
    } // END OF ITERATOR OVER TARGET SCRIPTS
    echo "\n"; 
// END OF PHP - PUT UP THE HTML FORM
}
?>
<form method="post">
TYPE SOMETHING: <input name="thing_one" />
SOMETHING ELSE: <input name="thing_two" />
SEND RESPONSES: <input name="email" /> (YOUR EMAIL)
<input type="submit" value="MULTI-POST" />
</form>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:

Select allOpen in new window

 

by: elvin66Posted on 2009-11-23 at 12:53:56ID: 25891435

Try this: Place the following code on the page that the form is being posted to. For eg: if the form is posting back to it'self then place it on the forms page.

<?php
session_start();
if(is_array($_REQUEST)) {
              foreach($_REQUEST as $key => $value) {
                        $_SESSION[$key]      = $value;
              }
      }

//Check to see if the 2nd form has been submitted (reset) this destroys the session

if($_SESSION['reset'] == 1){
session_destroy();
header("location: session.php");
}

// now put a form on here
$form1 = "<form>Username : <input type='text' name='username' value='".$_SESSION['username']."'><br>Password : <input type='password' name='password' value='".$_SESSION['password']."'><br><br><input type='submit' value='login'></form>";

$form2 = "<form><input type='hidden' name='reset' value='1'><input type='submit' value='reset'></form>";


echo $form1;
echo "<br><br>".$form2;
echo "<br><br>";
if(!empty($_SESSION['username'])){
echo "Username is ".$_SESSION['username'];
}
if(!empty($_SESSION['password'])){
echo "<br>Password is ".$_SESSION['password'];
}

?>

//Try the form and submit it. You will notice the form fields remain filled in. That is because we gave them values from the session variables like $_SESSION['username'] etc.....

To take it further, create another page and save it as whatever name you like. Put this code in it.

<?php
session_start();

if(!empty($_SESSION['username'])){
echo "Username is ".$_SESSION['username'];
}
if(!empty($_SESSION['password'])){
echo "<br>Password is ".$_SESSION['password'];
}

?>

// Now when you load that page after submitting the form on the first page, you should see those variables. You can use them anywhere as long as you have a session_start() on the top of the page under the <?php tag and before ANY output to the browser.



// That's all there is to it !
Hope that helps...

 

by: fergusonperfPosted on 2009-11-23 at 16:24:21ID: 25892909

Thanks everyone for your help, Just got home from work and tried Ray_Paseur's code first.
I got an error, so I tried to remove one of the URL's but still get the below error when I submit:

HTTP/1.1 404 Not Found
Date: Tue, 24 Nov 2009 00:17:43 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Accept-Ranges: bytes
Connection: close
Content-Type: text/html

I am only using one Target URL for testing.

The code is below:

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

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>TYPE SOMETHING</title>
</head>

<body>
<?php // RAY_post_to_multiple_pages.php
error_reporting(E_ALL);
echo "<pre>\n";
// Q: HOW CAN I HAVE A FORM THAT POSTS TO MORE THAN ONE ACTION SCRIPT?
// A: USE A CANONICAL SCRIPT TO RE-POST THE DATA TO THE OTHER ACTION SCRIPTS.

// THE LIST OF URLS AND ACTION SCRIPTS - USE AS MANY AS NEEDED - DIFFERENT NAMES, ETC
$target["Admin_Edit_VM.com"] = 'indexX.php';
// $target["Admin_Edit_VM.com"] = 'subscribe.php';
// NOTE IN THIS EXAMPLE THERE IS ONLY ONE ADDITIONAL SCRIPT - ARRAY OVERWRITES

// THIS IS THE CANONICAL ACTION SCRIPT - IS ANYTHING POSTED?
if (!empty($_POST))
{
// IF SO, REPACKAGE IT TO GO TO THE SUBSIDIARY SCRIPTS
$repost = '';
foreach ($_POST as $key => $val) // ASSEMBLE KEY=VAL PAIRS
{
$repost .= $key . '=' . urlencode(stripslashes($val)) . '&';
}
$repost = rtrim($repost, '&'); // REMOVE THE LAST AMPERSAND
// ITERATE OVER THE TARGET SCRIPTS POSTING TO EACH ONE
foreach ($target as $url => $page)
{
// SET UP POST DATA - NOTE VARS $url $page strlen($repost)
$header = '';
$header .= "POST /$page HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($repost) . "\r\n\r\n";
// OPEN THE SOCKET TO THE REMOTE PAGE
$fp = fsockopen ($url, 80, $errno, $errstr, 30);
// TEST FOR VERIFICATION
if (!$fp) // HTTP ERROR
{
die("ERROR: fsockopen() FAILED \n ERRNO=$errno \n ERRSTR=$errstr \n");
}
// HTTP OPEN - WRITE HEADER AND POST REQUEST
fputs ($fp, $header . $repost);
// HTTP OPEN - READ RESPONSE, DISCARDING HEADERS TO THE VERY END (UNLESS YOU CARE)
$replies = '';
$headers = '';
while (!feof($fp))
{
$replies = fgets ($fp, 1024);
echo "\n$replies"; // SHOW RETURNING HEADERS
$headers .= $replies;
}
fclose ($fp);
// SHOW THE BROWSER OUTPUT REPLIES, IF ANY, FROM THE REMOTE SCRIPTS
echo "\n$url $page $replies";
} // END OF ITERATOR OVER TARGET SCRIPTS
echo "\n";
// END OF PHP - PUT UP THE HTML FORM
}
?>
<form method="post">
SOMETHING ELSE: <input name="fullname" />
SEND RESPONSES: <input name="email" /> (YOUR EMAIL)
<input type="submit" value="MULTI-POST" />
</form>
</body>

</html>

 

by: elvin66Posted on 2009-11-23 at 18:28:03ID: 25893423

Sessions is much less coding and easier to read for me anyway.

 

by: fergusonperfPosted on 2009-11-25 at 07:59:30ID: 25908264

elvin66,

    I think you are right and session vars are the way to go,  How can I use those session variables to autopost to another php page? Like on page load or somthing.

    If I'm not wrong your code allows me to only post to one page?  How do I post that data automatically to the 2nd page?


Kevin

 

by: elvin66Posted on 2009-11-25 at 11:22:16ID: 25910325

Well you don't actually POST to the 2nd page. Once your form has been submitted, no matter if it were submitted back to it'self or another php page, those variables are stored in the current 'session'. What that means is that on any other page that you want, you can also recall any or all of those variables.

In my example above, I had a basic form with a username and password fields for the user to fill out. Because I listed the form as <form> and not <form action='somepage.php' method='post'> that means that the form data once submitted will be sent back to it'self (the same page the form is on). You can set the action to post to any page you want it's up to you.

The main point is that all you have to do to retrieve that 'username' and 'password' from ANY other PHP script/page is to start the session on that page (you can start the session on all your pages if you want). You must remember to place the session_start before ANY blank lines or other output in your scripts.

<?php
session_start();

That is the correct way to setup the session on any page. Now, anywhere in that page you can retrieve the 'username' and 'password' simply by doing this


echo $_SESSION['username'];
echo "<br>";
echo $_SESSION['password'];

or you might want to assign it to another variable (not necessary though)

$password = $_SESSION['password'];

or you can use it in a form even if you are outside the php tags like this:

echo $somephp_code;
// end the php
?>

<!-- Standard HTML code <!-->

<center><strong><u>Username</u></strong><br>
<?php echo $_SESSION['username'] ; ?><br>


<center><strong><u>Password</u></strong><br>
<?php echo $_SESSION['password'] ; ?><br>

When you no longer need to store those variables you can end the session on any page by typing

session_destroy();

See the examples below:

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.
Report a bug
 Return Values

Returns TRUE on success or FALSE on failure.
Report a bug
 Examples


Example #1 Destroying a session with $_SESSION
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>

 

by: fergusonperfPosted on 2009-11-29 at 11:28:42ID: 31657431

Great, Sessions was my best choice.  Thanks for the help...

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...