2 en 1 – Problemas con if tras registrar en BD + Datos aparecen en Front End

sigo arreglando mi web deprecada, ya inserto datos en la BD con sentencias preparadas. El problema que me está surgiendo es que a pesar de que se realiza la inserción la web me lanza el if de si hubo problemas en el proceso, no se explicarme mejor, pongo código y marco ** el if.

// tras el formulario va este trozo de código  <?php else: ?> <?php  if(insertarReg($  nameValue, $  usernameValue, sha1($  passwordValue), $  emailValue)):?> <div class="container clearfix"> <h2>registro correcto</h2> <p>gracias por registrarse</p> <p>hemos enviado un email a <span style="color:brown"><?php echo $  emailValue; ?></span> para activar su cuenta. Revise su bandeja de spam.</p>  // la funcion de enviar email está en la página funciones <?php mailActivacion($  emailValue, $  username, $  url); ?> <div style="font-color: red"> <ul> <li>Name: <?php $  nameValue; ?></li> <li>Username: <?php $  usernameValue; ?></li> <li>Password: <?php $  passwordValue; ?></li> <li>Email: <?php $  emailValue; ?></li> </ul>  <?php else:  ?> <?php **if ($  respuesta == 1) ?>** <h1 style="font-color: red"> hubo un error en el proceso.</h1> 

Entiendo que debería lanzarme el pero aparece el if ($ respuesta == 1) ?> Por cierto, un notice me dice que la variable $ respuesta no está definide (undefined)

Lo mas curioso es que me muestra todos los campos de la tabla en el front end, sospecho que viene de por aquí.

    //Comprobamos si todo ha ido bien if($  name != "error" && $  username != "error" && $  password1 != "error" && $  password2 != "error" && $  email1 != "error"){    if($  existusername == "error"){ $  existeU = 1;    } if($  existEmail == "error"){ $  existeE = 1;    } if (!$  existeU && !$  existeE){ $  status = 1; } } } ?> <?php  if(!isset($  status)): ?> 

$ status me imprime los datos de los usuarios registrados en el front end. No se donde tocar, arreglar esto, ¿alguna pista? gracias.

Control calefacción central. 2 sensores DHT, 3 relés de control. Problemas con código

Antes de nada, dar las gracias a tod@s aquell@s que dediquen un rato a ayudarme.

El tema es que hace tiempo comencé a montarme un termostato con arduino partiendo de cero, y en unos meses lo conseguí, hay que decir que de programación ando mal, y de electrónica algo mejor, finalmente me conseguí fabricar mi PCB, subir todo el código a un NODEMCU y gestionar la caldera desde el teléfono móvil, todo un logro para mí.

Pero claro, me emocioné y aprovechando que nos hemos comprado un piso, pues con un par de huev….cableé toda la casa y ahora quiero gestionar la calefacción de forma zonificada. Creía que me iba a costar mucho menos el tema del programa, pero a cada paso que doy, más perdido voy.

Comento, pretendo controlar 3 relés con 2 sensores DHT22, uno por cada zona.

• Problema 1. No consigo averiguar cómo hacer para que cuando un radiador demande calor, estén como estén el resto de relés de los radiadores, el relé de la Caldera siga ON.

• Problema 2. Cuando hago un GET 192.168.30/tempDeseadaDespacho40 consigo que el NODEMCU lo vea, me activa el relé del radiador del Despacho, me activa el relé de la Caldera, pero cuando hago un GET 192.168.1.30/tempDeseadaDespacho00, consigo que el relé del radiador se desactive, pero no el de la Caldera. • Tampoco consigo que los GET se vean reflejados de forma correcta en el navegador web.

