ENVIO DE DATOS SESSION POR POST. NODE JS MONGODB EJS

Necesito pasar dos parametros. El DNI (con el cual el usuario se registro y el id del candidato al que votó.

La ruta buscada seria como por ejemplo:

http://localhost:3000/api/DNI/ID-CANDIDATO


Acá genere el formulario que enviara estos dos datos. Probe enviando el ID del candidato y anda perfecto. Me faltaria poder enviar el parametro DNI con el cual se logueo el usuario. Tenia pensado capturarlo de los datos de la sesion pero no se de que forma y si es la mas conveniente.

                <% locals.candidatos.forEach((item) => { %>                      <li class="col-12 col-md-6 col-lg-3">                         <div class="cnt-block equal-hight" style="height: 349px;">                             <img class="img img-fluid d-block mx-auto rounded img-thumbnail" src="<%= item.foto %>">                             <h3>                                 <%= item.nombreApellido %>                             </h3>                             <p>                                 <%= item.partido %>                             </p>                              <form id="formulario" action="/api/votapi/<%= item._id %>" method="POST">                                 <ul class="follow-us clearfix">                                     <button type="submit" class="btn btn-primary btn-block text-uppercase mb-2 rounded-pill shadow-sm" type="text">VOTAR</button>                                 </ul>                          </div>                     </li>                     <% }); %>                          </form> 

Desde la API lo quiero trabajar de esta manera ya que luego de recibir los datos del POST, por un lado incremento en 1 el voto al candidato elegido y por el otro modifico el booleano (por defecto en false) para convertirlo en true. Y asi usarlo para chequear si X usuario ya votó.

<!-- API --> routerApi.post('/:id', function(req, res, next) {     if (req.params.id) {         console.log(req.params.user.id);         Candidato.update({ _id: req.params.id }, { $  inc: { votos: 1 } }, { safe: true },             function(err, response) {                 if (err) return res.status(500).send(error);                 if (response) {                     User.updateOne({ dni: req.session.user.dni }, { $  set: { voto: true } }, { safe: true },                         function(err, response) {                             if (err) return res.status(500).send(error);                             if (response) {                                 res.status(200).redirect('/resultados');                                 console.log('Voto exitoso!')                             }                          });                 } else {                     res.status(500).send(new Error("No se pudo votar"));                  }             });     } });  <!-- Fin API --> 

Gracias de antemano. Saludos

Envío de JSON con fetch y recibida en php sin FormData

Muy buenas noches compañeros, mi siguiente inquietud es como puedo recibir un JSON pasado por el body de fetch de JavaScript en PHP y validar en la respuesta de texto que llegaron cada uno de sus indices con sus respectivos valores.

Petición dirigida hacia el controlador

function ensayar() { let objeto = {     "nombre": "Jean Carlo",     "apellido": "Castaño Millan",     "Telefono": 31222020 }; fetch('http://localhost:/AgroVirtual/Enrutador/ensayando', {     method: 'POST',     body: JSON.stringify(objeto) })     .then(function (response) {         return response.text();     })     .then(function (data) {         console.log(data);     })     .catch(function (error) {         console.error(error);     }) } 

Controlador desde el backend procesando la petición

 public function ensayando(){     $  datos = json_decode($  _POST, true);     print_r($  datos); } 

Resultado esperado

stdClass Object ( [nombre] => Jean Carlo [apellido] => [telefono] =>                Castaño Millan [Telefono] => 31222020  )  

Realmente esta es la respuesta que deseo, que mi JSON me retorne en el response text que se transformo en un objeto nativo de PHP para poder seguir trabajando con el posteriormente desde el backend.

Nota: Esto antes lo lograba de igual forma con XmlHttprequest, pero me cambie a fetch y ese es el unico obstaculo que he tenido por el momento.

Evitar Duplicidad en envio de datos AJAX

La verdad, mis conocimientos en JS y Ajax no son muy grandes y por ello recurro a ustedes. Mi problema radica en un script o funcion que envia una variable para la impresion POS. Trabajo actualmente con Datatables, Ajax, PHP y Mysql.

En mi datatables, tengo lo siguiente:

{ "sClass": "alignRight", 'data' : null, 'render': function (data, type, row, meta) {   var idv = row['id'];   var comanda = row['comanda'];   var comanda_bar = row['comanda_bar'];   var estado = row['estado'];    if (comanda === 'S' && estado === 'S' && comanda_bar === 'N'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }else if (comanda === 'N' && estado === 'S' && comanda_bar === 'S'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }   }   } 

Lo que hago basicamente ahi es ver hacia donde imprime dependiendo de las condicionales (si imprime ticket al bar o a la cocina).

La funcion que envia los datos es la siguiente:

function individual(){  $  (".acciones").attr('onclick','').unbind('click');  $  (document).on('click', '.acciones', function(e) {   var idv = this.id;   $  .ajax({   data: {"dato" : idv},   url: 'individual.php',   type: 'POST',   success: function (response) {   } });   e.preventDefault();   e.stopPropagation();   return false;  }); } 

Hasta ahi, todo bien. Imprime correctamente los tickets hacia el bar o cocina. El problema es que cuando imprimo mas de una vez, salen 2 impresiones, es como si quedara un contador que va incrementandose cada vez que se presiona el boton de impresion.

Alguien tiene alguna idea de que puede ser o como puede arreglarse o bien me orienten a como hacerlo? Agradezco como siempre, la ayuda que me pudisien entregar. Saludos.

¿Para qué sirve; cómo funciona y que uso puedo darle al envío de “this” como argumento?

Entre tanto hacía practicas de la teoría aprendida; me tuve por hecho de modo que continué con mis estudios hasta dar con un tópico en el cual se postulaba el envío de la palabra reservada “this” con la finalidad de transferir un objeto actual a otro método. Lo cual me generó más preguntas que respuestas; por lo tanto recurro a su ayuda.

  • Primero antes que nada quisiera saber como es posible el funcionamiento de este procedimiento. Infiriendo, si estoy correcto; sería como una especie de puntero.

  • También, me ayudaría mucho si me dan una aplicación adecuada de esta técnica y situaciones en las que sea necesaria su uso.

Sitios web en los que se evidencian su empleo

http://xahlee.info/java-a-day/this.html (Última parte)

https://www.javatpoint.com/this-keyword (Cuarto enunciado)

Saludos,

Steven

como envio para outro pagina a partir de botao desconfigurado?

nao estou conseguindo! tenho este botao que salvei do meu site antigo.. alguem consegue me dar uma luz?

minha estrutura html e a seguinte:

    <div data-js="shipping-options-region" class="shipping-options-container">             <section data-js="shipping-options-group-0" class="delivery-options"><div><div class="shipping-options-group"> <h3 class="block-title">!!!!</h3> <div class="shipping-options-list-container">     <ul class="cart-package__options ui-list__content ui-list " data-js="shipping-options-list"><li class="ui-list__item ui-list__item--selected"><form data-id="shipping-option-104830550300001"   data-state="selected" data-js="shipping-option-form" class="shipping-option-form" method="post">  <button type="submit"  name="selectedShippingOption" >      <div class="cart-package__option-button u-ripple-effect--active u-ripple-effect" >         <div class="cart-package__shipping-box">             <div class="cart-package__shipping-header">                 <div data-id="shipping-option-name" class="cart-package__shipping__title">                     clique aqui!                 </div>                     <p class="cart-package__shipping__info cart-package__shipping__info-inline">                       imperdivel    </p>             </div>             <span class="cart-package__shipping-price">                 <span class="cart-package__shipping-price-container">                         <span data-id="shipping-option-price-free" class="shipping-option-price price-free   u-link     "> 

no se ejecuta un envio de datos de un formulario

hola estoy tratando de guardar los datos de un formulario HTML básico en mi base de datos, en el primer código podrán ver cómo accedo al valor de los inputs del formulario y en el segundo como los envió a la base de datos el problema radica en que no me da errores ni nada de hecho no me guarda los datos en la base de datos,el segundo código utilizando esa condicional descubrí que no se esta ejecutando alguien sabe cual podrías ser el error ya busque en varias paginas pero ninguna me da una respuestas.

estoy trabajando bajo MVC, si necesitan mas codigo me lo indican y lo agrego Gracias

/*============================================= 			CREACION DE USUARIO 	=============================================*/ 	public static  function ctrCrearUsuario(){ 		if (isset($  _POST["nuevoUsuario"])) { 				 if(preg_match('/^[a-zA-Z0-9ñÑáéíóúÁÉÍÓÚ ]+$  /', $  _POST["nuevoNombre"]) &&    preg_match('/^[a-zA-Z0-9]+$  /', $  _POST["nuevoUsuario"]) &&    preg_match('/^[a-zA-Z0-9]+$  /', $  _POST["nuevaContraseña"])){ 			                    $  tabla = "usuarios";                    $  datos = array("nombre"=>   $  _POST["nuevoNombre"],                    	          "usuario" => $  _POST["nuevoUsuario"],                    	          "password"=> $  _POST["nuevaContraseña"], 				  "perfil"  => $  _POST["nuevoPerfil"]);                              $  respuesta =ModeloUsuarios::mdlIngresarUsuarios($  tabla, $  datos);                                        if ($  respuesta==="ok"){                         echo "guardado"                    }

 public static function mdlIngresarUsuarios($  tabla, $  datos){  	$  stmt = Conexion::conectar()->prepare("INSERT INTO $  tabla(nombre, usuario, password, perfil, foto) VALUES (:nombre, :usuario, :password, :perfil, :foto)");  	$  stmt->bindParam(":nombre", $  datos["nombre"], PDO::PARAM_STR); 	$  stmt->bindParam(":usuario", $  datos["usuario"], PDO::PARAM_STR); 	$  stmt->bindParam(":password", $  datos["password"], PDO::PARAM_STR); 	$  stmt->bindParam(":perfil", $  datos["perfil"], PDO::PARAM_STR); 	$  stmt->bindParam(":foto", $  datos["foto"], PDO::PARAM_STR);     if ($  stmt->execute()) {        return "ok";    }    else{        return "error";    }   	$  stmt->close(); 	 	$  stmt = null;  }

ENVIO DE MAILS GMAIL – HEROKU

Expected response code 250 but got code “530”, with message “530-5.5.1 Authentication Required. Learn more at 530 5.5.1

Tengo problemas con envio de mail desde el servidor Heroku. desde localhost, los envia perfectamente. Aqui esta mi .ENV

MAIL_DRIVER=smtp   MAIL_HOST=smtp.gmail.com   MAIL_PORT=587   MAIL_USERNAME=mi@mail.com   MAIL_PASSWORD="xxxxxxxx"   MAIL_ENCRYPTION=tls 

ya intente con MAIL_DRIVER=sendmail en MAIL_PORT= y no funcionó.

Puede que tenga algo pendiente de configurar en HEROKU? MUCHAS GRACIAS!

Tempo de envio de dados

Estou a desenvolver uma pequena estação de meteorologia para aplicar num terreno agricola, que consiste em ter um sensor de temperatura, um sensor de chuva e um sensor de humidade este a incoporar mais tarde pois ainda não o tenho. No entanto queria pôr a enviar os dados de temperatura com um delay de 600000ms e que o sensor de chuva tivesse um delay de 1000. Não estou ver a forma como faze-lo. O que fiz de código até agora é o seguinte:

#include <ESP8266WiFi.h> #include <PubSubClient.h> #include <Wire.h> #include <farmerkeith_BMP280.h>  int rainSensor = A0; int rainLED = 2; int dryLED = 3; int sensorVal; int sensortrigger = 350; /*    Conexao ao AP    Credenciais de acesso    SSID - Nome do AP de acesso    Password - Passsword de acesso */ #define wifi_ssid "xxxxxxxx" #define wifi_password "xxxxxxxxx" /*    Endereço IP do MQTT Broker (Mosquitto) */ #define mqtt_server "192.168.1.10" /*    Definição dos tópicos dos dados dos sensores */ #define bmp_temperature_topic "temperaturebmp" #define bmp_pressure_topic "pressurebmp" #define rain_sensor_topic "rainstate"  /*    Inicialização das classes */ WiFiClient espClient; PubSubClient client(espClient); bmp280 bmp0;  void setup() {   Serial.begin(115200);   pinMode(rainSensor, INPUT);   pinMode(rainLED, OUTPUT);   pinMode(dryLED, OUTPUT);   digitalWrite(rainLED, LOW);   digitalWrite(dryLED, LOW);   setup_wifi();   client.setServer(mqtt_server, 1883);   bmp0.begin(); } void setup_wifi() {   delay(10);   /*      Inicio de conexão á rede Wi-Fi   */   Serial.println();   Serial.print("Connecting to ");   Serial.println(wifi_ssid);   WiFi.begin(wifi_ssid, wifi_password);   while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(".");   }   Serial.println("");   Serial.println("WiFi connected");   Serial.println("IP address: ");   Serial.println(WiFi.localIP()); }  void reconnect() {   /*    *Loop de reconexão até que se conecte na rede Wi-Fi e no MQTT Broker    */   while (!client.connected()) {     Serial.print("Attempting MQTT connection...");     // Attempt to connect     // If you do not want to use a username and password, change next line to     // if (client.connect("ESP8266Client")) {     if (client.connect("changeMe")) {       Serial.println("connected");     } else {       Serial.print("failed, rc=");       Serial.print(client.state());       Serial.println(" try again in 5 seconds");       // Wait 5 seconds before retrying       delay(5000);     }   } } void loop() {   if (!client.connected()) {     reconnect();   }   client.loop();   // Segundos de espera entre medidas        int sensorVal = analogRead(rainSensor);       if (sensorVal < sensortrigger) {         Serial.println("Rain");         digitalWrite(dryLED, LOW);         digitalWrite(rainLED, HIGH);         client.publish(rain_sensor_topic, String("Raining").c_str(), true);       }       else {         Serial.println("Not Rain");         digitalWrite(rainLED, LOW);         digitalWrite(dryLED, HIGH);         client.publish(rain_sensor_topic, String("Not Raining").c_str(), true);       }       // Leitura da temperatura e pressão       double temperature = bmp0.readTemperature (); // measure temperature       Serial.print("Temperature = ");       Serial.print(temperature, 3); // print with 3 decimal places       Serial.println( " degrees Celsius");       client.publish(bmp_temperature_topic, String(temperature).c_str(), true);        double pressure = bmp0.readPressure (); // measure pressure       Serial.print("Atmospheric pressure = ");       Serial.print(pressure, 4); // print with 4 decimal places       Serial.println( " mbar");       client.publish(bmp_pressure_topic, String(pressure).c_str(), true);       delay(2000); } 

Envio de formulário não envia cópia para usuário [pendente]

Tenho um formulário onde o envio precisa ir com cópia para o endereço digitado no campo [e-mail]. Segue o PHP de envio.

<?php  //Variáveis  $  empresa = $  _POST['empresa']; $  cnpj = $  _POST['cnpj']; $  ramodeatividade = $  _POST['ramodeatividade']; $  logradouro = $  _POST['logradouro']; $  numero = $  _POST['numero']; $  complemento = $  _POST['complemento']; $  bairro = $  _POST['bairro']; $  cep = $  _POST['cep']; $  cidade = $  _POST['cidade']; $  nome = $  _POST['nome']; $  telefone = $  _POST['telefone']; $  telefone2 = $  _POST['telefone2']; $  email = $  _POST['email']; $  data_envio = date('d/m/Y'); $  hora_envio = date('H:i:s');  <html> <div class='titulo'> <h2>Que legal. Olha abaixo a confirmação do seu contato.</h2>     <p><b>Empresa:</b> $  empresa</p>     <p><b>CNPJ:</b> $  cnpj</p>     <p><b>Ramo de Atividade:</b> $  ramodeatividade</p>     <p><b>Logradouro:</b> $  logradouro</p>     <p><b>Número:</b> $  numero</p>     <p><b>Complemento:</b> $  complemento</p>     <p><b>Bairro:</b> $  bairro</p>     <p><b>CEP:</b> $  cep</p>     <p><b>Cidade:</b> $  cidade</p>     <p><b>Nome:</b> $  nome</p>     <p><b>Telefone Principal:</b> $  telefone</p>     <p><b>Telefone Secundário:</b> $  telefone2</p>     <p><b>E-mail:</b> $  email</p>      <div class='rodape'>     <h5>E agora?</h5>     <h6>Agora é só esperar que um de nossos consultores entrará em contato.             <h6>      <p>Este e-mail foi enviado em <b>$  data_envio</b> às <b>$  hora_envio</b></p>     </div>  </div> </html> ";  //enviar  // emails para quem será enviado o formulário $  emailenviar = "contato@meusite.com.br"; $  destino = $  emailenviar; $  assunto = "Pedido de Cadastro";  // É necessário indicar que o formato do e-mail é html $  headers  = 'MIME-Version: 1.0' . "\r\n";   $  headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";   $  headers .= 'From: contato@meusite.com.br, <$  email>' . "\r\n";  $  enviaremail = mail($  destino, $  assunto, $  arquivo, $  headers); if($  enviaremail){ echo "<script>window.location='contrate.php';alert('$  nome, sua mensagem foi enviada com sucesso! Estaremos retornando em breve');</script>"; }   ?> 

PHP Mailer, preciso de LOG de envio

Estou com o seguinte problema: Não consigo enviar email. Meu sistema de email é da uolhost. Eu utilizo o PHPMailer para enviar email automático para clientes. Neste Email tem texto na mensagem e sempre dois anexos. Quando eu tento enviar email eu tenho este retorno:

SMTP -> ERROR: DATA not accepted from server: 550 5.7.1 Message rejected as spam by content filtering. See http://www.uolhost.uol.com.br/faq/email-profissional/meus-e-mails-estao-sendo-bloqueados-o-que-fazer.html 

Eu acessei o link acima li tudo e fiz conforme está na política deles, retirei todos os links e imagens linkadas no email e meus anexo não possuem .exe. Porém, continua bloqueado MESMO ELES SOLICITANDO DESBLOQUEIO.

Eu entrei em contato com eles novamente e eles disseram que agora só conseguem verificar se eu enviar um log do envio do meu email. Eles pediram especificamente UML (que eu entendi por UMLog).

O código que eu estou utilizando é este:

#Inclui o arquivo class.phpmailer.php         require("class.phpmailer.php");          #Inicia a classe PHPMailer         try {          $  mail = new PHPMailer(true);          include('conecta.php');         $  rEmail = mysql_query("Select * from certificadodigital");         $  cEmail = mysql_fetch_array($  rEmail);          #Define os dados do servidor e tipo de conexão             $  mail->IsSMTP(); // Define que a mensagem será SMTP             $  mail->Host = $  cEmail['host']; // Endereço do servidor SMTP             $  mail->SMTPAuth = true; // Autenticação             $  mail->Username = $  cEmail['email']; // Usuário do servidor SMTP             $  mail->Password = $  cEmail['senhaemail']; // Senha da caixa postal utilizada             $  mail->SMTPDebug = 1;             /*$  mail->DEBUG_OFF(1);             $  mail->DEBUG_CLIENT(1);             $  mail->DEBUG_SERVER(2);             $  mail->DEBUG_CONNECTION(3);             $  mail->DEBUG_LOWLEVEL(4);*/          $  rConsEmpresa = mysql_query("Select * from aempresa");         $  ConsEmpresa = mysql_fetch_array($  rConsEmpresa);          #Define o remetente             $  mail->From = $  cEmail['email'];              $  mail->FromName = $  ConsEmpresa['nome'];          if($  nfce) {             $  notacanc['cod_fornecedor'] = $  ConsNota['cod_fornecedor'];             $  _POST['mail'] = $  cCl[1];             $  tipo_ambiente = $  ambiente;         }          $  rConsCliente = mysql_query("Select * from clientes where codigo='".$  notacanc['cod_fornecedor']."'");         $  ConsCliente = mysql_fetch_array($  rConsCliente);          //Verifico se o Cliente tem email cadastrado senão não envio email                   //if($  ConsCliente['email']){          #Define os destinatário(s)              //echo " >> " . $  _POST['mail'];              $  mail->AddAddress($  _POST['mail']);         #   $  mail->AddAddress('e-mail@destino2.com.br');          //if($  cAmbiente['emailcopia']) $  mail->AddCC($  cAmbiente['emailcopia'], 'Copia');                   //$  mail->AddBCC('leo.tecla@hotmail.com', 'Copia Oculta');          #Define os dados técnicos da Mensagem             $  mail->IsHTML(true); // Define que o e-mail será enviado como HTML             $  mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)            #Texto e Assunto               $  mail->Subject  = $  cEmail['titulo']; // Assunto da mensagem               $  mail->Body ="apenas texto aqui";           include('conecta.php');           if(!$  nfce) {               $  rConsNota = mysql_query("Select * from nota_saida where codigo='".$  _POST['cod_nota']."'");               $  ConsNota = mysql_fetch_array($  rConsNota);                $  dataemissao = substr($  ConsNota['dataemissao'],0,6);           }           #Anexos (opcional)           if($  Tipo_Exportacao == 'xml') {               $  mail->AddAttachment("./backup/xml/nfe/".$  tipo_ambiente."/enviadas/aprovadas/".$  dataemissao."/$  chave-protNFe.xml", "$  chave.xml");               $  mail->AddAttachment("./backup/xml/nfe/".$  tipo_ambiente."/pdf/201605/$  chave-danfe.pdf", "$  chave.pdf");               } else {               $  mail->AddAttachment("./backup/nfe/".$  tipo_ambiente."/autorizadas/$  chave.xml", "$  chave.xml");               $  mail->AddAttachment("./backup/nfe/".$  tipo_ambiente."/danfe/$  chave.pdf", "$  chave.pdf");              }           #Envio da Mensagem           $  enviado = $  mail->Send();            #Limpa os destinatários e os anexos           $  mail->ClearAllRecipients();           $  mail->ClearAttachments(); 

Num resumo, envio texto e dois anexo. PDF E XML.

Em minha pesquisa encontrei este site: https://github.com/PHPMailer/PHPMailer/wiki/SMTP-Debugging

O que eu preciso é:
Como adaptar meu código para que eu possa colocar esses códigos?
DEBUG_OFF(1);
DEBUG_CLIENT(1);
DEBUG_SERVER(2);
DEBUG_CONNECTION(3);
DEBUG_LOWLEVEL(4);

OU como eu poderia ter acesso ao cabeçalho de envio dos meus emails a partir do PHPMailer?

Porque a hospedagem de email quer saber QUEM está bloqueando meu email. Se seria a SpamHaus, ou outra coisa, por exemplo