Errore MySQL: l’utente specificato come definitore (‘xyz’@’localhost’) non esiste

Obiettivi del blog

Per informazioni su come risolvere il problema “L’utente specificato come definitore (‘xyz’@’localhost’) non esiste” in MySQL. Può essere qualsiasi valore al posto di ‘xyz’.

Questo errore si è verificato perché hai definito utenti diversi in Definer e hai utilizzato altri account in MySQL.

Quindi, durante la creazione di Trigger, dovresti usare “root@localhost” nel Definer. Seguire i passaggi seguenti per risolvere questo errore:

Passo 1: Apri phpMyAdmin

Passo 2: Seleziona il database e la tabella

Passo 3: Clicca sul “Trigger” scheda dalla parte superiore della pagina

Passo 4: Clicca sul “Modifica” per modificare i trigger.

Passo 5: Cambia Definer da xyz@localhost a root@localhost

Per maggiori dettagli controlla questo screenshot:

L'utente specificato come definitore ('xyz'@'localhost') non esiste

Errore GitAhead: tutti i file modificati non vengono selezionati dal pulsante 'Stage All'

Obiettivi del blog

Per informazioni su come selezionare i file modificati da distribuire sul server utilizzando GitAhead. Generalmente, facendo clic sul pulsante "Seleziona tutto" tutti i file modificati selezionati e il pulsante "Seleziona tutto" vengono disabilitati automaticamente. Ma per alcuni file, non verrà selezionato e se provi a farlo manualmente non ti lascerà fare. E mostrerà anche quei file come "parzialmente in scena". Puoi vedere nello screenshot qui sotto:

Per risolvere questo problema è necessario seguire i passaggi seguenti:

Passo 1: Fare clic con il tasto destro su tutto quel file e fare clic su "Unset Executable" come mostrato nello screenshot seguente:


Passo 2: Ora fai clic sul pulsante "Stage All" e ora metterà in scena tutti i file. Ora sarai in grado di eseguire correttamente il commit sul server.


Errore HubBox: _messageErrorTemplate non è una funzione

Dichiarazione problema

Durante la ricerca dell'indirizzo errato nel popup HubBox, non viene visualizzato alcun messaggio di errore. Se selezionato sulla console, viene visualizzato un errore del tipo "_messageErrorTemplate non è una funzione“.

Soluzione

L'errore: "_messageErrorTemplate non è una funzione"sta arrivando perché questa funzione non è dichiarata come funzione nella libreria HubBox.


Per risolvere questo problema è necessario apportare alcune modifiche nella libreria di HubBox:

È necessario apportare modifiche nei due file seguenti:

1. \ HubBox \ Java \ src \ principali risorse \ \ static \ index.html
2. \ HubBox \ Java \ out \ production \ resources \ static \ index.html In questi file, cerca il codice seguente:

var _messageErrorTemplate = Moustache.render (_messageError || ""); var _messageWarning = $ (selectors.messages.warning) .html (); var _messageWarningTemplate = Moustache.render (_messageWarning || "");

e sostituiscilo con il codice seguente:

var _messageErrorTemplate = function () {return Moustache.render (_messageError || ""); }; var _messageWarning = $ (selectors.messages.warning) .html (); var _messageWarningTemplate = function () {return Moustache.render (_messageWarning || ""); };

Dichiarando "_messageErrorTemplate'E'_messageWarningTemplate'come funzione, ora riceverai un messaggio di errore durante la ricerca di un indirizzo errato nel popup HubBox.


How to set Cookie using JavaScript

Obbiettivo: Per informazioni su come creare e leggere il cookie utilizzando JavaScript. Il cookie è una piccola porzione di dati che viene salvata sul dispositivo dell'utente dal sito Web. È utile per memorizzare qualsiasi dato per identificare l'utente o per tracciare l'utente. Quando l'utente visita di nuovo il sito Web, i dati memorizzati possono essere letti facilmente.

Passo 1: per impostare il cookie sul dispositivo dell'utente

Con la funzione createCookie (), è possibile creare facilmente il cookie passando il nome, il valore (i dati che si desidera memorizzare) e la data di scadenza.