#include <FS.h> #include <ESP8266WiFi.h>  #include "ThingSpeak.h"  #include <DHT.h> #include <WiFiManager.h> #include <ArduinoJson.h> #include <ESP8266mDNS.h> #include <DNSServer.h> #include <ESP8266WebServer.h> #include <WiFiClient.h> #include <WiFiServer.h> #define DHTTYPE DHT11 #define DHTTYPE DHT22 #include <DoubleResetDetector.h> #include <LiquidCrystal_I2C.h> #include <Wire.h>  #define DRD_TIMEOUT 10 #define DRD_ADDRESS 0  #define DHTPINDespacho 10 //_____________________________________________PONER PATILLA #define DHTPINSalon  4//_________________________________________________PONER PATILLA   const int releCaldera = 2; //Pin al que está conectado el rele de salida (PINOUT)  const int releDespacho = 12; //Pin al que está conectado el rele de salida del radiador del Despacho (PINOUT) const int releSalon = 15; //Pin al que está conectado el rele de salida del radiador del Salon (PINOUT)    float histeresis = 1; static unsigned long last_loop;  unsigned long int anteriorRefreshDatosDespacho = 0; unsigned long int anteriorRefreshDatosSalon = 0;   float tempDespacho= 0; float tempSalon= 0;  float tempDeseadaDespacho = 00; float tempDeseadaSalon = 00;   int calderaHabilitada; int estadoRele = 0; int contconexion = 0; bool shouldSaveConfig = false; bool initialConfig = false;   DoubleResetDetector drd(DRD_TIMEOUT, DRD_ADDRESS); //Función de doble reset para configurar NODEMCU  LiquidCrystal_I2C lcd(0x27, 16, 2);   DHT dhtDespacho(DHTPINDespacho, DHT22); DHT dhtSalon(DHTPINSalon, DHT22);   WiFiClient client; WiFiServer server(80);  //Parámetros de Thingspeak  const char* serverThingspeak = "api.thingspeak.com"; char  myWriteAPIKey[17] = "0WU6GVSSUPYI8EED"; char  myChannelNumber[11] = "888615";  void saveConfigCallback () { Serial.println("Should save config"); shouldSaveConfig = true;   }   void setup() {    dhtDespacho.begin(); dhtSalon.begin();  delay(10);  Serial.begin(115200); Serial.println();   //Aqui decimos que el rele de la caldera este desconectado pinMode(releCaldera, OUTPUT); digitalWrite(releCaldera, LOW);  pinMode(releDespacho, OUTPUT); pinMode(releSalon, OUTPUT); pinMode(DHTPINDespacho, INPUT); pinMode(DHTPINSalon, INPUT);    Serial.println();  if (WiFi.SSID()==""){     Serial.println("We haven't got any access point credentials, so get them now");        initialConfig = true;     }     if (drd.detectDoubleReset()) {     Serial.println("Doble reset detectado");     initialConfig = true;       }       if (initialConfig) {       Serial.println("Starting configuration portal.");           lcd.clear();           lcd.setCursor(0,0);           lcd.print("INTRODUCIR");           lcd.setCursor(0,1);           lcd.print("USUARIO Y PASS");       WiFiManager wifiManager;       wifiManager.resetSettings();       }        //Leer configuración de Json      Serial.println("mounting FS...");    if (SPIFFS.begin()) {     Serial.println("mounted file system");     if (SPIFFS.exists("/config.json")) {       //file exists, reading and loading       Serial.println("reading config file");       File configFile = SPIFFS.open("/config.json", "r");       if (configFile) {         Serial.println("opened config file");         size_t size = configFile.size();         // Allocate a buffer to store contents of the file.         std::unique_ptr<char[]> buf(new char[size]);          configFile.readBytes(buf.get(), size);         DynamicJsonBuffer jsonBuffer;         JsonObject& json = jsonBuffer.parseObject(buf.get());         json.printTo(Serial);         if (json.success()) {           Serial.println("\nparsed json");            strcpy(myWriteAPIKey, json["myWriteAPIKey"]);           } else {           Serial.println("failed to load json config");         }       }     }   }   WiFiManagerParameter custom_myWriteAPIKey("API-Key", "myWriteAPIKey", myWriteAPIKey, 17);  WiFiManager wifiManager;  //Establecer configuración guardada  wifiManager.setSaveConfigCallback(saveConfigCallback);      IPAddress _ip = IPAddress(192, 168, 1, 30);     IPAddress _gw = IPAddress(192, 168, 1, 1);     IPAddress _sn = IPAddress(255, 255, 255, 0);     wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn);      wifiManager.addParameter(&custom_myWriteAPIKey);      if (!wifiManager.autoConnect()) {       Serial.println("failed to connect and hit timeout");       delay(10);              ESP.reset();       delay(10);       }    //Si has llegado aquí estás conectado a una WIFI   Serial.println("Conectado a una Wifi");           lcd.clear();           lcd.setCursor(0,0);           lcd.print("CONECTANDO...");           delay(20);    //Leer parámetros actualizados      strcpy(myWriteAPIKey, custom_myWriteAPIKey.getValue());       //Guardar los parámetros en FS      if (shouldSaveConfig) {       Serial.println("saving config");       DynamicJsonBuffer jsonBuffer;       JsonObject& json = jsonBuffer.createObject();       json["myWriteAPIKey"] = myWriteAPIKey;            File configFile = SPIFFS.open("/config.json", "w");           if (!configFile) {           Serial.println("failed to open config file for writing");             }       json.printTo(Serial);       json.printTo(configFile);       configFile.close();     //Guardado finalizado     }   Serial.println();   Serial.println("local ip");   Serial.println(WiFi.localIP());   delay(10);}      void refreshDatosDespacho(){  if (millis() > anteriorRefreshDatosDespacho + 20000){     anteriorRefreshDatosDespacho = millis();     float tempDespacho = dhtDespacho.readTemperature();     float humiDespacho = dhtDespacho.readHumidity();       if (isnan(tempDespacho) || isnan(humiDespacho)){        Serial.println("Fallo en lectura de temperatura y humedad del Despacho");       return;}         if (calderaHabilitada = 1){           if (tempDespacho + histeresis >= tempDeseadaDespacho && tempDespacho > 0)  digitalWrite(releDespacho, LOW);         else if (tempDespacho < tempDeseadaDespacho && tempDespacho > 0){          digitalWrite(releDespacho, HIGH);         digitalWrite(releCaldera, HIGH);}       else digitalWrite(releDespacho, LOW);        }                     Serial.println();       Serial.println("Leyendo datos....");       Serial.print("Temperatura deseada: ");       Serial.println(tempDeseadaDespacho);        Serial.print("Temperatura Despacho: ");       Serial.println(tempDespacho);       Serial.print("Humedad Despacho: ");       Serial.println(humiDespacho);             lcd.clear();             lcd.setCursor(0,0);             lcd.print("Temp Despacho: ");             lcd.print(tempDespacho);             lcd.print(" ");             lcd.print((char)223);             lcd.print("C");             lcd.setCursor(0,1);             lcd.print("Hum Despacho:  ");             lcd.print(humiDespacho);             lcd.print(" %");             int estadoRele = digitalRead(releCaldera);       if (estadoRele == LOW){           Serial.print("Estado relé caldera: ");             Serial.println("LOW");           lcd.setCursor(15,0);           lcd.print(" ");                     } else {                     Serial.print("Estado relé caldera: ");                       Serial.println("HIGH");                     lcd.setCursor(15,0);                     lcd.print("C");                     }                        // Start the server     ThingSpeak.begin(client);     Serial.println("Cliente thingspeak iniciado");     server.begin();     Serial.println("Server iniciado");     Serial.println(myWriteAPIKey);     Serial.println("local ip");     Serial.println(WiFi.localIP());     delay(10);     ThingSpeak.setField(1, tempDespacho);     //ThingSpeak.setField(2, humiPasillo);      ThingSpeak.setField(6, estadoRele);     //ThingSpeak.setField(4, tempDeseadaDespacho);     ThingSpeak.writeFields(String(myChannelNumber).toInt(), myWriteAPIKey);        delay(100);     Serial.println("Enviando datos...");     Serial.println();                  }          }           void refreshDatosSalon(){    if (millis() > anteriorRefreshDatosSalon + 20000){       anteriorRefreshDatosSalon = millis();       float tempSalon = dhtSalon.readTemperature();       float humiSalon = dhtSalon.readHumidity();       if (isnan(tempSalon) || isnan(humiSalon)){        Serial.println("Fallo en lectura de temperatura y humedad del Salon");        return;}         if (calderaHabilitada = 1){           if (tempSalon + histeresis >= tempDeseadaSalon && tempSalon > 0)  digitalWrite(releSalon, LOW);         else if (tempSalon < tempDeseadaSalon && tempSalon > 0){          digitalWrite(releSalon, HIGH);         digitalWrite(releCaldera, HIGH);}       else digitalWrite(releSalon, LOW);        }                Serial.println();       Serial.println("Leyendo datos....");       Serial.print("Temperatura deseada: ");       Serial.println(tempDeseadaSalon);        Serial.print("Temperatura Salon: ");       Serial.println(tempSalon);       Serial.print("Humedad Salon: ");       Serial.println(humiSalon);             lcd.clear();             lcd.setCursor(0,0);             lcd.print("Temp Salon: ");             lcd.print(tempSalon);             lcd.print(" ");             lcd.print((char)223);             lcd.print("C");             lcd.setCursor(0,1);             lcd.print("Hum Salon:  ");             lcd.print(humiSalon);             lcd.print(" %");             int estadoRele = digitalRead(releCaldera);       if (estadoRele == LOW){           Serial.print("Estado relé caldera: ");             Serial.println("LOW");           lcd.setCursor(15,0);           lcd.print(" ");                     } else {                     Serial.print("Estado relé caldera: ");                       Serial.println("HIGH");                     lcd.setCursor(15,0);                     lcd.print("C");                     }   // Start the server     ThingSpeak.begin(client);     Serial.println("Cliente thingspeak iniciado");     server.begin();     Serial.println("Server iniciado");     Serial.println(myWriteAPIKey);     Serial.println("local ip");     Serial.println(WiFi.localIP());     delay(10);     ThingSpeak.setField(3, tempSalon);     //ThingSpeak.setField(2, humiSalon);      //ThingSpeak.setField(3, estadoRele);     //ThingSpeak.setField(4, tempDeseadaSalon);     ThingSpeak.writeFields(String(myChannelNumber).toInt(), myWriteAPIKey);        delay(100);     Serial.println("Enviando datos...");     Serial.println();                  }          }   void loop() {            drd.loop();   refreshDatosDespacho();   refreshDatosSalon();          WiFiClient client = server.available();     if (!client) {         return;             }      // Read the first line of the request   String req = client.readStringUntil('\r');   Serial.println(req);   client.flush();     int  val;          int  valDespacho;        if (req.indexOf("/tempDeseadaDespacho40") != -1){       tempDeseadaDespacho = 40;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho40") != -1){       tempDeseadaDespacho = 22;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho23") != -1){       tempDeseadaDespacho = 23;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho24") != -1){       tempDeseadaDespacho = 24;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho25") != -1){       tempDeseadaDespacho = 25;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho26") != -1){       tempDeseadaDespacho = 26;       valDespacho = 1;       } else if (req.indexOf("/tempDeseadaDespacho00") != -1){       tempDeseadaDespacho = 00;       valDespacho = 0;        } else {       Serial.println("peticion invalida");       client.stop();       return;             }         int  valSalon;        if (req.indexOf("/tempDeseadaSalon40") != -1){       tempDeseadaSalon = 40;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon22") != -1){       tempDeseadaSalon = 22;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon23") != -1){       tempDeseadaSalon = 23;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon24") != -1){       tempDeseadaSalon = 24;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon25") != -1){       tempDeseadaSalon = 25;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon26") != -1){       tempDeseadaSalon = 26;       valSalon = 1;       } else if (req.indexOf("/tempDeseadaSalon00") != -1){       tempDeseadaSalon = 00;       valSalon = 0;        } else {       Serial.println("peticion invalida");       client.stop();       return;             }        calderaHabilitada = val;       client.flush();    // Prepara la respuesta web       String sDespacho = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";   sDespacho += (valDespacho)?"high":"low";   sDespacho += "</html>\n";          String sSalon = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";   sSalon += (valSalon)?"high":"low";   sSalon += "</html>\n";     // Send the response to the client   client.print(sDespacho);   client.print(sSalon);   delay(1);   client.stop();   Serial.println("Client disonnected");   }                                    

