Multiple parameters in url, W5100 ethernet shield

Hi I got a problem with this script, I am working with a arduino uno r3 and a W5100 ethernet shield. I can sent the first parameter rfid with the str variable, and I receiving it on the webserver, and that's ok, but the parameter ip and token, I don't receive on the web server, how do I write the code, so the last two parameters is sent, to the webserver, could it be the && sign, that makes the trouble, or some missing // signs, or something else ???

if (client.connect(server, 80)) {

client.print( "GET http://domain.com/getRfid.php?");
    client.print("rfid=");
    client.print( str );
    client.print("&&");
    client.print("ip=");
    client.print( "192.168.13.134" );
    client.print("&&");
    client.print("token=");
    client.print( randNumber );
    client.print( " HTTP/1.1");
    client.print( "Host: " );
    client.print(server);
    client.print( "Content-Type: application/x-www-form-urlencoded" );
    client.print( "Connection: close" );
    client.println();
    client.println();
    client.flush();
    client.stop();
}else {
    Serial.println("--> connection failed/n");
  }

I don't know why you've doubled the ampersand (&) in your client.print() functions.

Doing a quick test with Serial.print() and Serial.println() which use the same built-in Arduino function I tried this simple sketch.

void setup () { Serial.begin(57600); Serial.println("Setup done."); }

void loop() { Serial.print("No escape:"); Serial.print("&"); Serial.print("Double:"); Serial.print("&&"); Serial.print("Escape:"); Serial.print("&"); Serial.print("Triple:"); Serial.print("&&&"); Serial.println("*** Done."); delay(100000); }

Gets this output

Setup done. No escape:&Double:&&Escape:&Triple:&&&*** Done. No escape:&Double:&&Escape:&Triple:&&&*** Done.

So I'd change all of your doubled && to & and see if that generates a better HTTP GET string when it's passed to your server.

but the parameter ip and token, I don’t receive on the web server,

Not sure what the token you are talking about is. If the IP address you are talking about is the client IP address that is connecting to the server, then the below code might be of use. Note that you may need to modify the ethernet library for the below code to work.

http://arduino.cc/forum/index.php/topic,82416.0.html

//zoomkat 12-8-11
//simple button GET with iframe code
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html 
//address will look like http://192.168.1.102:84 when submited
//for use with W5100 based ethernet shields
//remote IP info
//http://arduino.cc/forum/index.php/topic,82416.0.html 

#include <SPI.h>
#include <Ethernet.h>

byte rip[4];
//byte rip[] = {0,0,0,0};
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port

String readString; 

//////////////////////

void setup(){

  pinMode(5, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print 
  Serial.begin(9600); 
  Serial.println("server LED test 1.0"); // so I can keep track of what is loaded
}

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //print to serial monitor for debuging 
client.getRemoteIP(rip);
for (int bcount= 0; bcount < 4; bcount++)
     { 
        Serial.print(rip[bcount], DEC); 
        if (bcount<3) Serial.print(".");
     } 

Serial.println();
          //now output HTML data header
             if(readString.indexOf('?') >=0) { //don't send new page
               client.println("HTTP/1.1 204 Zoomkat");
               client.println();
               client.println();  
             }
             else {
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino GET test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

          client.println("<H1>Zoomkat's simple Arduino button</H1>");
          
          client.println("<a href=\"/?on\" target=\"inlineframe\">ON</a>"); 
          client.println("<a href=\"/?off\" target=\"inlineframe\">OFF</a>"); 

          //client.println("<IFRAME name=inlineframe src=\"res://D:/WINDOWS/dnserror.htm\" width=1 height=1\">");
          client.println("<IFRAME name=inlineframe style=\"display:none\" >");          
          client.println("</IFRAME>");

          client.println("</BODY>");
          client.println("</HTML>");
             }

          delay(1);
          //stopping client
          client.stop();

          ///////////////////// control arduino pin
          if(readString.indexOf("on") >0)//checks for on
          {
            digitalWrite(5, HIGH);    // set pin 5 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off") >0)//checks for off
          {
            digitalWrite(5, LOW);    // set pin 5 low
            Serial.println("Led Off");
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}