function createCookie (name, value, days) {if (days) {var date = new Date (); date.setTime (date.getTime () + (days * 24 * 60 * 60 * 1000)); var expires = '; expires =' + date.toGMTString (); } else {var expires = ''; } // impostazione cookie document.cookie = nome + '=' + valore + scadenza + '; path = / '; }

Step2: per leggere il cookie

Puoi facilmente leggere il cookie utilizzando la funzione sottostante fornendo il nome del cookie.

function readCookie (name) {var nameEQ = name + '='; // legge il cookie var ca = document.cookie.split (';'); // elaborazione per ottenere il contenuto per (var i = 0; i <ca.length; i ++) {var c = ca [i]; while (c.charAt (0) == '') {c = c.substring (1, c.length); } if (c.indexOf (nameEQ) == 0) {// restituisce il contenuto effettivo restituisce c.substring (nameEQ.length, c.length); }} restituisce null; }

esempio: Esempio per memorizzare il nome utente nel cookie.

if (cookies == 'yes') {jQuery ('document'). ready (function () {// reding cookie var cook = readCookie ('YourWebsite'); if (cook! = 'true') {// calling per creare il cookie se non trovato createCookie ('YourWebsite', 'user_name = akash', 30);}}); }

Puoi vedere il cookie memorizzato nella console del browser:

Dipendenza: Per eseguire l'esempio è necessario includere il file js min jquery. Per questo, è possibile utilizzare sotto la riga di codice.

<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"> </ script>


Namespace in PHP

Obbiettivo: Per sapere come possiamo usare lo stesso nome della classe in PHP usando namespace. Generalmente non possiamo usare due o più classi con lo stesso nome. Darà un errore: "Impossibile redeclare la classe" come mostrato di seguito-

Per gestirlo, possiamo usare lo spazio dei nomi come mostrato nell'esempio seguente: 1. Definire il namespace Demo1 con la classe Student nel Demo1 / Student.php

<? php namespace Demo1; classe Student {// Tutto il codice sarà qui per questa classe var $ a = 10; }?>

2. Definizione dello spazio dei nomi Demo2 con classe Student (classe con lo stesso nome) in Demo2 / Student.php

<? php namespace Demo2; classe Student {// Tutto il codice sarà qui per questa classe var $ a = 20; }?>

3. Ora nel file di esempio index.php, siamo in grado di utilizzare entrambe le classi senza errori:

<? php // che include entrambe le classi di studenti richiedono "Demo1 / Student.php"; richiede "Demo2 / Student.php"; // creazione di un'istanza di Demo1 \ Student () $ Student1 = new Demo1 \ Student (); // utilizzando la funzionalità di prima classe echo $ Student1-> a. '<br>'; // creando un'altra istanza di Demo2 \ Student () $ Student2 = new Demo2 \ Student (); // utilizzando la funzionalità di seconda classe echo $ Student2-> a;

Schermo di uscita:

10
20

Entrambe le classi avranno funzionalità diverse e saremo in grado di utilizzare entrambe le classi in un singolo file facilmente.

Nota: Possiamo rendere il codice più semplice usando la funzione PHP use ():

utilizzare Demo1 \ Studente come Student1; $ Student1 = new Student1 (); echo $ Student1-> a. '<br>'; utilizzare Demo2 \ Studente come Student2; $ Student2 = new Student2 (); echo $ Student2-> a;

Struttura del file:

index.php
Demo1 / Student.php
Demo2 / Student.php

Articolo correlato:Caricamento automatico in PHP


Auto Loading in PHP

Obbiettivo: Per sapere come possiamo utilizzare qualsiasi istanza di classe senza includere il file di classe. In generale, se vogliamo utilizzare l'istanza di qualsiasi classe, per prima cosa dobbiamo includere il file di classe con una qualsiasi delle funzioni 4:

  1. includere
  2. include_once
  3. richiedere
  4. require_once

Come sotto,

// incluso tutte le classi richiedono "classes / Testing1.php"; richiede "classes / Testing2.php"; // ora usando la funzionalità della classe $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;

Ma se ci sono molte classi che vogliamo usare, dovremo includere tutti i file per poter creare l'istanza della classe. Supponiamo che se ci sono centinaia di classi dovremo includere tutto e ci vorrà molto tempo e spazio. Per superare questo, possiamo usare il seguente codice:

function auto_loader ($ class) {$ file = "classes / {$ class} .php"; // percorso di tutte le classi // questo controllerà se il file esiste se (is_file ($ file)) {// infine se il file esiste allora includerà il file include $ file; }} // Per registrare auto_loader () per chiamare questa funzione in modo sequenziale quando viene dichiarata una nuova classe spl_autoload_register ("auto_loader"); // ora usando la funzionalità della classe $ testing1 = new Testing1; echo $ testing1-> a; $ testing2 = new Testing2; echo $ testing2-> a;

Utilizzando il codice precedente, la classe richiesta verrà inclusa automaticamente durante l'utilizzo della classe. Non includerà altre classi che non sono richieste. Struttura del file:

classi index.php / Testing1.php classes / Testing2.php


HubBox Error: Bad Response Code

Dichiarazione problema: Errore nella risposta dell'API di autenticazione di HubBox ie. "Errore ABox HubBox: codice di risposta errato”

Soluzione: ? If you are facing issue as shown below while you are checking Authentication API, it may be because of Authentication API is verifying SSL certificate for connection.

Per questo, è possibile disattivare la verifica SSL nella richiesta CURL aggiungendo le righe sottostanti.

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false);

Apporta la modifica alla richiesta di ricciolo dell'API di autenticazione nella funzione refreshToken () su HubBox / PHP / HubBox / Authentication.php come mostrato di seguito:

$ ch = curl_init (); $ post_string = http_build_query ($ fields); curl_setopt ($ ch, CURLOPT_URL, $ endpoint); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ post_string); curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-type: application / x-www-form-urlencoded')); curl_setopt ($ ch, CURLOPT_USERPWD, $ this -> _ magento_user. ":". $ this -> _ magento_key); curl_setopt ($ ch, CURLOPT_VERBOSE, 1); curl_setopt ($ ch, CURLOPT_HEADER, 1); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); $ output = curl_exec ($ ch); $ header_size = curl_getinfo ($ ch, CURLINFO_HEADER_SIZE); $ httpcode = curl_getinfo ($ ch, CURLINFO_HTTP_CODE); $ body = substr ($ output, $ header_size); curl_close ($ ch);

Se questo è il problema, è necessario aggiungere queste righe in tutte le API di HubBox Crea pacco, Annulla pacco, Aggiungi tracciamento e API Collectpoint come descritto di seguito.

Crea API parc: Apporta la modifica alla richiesta di arricciatura di Create Parcel API nella funzione sendOrder () su HubBox / PHP / HubBox / Parcel.php come mostrato di seguito:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ this-> getOrderUrl ()); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ body); curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-type: application / json', 'Authorization: Bearer'. $ token, 'Content-Length:'. strlen ($ body))); curl_setopt ($ ch, CURLOPT_VERBOSE, 1); curl_setopt ($ ch, CURLOPT_HEADER, 1); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); $ output = curl_exec ($ ch); $ header_size = curl_getinfo ($ ch, CURLINFO_HEADER_SIZE); $ body = substr ($ output, $ header_size); $ httpCode = curl_getinfo ($ ch, CURLINFO_HTTP_CODE); curl_close ($ ch);

Annulla API Parcel: Apporta la modifica alla richiesta di arricciatura di Cancel Parcel API nella funzione cancelOrder () su HubBox / PHP / HubBox / Parcel.php come mostrato di seguito:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ this-> getCancelUrl ($ hubBoxParcelId)); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ postBody); curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-type: application / json', 'Authorization: Bearer'. $ token, 'Content-Length:'. strlen ($ postBody))); curl_setopt ($ ch, CURLOPT_VERBOSE, 1); curl_setopt ($ ch, CURLOPT_HEADER, 1); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); $ output = curl_exec ($ ch); $ header_size = curl_getinfo ($ ch, CURLINFO_HEADER_SIZE); $ body = substr ($ output, $ header_size); $ httpCode = curl_getinfo ($ ch, CURLINFO_HTTP_CODE); curl_close ($ ch);

Aggiungi API di monitoraggio: Apporta la modifica alla richiesta di arricciatura dell'API di aggiunta traccia nella funzione addTracking () su HubBox / PHP / HubBox / Parcel.php come mostrato di seguito:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ this-> getTrackingUrl ($ hubBoxParcelId)); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ postBody); curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-type: application / json', 'Authorization: Bearer'. $ token, 'Content-Length:'. strlen ($ postBody))); curl_setopt ($ ch, CURLOPT_VERBOSE, 1); curl_setopt ($ ch, CURLOPT_HEADER, 1); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); $ output = curl_exec ($ ch); $ header_size = curl_getinfo ($ ch, CURLINFO_HEADER_SIZE); $ body = substr ($ output, $ header_size); $ httpCode = curl_getinfo ($ ch, CURLINFO_HTTP_CODE); curl_close ($ ch);