Problemas al relacionar 2 campos en odoo 11

estoy desarrollando un modulo en odoo 11 pero he tenido un inconveniente al relacionar unos campos el codigo no me genera un error pero al visualizar en vez de salir el nombre del paciente aparece el nombre de la tabla junto con el id del registro introducir la descripción de la imagen aquí adjunto el codigo que he utilizado

class pacientes(models.Model):     _name ='pacientes' paciente_id = fields.One2many('calendar.event', 'pacientes_ids', 'Citas', required=False, ondelete='cascade')  class citas(models.Model):      _inherit = 'calendar.event'      pacientes_ids = fields.Many2one('pacientes', 'Pacientes:', ondelete='cascade')  <field name="arch" type="xml">        <field name="partner_ids" position="after">                     <field name="pacientes_ids" />        </field> </field> 

Problemas con keypress en un control generado desde una librería propia

Tengo una librería que genera un control de nombre PERICO el cual tiene eventos programados cuando se pulsa una tecla.

Desde un programa, cargo esa librería y genero un control de nombre JUANITO que es del tipo PERICO.

No consigo que el evento keypress en JUANITO haga nada, pasa directamente al keypress de PERICO.

¿Alguna sugerencia?

Muchas Gracias.

P.d. perdón por los nombres de los controles.

