ESP8266 Not Working Properly

I honestly haven't a clue

but try this code I stole mostly from Martyn Currey

const int LED = 13;
String IncomingString;
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(6, 7); // RX | TX
//int rc = 0;
void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);     // communication with the host computer
  //while (!Serial)   { ; }

  // Start the software serial for communication with the ESP8266
  ESPserial.begin(115200);

  Serial.println("");
  Serial.println("Remember to to set Both NL & CR in the serial monitor.");
  Serial.println("Ready");
  Serial.println("");
  ESPserial.println("AT+GMR");
  // delay(1000);
  // rc = ESPserial.read();
  // Serial.println(rc);
  //  delay(1000);
  //  ESPserial.println("AT+CIFSR");
  //  delay(1000);
  //  ESPserial.println("AT+CIFSR");

}


void loop()
{

  boolean StringReady = false;

  while (ESPserial.available()) {
    IncomingString = ESPserial.readString();
    StringReady = true;

    if (StringReady) {
      Serial.println("Received String: " + IncomingString);

      if (IncomingString.indexOf("CIFSR") != -1) {
        digitalWrite(LED, HIGH);
        Serial.println(IncomingString);
      }
      if (IncomingString.indexOf("GMR") != -1) {
        digitalWrite(LED, LOW);
      }
    }
  }
  // listen for communication from the ESP8266 and then write it to the serial monitor
  if ( ESPserial.available() )   {
    Serial.write( ESPserial.read() );
  }

  // listen for user input and send it to the ESP8266
  if ( Serial.available() )       {
    ESPserial.write( Serial.read() );
  }

}

include the LED for debugging, then change AT+CIFSR to AT+CWJAP="SSID","password"
and again move Rx and Tx The \ backslashes necessary

EDIT: I used String variables, I know senior members say "NO STRING VARIABLES", but it works