API Collectpoint: Apporta la modifica alla richiesta di arricciatura dell'API Collectpoint nella funzione getCollectPoint () su HubBox / PHP / HubBox / CollectPoints.php come mostrato di seguito:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ this-> getCollectPointUrl (). '/'. $ id); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-type: application / json')); curl_setopt ($ ch, CURLOPT_VERBOSE, 1); curl_setopt ($ ch, CURLOPT_HEADER, 1); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); // se abbiamo punti di raccolta privati, dobbiamo autenticare la richiesta se ($ this -> _ config-> hasPrivateCps ()) {$ header [] = "Autorizzazione: Bearer". $ This -> _ auth-> getAccessToken (); curl_setopt ($ ch, CURLOPT_HTTPHEADER, $ header); } $ output = curl_exec ($ ch); $ header_size = curl_getinfo ($ ch, CURLINFO_HEADER_SIZE); $ body = substr ($ output, $ header_size); $ httpCode = curl_getinfo ($ ch, CURLINFO_HTTP_CODE); curl_close ($ ch);

Per ulteriori articoli correlati, visita qui: Errore HubBox: dati del prodotto errati nella risposta di Create Parcel API


Errore HubBox: dati del prodotto errati nella risposta di Create Parcel API

Dichiarazione problema:? Wrong product data coming in the response of Create Parcel API of HubBox Sandbox account.