Problemas en Laravel usando queue

Estoy teniendo unos problemas en laravel que hasta ahora no he podido resolver. Cuando ejecuto php artisan queue:work tengo el siguiente error:

>[2019-09-22 23:25:20][12] Processing: App\Listeners\WelcomeNewStudentListener > >[2019-09-22 23:25:20][12] Failed:     App\Listeners\WelcomeNewStudentListener 

En mi archivo .env tengo esto:

 APP_NAME=Laravel     APP_ENV=local     APP_KEY=base64:i+VBlcoP1fQodPn+ZV9os2knWv/piI4Gb/TDr0Dmq9U=     APP_DEBUG=true     APP_URL=http://localhost     LOG_CHANNEL=stack      DB_CONNECTION=mysql     DB_HOST=127.0.0.1     DB_PORT=3306     DB_DATABASE=crudAlumnos     DB_USERNAME=root     DB_PASSWORD=12345      BROADCAST_DRIVER=log     CACHE_DRIVER=file     QUEUE_CONNECTION=database     SESSION_DRIVER=file     SESSION_LIFETIME=120      REDIS_HOST=127.0.0.1     REDIS_PASSWORD=null     REDIS_PORT=6379      MAIL_DRIVER=smtp     MAIL_HOST=smtp.mailtrap.io     MAIL_PORT=2525     MAIL_USERNAME=     MAIL_PASSWORD=     MAIL_ENCRYPTION=null      AWS_ACCESS_KEY_ID=     AWS_SECRET_ACCESS_KEY=     AWS_DEFAULT_REGION=us-east-1     AWS_BUCKET=      PUSHER_APP_ID=     PUSHER_APP_KEY=     PUSHER_APP_SECRET=     PUSHER_APP_CLUSTER=mt1      MIX_PUSHER_APP_KEY="$  {PUSHER_APP_KEY}"     MIX_PUSHER_APP_CLUSTER="$  {PUSHER_APP_CLUSTER}" 

