Adruino Web Server with Motors control

Hi Guys, i’m new to Arduino and require some advise on my project.
I’m currently working on a project which require me to control varies type of motor etc(Servo, Stepper & DC motor) via web browser. But currently i had an issue that i’m only able to control 1 type a motor at a time. Once i input all 3 types of codes together, it seem not working. Im using Arduino UNO, Arduino Ethernet shield & Adafruit motor shieldV2.3 on this project. I need some advise. my source code are attached below.

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h> //Servo Motor Library
//Include Adafruit DCmotor lib
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"

/**********************************************************************************************************************
*                                   Assign Motor types variable
***********************************************************************************************************************/
// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61); 

// Select which 'port' M1, M2, M3 or M4. In this case, M3
Adafruit_DCMotor *myMotor = AFMS.getMotor(1); //DC motor on M3 port
// You can also make another motor on port M2
//Adafruit_DCMotor *myOtherMotor = AFMS.getMotor(2);

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotorStepper = AFMS.getStepper(200, 2);//Stepper use M3 & M4

//Servo motor
Servo myservo;  // create servo object to control a servo 
                // twelve servo objects can be created on most boards
int pos = 0;    // variable to store the servo position

/**********************************************************************************************************************
*                                   MAC address and IP address.
***********************************************************************************************************************/
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x02 }; //physical mac address
byte ip[] = { 192, 168, 1, 176 }; // ip in lan (that's what you need to use in your browser. ("192.168.1.178")
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask


/**********************************************************************************************************************
*                                                        Shared variable
***********************************************************************************************************************/
EthernetServer server(80); //server port
String readString="";


void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

/**********************************************************************************************************************
*                                        start the Ethernet connection and the server:
***********************************************************************************************************************/
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());

/**********************************************************************************************************************
*                                        Include DCmotor setup
***********************************************************************************************************************/

AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
  
  // Set the speed to start, from 0 (off) to 255 (max speed)
  myMotor->setSpeed(40);
  //myMotor->run(FORWARD);
  //turn on motor
  myMotor->run(RELEASE);
  
  myMotorStepper->setSpeed(30);//Stepper Speed
  
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object, Adafruit on Servo 2
}


/**********************************************************************************************************************
*                                                           Main loop
***********************************************************************************************************************/
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.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("<meta name='apple-mobile-web-app-capable' content='yes' />");
//client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("<TITLE>Max Liew Dc Motor Control Webserver </TITLE>");
client.println("</HEAD>");

client.println("<BODY style='background-color:lightgrey'>");
client.println("<H1 style='color:#333399 text-align:center'>Max Liew Dc Motor Control Webserver </H1>");
client.println("<hr />");

client.println("<H2 style=\"text-align:center\">Arduino with Ethernet Shield & Adafruit Motor Shield</H2>");

//DC Motor
client.println("<H2>DC Motor</H2>");
client.println("<input type=button value=Forward onmousedown=\"location.href='/?button2Forward'\"></input>&nbsp");
client.println("<input type=button value=Backward onmousedown=\"location.href='/?button2Backward'\"></input>&nbsp");       
client.println("&nbsp;<input type=button value='STOP' onmousedown=\"location.href='/?button2Stop'\"></input>
"); 

//Stepper Motor
client.println("<H2>Stepper Motor</H2>");
client.println("<input type=button value=Forward onmousedown=\"location.href='/?Fsingle'\"></input>&nbsp");
client.println("<input type=button value=Backward onmousedown=\"location.href='/?Bsingle'\"></input>
");       
//client.println("&nbsp;<input type=button value='STOP' onmousedown=\"location.href='/?button2Stop'\">
"); 

//Servo Motor
client.println("<H2>Servo Motor</H2>");client.println("
");
client.println("<input type=button value=Left onmousedown=\"location.href='/?Fleft'\"></input>&nbsp");
client.println("<input type=button value=Right onmousedown=\"location.href='/?Fright'\"></input>
");   

client.println("</BODY>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();

//controls the Arduino if you press the buttons
if (readString.indexOf("?button2Forward") >0){
  delay(15);
myMotor->run(FORWARD);//Motor will rotate forward
}
if (readString.indexOf("?button2Backward") >0){
delay(15);
myMotor->run(BACKWARD);//Motor will rotate backward
}

if (readString.indexOf("?button2Stop") >0){
delay(15);
myMotor->run(RELEASE);//Motor will STOP
}
//Stepper motor

if (readString.indexOf("?FSingle") >0){
  delay(15);
  myMotorStepper->step(100,FORWARD, SINGLE);
}
if (readString.indexOf("?BSingle") >0){
  delay(15);
  myMotorStepper->step(100,BACKWARD, SINGLE);
}
//Servo
if (readString.indexOf("?Fright") >0){
   for(pos ; pos < 180; pos += 3) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}}
if (readString.indexOf("?Fleft") >0){
  for(pos ; pos>=1; pos-=3) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}}

readString="";//clearing string for next read
}
}
}
}
}

& Adafruit motor shieldV2.3 on this project.

A link would be useful.

I'm going to guess that the problem is that the shield expects to be able to use pins 11 and 12, which it will not be able to, since the Ethernet shield uses those pins.