Soluzione: Se si sta affrontando questo problema nell'account sandbox HubBox come mostrato di seguito, è possibile ignorarlo nell'account sandbox poiché funzionerà correttamente nell'account Produzione di HubBox. Invia i dati del prodotto nella richiesta di Create Parcel API:

[order] => Array ([id] => 1234 [prodotti] => Array ([0] => Array ([nome] => Test Item1 [sku] => TEST [prezzo] => 1) [1] => Array ([nome] => Test Item2 [sku] => TEST2 [prezzo] => 12) [2] => Array ([nome] => Test Item3 [sku] => TEST3 [prezzo] => 13 )))

Dati di prodotto ricevuti nella risposta di Create Parcel API:

[order] =&amp;gt; stdClass Object
        (
            [id] =&amp;gt; 1234
            [products] =&amp;gt; Array
                (
                    [0] =&amp;gt; stdClass Object
                        (
                            [sku] =&amp;gt; TEST
                            [name] =&amp;gt; Test Item
                            [price] =&amp;gt; 1
                            [qty] =&amp;gt;  
                            [challenge18] =&amp;gt;  
                            [challenge21] =&amp;gt;  
                            [challenge25] =&amp;gt;  
                            [perishable] =&amp;gt;  
                            [flammable] =&amp;gt;  
                        )
 
                    [1] =&amp;gt; stdClass Object
                        (
                            [sku] =&amp;gt;  
                            [name] =&amp;gt;  
                            [price] =&amp;gt;  
                            [qty] =&amp;gt;  
                            [challenge18] =&amp;gt;  
                            [challenge21] =&amp;gt;  
                            [challenge25] =&amp;gt;  
                            [perishable] =&amp;gt;  
                            [flammable] =&amp;gt;  
                        )
 
                )
 
        )

For related blog please visit here: <a href="https://www.knowband.com/blog/tips/hubbox-error-bad-response-code/" target="_blank">HubBox Error: Bad Response Code</a>


Spring Global (Spring Omni) Errore: la spedizione non è stata registrata

Dichiarazione problema:

La spedizione non viene registrata nel timestamp inviato e nella risposta non viene segnalato alcun errore.

Soluzione:

Abbiamo generato un ticket per lo stesso e hanno risposto che il problema si è verificato perché il parametro email del destinatario non è stato inviato nell'API di spedizione https://api.myparcel.com/shipments

Secondo la documentazione di Spring Omni, questa email è un parametro facoltativo:


Quindi, abbiamo rilanciato di nuovo un biglietto su Spring Omni e hanno risposto: La spedizione non può essere creata a causa dell'indirizzo di posta elettronica del destinatario non inserito. Sebbene, lo schema lo mostri come facoltativo, ma Spring richiede l'indirizzo email in modo che i corrieri possano inviare notifiche al destinatario (se offrono tale servizio

Quindi l'e-mail del destinatario è un parametro obbligatorio in Spring Omni e deve essere inviato nell'API di spedizione. Per altri blog correlati, visita qui:

Spring Global (Spring Omni) Errore: è richiesta la proprietà phone_number

Spring Omni Manifest

Spring Global (Spring Omni): concetto di fatturazione

Spring Global (Spring Omni) Error: Resource Not Found

Spring Global (Spring Omni) Errore: ottenere una risposta vuota durante il recupero dell'etichetta