user23643: At first, I sorry if I make some English faults but I'm French. 
So, I'm making a connection between a client and an Arduino Uno. I receive all data that I need but when I send a response to my client some characteres are lost. 
I receive this format : GET /?b=7&p=100$ (for exemple)
And my Arduino sends this to my client : GET /?b=7&p=1d
This is the function where I get all data from my client : 
void read_data(int *state, int *progress_program){
  // Check if there is a client
  EthernetClient client = server.available();
  if (client) {
    url = "";
    index = 0;
    Serial.println("\nnew client");
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.println(c);
       if(c != '$') { // if end of char
          url[index] = c;
          index++;
        } else {
          url[index] = '\0';
          int i;
         Serial.print("\n");
          for(i=0;i<index;i++)
            Serial.print(url[i]);
          if(interpret(state, progress_program)){
            action();
            delay(100);  
          }
          answer(client);
          break;
        }
      }
    }
    url[0] = '\0';
    // give the web browser time to receive the data
    client.stop();
    delay(100);
    Serial.println("\nclient disconnected");
  }
}

And the response sent to the client : 
void answer(EthernetClient client){
  Serial.print("\nResponse"); // debug
  delay(100);
  client.print(url);
  Serial.print("Response Sent");
  delay(100);
}

With client.write(url) there is the same problem.
Have you got a solution? 
thanks

user23643: So, the solution was very simple, 
My pointer "url" received a constant null string with url=""; at the beginning. To initialize a string as null we need to make this : 
 url[0] = '\0';

thanks

23643: <p>At first, I sorry if I make some English faults but I'm French. </p>

<p>So, I'm making a connection between a client and an Arduino Uno. I receive all data that I need but when I send a response to my client some characteres are lost. 
I receive this format : GET /?b=7&amp;p=100$ (for exemple)
And my Arduino sends this to my client : GET /?b=7&amp;p=1d</p>

<p>This is the function where I get all data from my client : </p>

<pre><code>void read_data(int *state, int *progress_program){
  // Check if there is a client
  EthernetClient client = server.available();
  if (client) {
    url = "";
    index = 0;
    Serial.println("\nnew client");
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.println(c);
       if(c != '$') { // if end of char
          url[index] = c;
          index++;
        } else {
          url[index] = '\0';
          int i;
         Serial.print("\n");
          for(i=0;i&lt;index;i++)
            Serial.print(url[i]);
          if(interpret(state, progress_program)){
            action();
            delay(100);  
          }
          answer(client);
          break;
        }
      }
    }
    url[0] = '\0';
    // give the web browser time to receive the data
    client.stop();
    delay(100);
    Serial.println("\nclient disconnected");
  }
}
</code></pre>

<p>And the response sent to the client : </p>

<pre><code>void answer(EthernetClient client){
  Serial.print("\nResponse"); // debug
  delay(100);
  client.print(url);
  Serial.print("Response Sent");
  delay(100);
}
</code></pre>

<p>With client.write(url) there is the same problem.</p>

<p>Have you got a solution? 
thanks</p>
 23643: <p>So, the solution was very simple, 
My pointer "url" received a constant null string with url=""; at the beginning. To initialize a string as null we need to make this : </p>

<pre><code> url[0] = '\0';
</code></pre>

<p>thanks</p>