En mi EventServiceProvider.php tengo lo siguiente:

 <?php          namespace App\Providers;          use App\Events\NewStudentHasRegisteredEvent;         //use App\Listeners\WelcomeNewStudentListener;         use App\Listeners\RegisterStudentToNewsletter;         //use App\Listeners\NotifyAdminViaSlack;         use Illuminate\Support\Facades\Event;         use Illuminate\Auth\Events\Registered;         use Illuminate\Auth\Listeners\SendEmailVerificationNotification;         use Illuminate\Foundation\Support\Providers\EventServiceProvider as      ServiceProvider;          class EventServiceProvider extends ServiceProvider         {             /**              * The event listener mappings for the application.              *              * @var array              */             protected $  listen = [                 //agregando mi evento                 NewStudentHasRegisteredEvent::class => [                     //aqui se agrega el listener                     \App\Listeners\WelcomeNewStudentListener::class,                     RegisterStudentToNewsletter::class,                     \App\Listeners\NotifyAdminViaSlack::class,                 ],             ];              /**              * Register any events for your application.              *              * @return void              */             public function boot()             {                 parent::boot();                  //             }         } 

Y finalmente en mi WelcomeNewStudenListener.php

 <?php      namespace App\Listeners;      use App\Mail\WelcomeNewUserMail;     use Illuminate\Contracts\Queue\ShouldQueue;     use Illuminate\Support\Facades\Mail;      class WelcomeNewStudentListener implements ShouldQueue     {      //ESTE ES EL LISTENER         /**          * Handle the event.          *          * @param  object  $  event          * @return void          */         public function handle($  event)         {             //             sleep(10); //10 seconds              Mail::to($  event->datosEnviar->email)->send(new      WelcomeNewUserMail());         }     } 

Adicionalmente tengo la tabla jobs y failed_jobs en mi base de datos.

Hasta ahora no he podido resolver este problema usando queue:work. Tambien he utilizado queue:work en el background, pero sigue dandome errores a la hora de llenar un formulario y al terminar de llenarlo, se deberia mandar un correo despues de 10 segundos, pero en ese transcurso de 10 segundos obtengo error en queue:work como lo mencioné anteriormente.

Problemas para cargar autoload.php en dompdf y jasperreports php

¿No se que hago mal? Tengo poca experiencia usando composer y no consigo cargar proyectos que hacen referencia a vendor/autoloader.php.

Siempre tengo el mismo error en todos los proyectos que lo intento: Warning: require(C:\xampp\htdocs\vhosts[…]\vendor\composer/../../src/functions-dev.php): failed to open stream: No such file or directory in C:\xampp\htdocs\vhosts[…]\vendor\composer\autoload_real.php

Llevo una semana intentando evolucionar en este error pero lo cierto es que estoy a punto de tirar la toalla y buscar alternativas.

Si alguien me puede apuntar hacia la solución correcta a mí error, se lo agradecería enormemente. ¡¡Mí frustración es mayúscula!!

¡¡GRACIAS DE ANTEMANO!!

Entorno XAMPP con PHP 7.2.7

Problemas con sweetalert2 – Angular // A rest parameter must be of an array type

Date: 2019-09-23T14:48:08.494Z - Hash: 1d5dfacd2a56d00cec4b - Time: 2967ms 

5 unchanged chunks chunk {pages-pages-module} pages-pages-module.js, pages-pages-module.js.map (pages-pages-module) 404 kB [rendered] ℹ 「wdm」: Compiled successfully. ERROR in node_modules/sweetalert2/sweetalert2.d.ts(23,19): error TS2370: A rest parameter must be of an array type. node_modules/sweetalert2/sweetalert2.d.ts(361,41): error TS8020: JSDoc types can only be used inside documentation comments. node_modules/sweetalert2/sweetalert2.d.ts(361,50): error TS8020: JSDoc types can only be used inside documentation comments. node_modules/sweetalert2/sweetalert2.d.ts(361,59): error TS8020: JSDoc types can only be used inside documentation comments.