#urlencoder
Explore tagged Tumblr posts
Text
Simplify Your Encoding Needs with Our URL Encode Tool!
Coding and need to encode a URL? Our URL Encode tool has got you covered! Enter your URL, press encode, and let the magic happen. Streamline your workflow with this hassle-free tool.
0 notes
Text
What is the definition of a PHP encoded string?
The definition of a PHP encoded string is a string that has been processed or manipulated using PHP, often for purposes like encryption, serialization, or encoding special characters for safe data transmission and storage.
Base64 Encoding: PHP can encode data into a base64 string, which is a common method for encoding binary data into a text string. For example:Original Binary Data: Hello, World!Base64 Encoded String: SGVsbG8sIFdvcmxkIQ==
URL Encoding: PHP can encode special characters in a URL to ensure they are transmitted and processed correctly. For example:Original URL: https://example.com/search?q=white&blackURL Encoded String: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dwhite%26black
HTML Encoding: PHP can encode characters to their HTML entities to prevent cross-site scripting (XSS) vulnerabilities. For example:Original HTML: <script>alert("Hello, World!");</script>HTML Encoded String: <script>alert("Hello, World!");</script>
JSON Encoding: PHP can encode data into a JSON string, which is commonly used for data exchange between a server and a web application. For example:Original Data: {"name": "John", "age": 30}JSON Encoded String: {"name": "John", "age": 30}
#PHP#EncodedStrings#DataEncoding#WebDevelopment#Programming#Base64#URLEncoding#HTMLEncoding#JSONEncoding#PHPDevelopment#DataSecurity#WebDev#Tech#Coding#DataProtection#DataTransmission
1 note
·
View note
Photo
Hinge presents an anthology of love stories almost never told. Read more on https://no-ordinary-love.co
850 notes
·
View notes
Link
Online URL Encoder / Decoder
0 notes
Note
Olá, boa tarde. Por favor, você poderia fazer um tutorial ensinando como compartilhar posts do tumblr para outros sites? E que dê pra customizar os ícones, como os que vc usa no Anyh'sTheme? Seu tumblr é maravilhoso. Estou fazendo um theme do zero e aqui está me ajudando muito. Tenha um 2024 maravilhoso.
Oi! Fico feliz em estar ajudando, obrigada! 💕
Pra fazer os botões de compartilhamento que eu uso, eu fui literalmente atrás do link de compartilhamento de cada rede social que eu incluí ali. Eu fui pesquisando no Google "facebook share button", "whatsapp share button" e etc. Daí peguei o link de compartilhamento de cada um, personalizei com as tags do Tumblr, peguei os ícones do FontAwesome e fiz os botões dentro do theme utilizando HTML e CSS.
Mas alguns deles devem não estar funcionando mais devido a algumas mudanças recentes no código dos posts do Tumblr e também à mudanças recentes em algumas dessas redes sociais (como o Twitter, que mudou de nome e ícone). Então eu teria que resolver isso primeiro e eu ando com muito pouco tempo livre no momento, por isso talvez eu demore pra conseguir postar um tutorial detalhado e bem organizado. Mas pra te dar um empurrãozinho, vou te dar um exemplo...
Ah, e você vai precisar incluir as tags do link, título, descrição ou imagem do post nas URLs de compartilhamento. Pra isso você vai precisar entender um pouco de como usar variáveis em URLs.
Aqui vai um exemplo utilizando o link de compartilhamento do Blogger (que até a última vez que eu chequei ainda estava funcionando)... Esse é o link para compartilhar no Blogger:
https://www.blogger.com/blog-this.g?u={Permalink}?spref=bl&n={block:PostSummary}{URLEncodedPostSummary}{/block:PostSummary}&t={block:Text}{URLEncodedBody}{/block:Text}{block:Answer}{URLEncodedQuestion}{Name} respondeu:{URLEncodedAnswer}{/block:Answer}
Explicando:
Ali, na frente de "u=" deve ir a URL do link permanente do post, então eu usei a tag {Permalink};
Na frente de "n=" deve ir o título do post, então eu utilizei a tag {PostSummary} que retorna um resumo do post (com "URLEncoded" na frente, pra evitar que acentos e caracteres especiais façam o link bugar), caso ele não tenha título;
E na frente de "t=" deve ir o conteúdo do post, então eu utilizei a tag {Body} e também {Question} e {Answer}, pra quando o post for um post de Ask (mais uma vez com "URLEncoded" na frente das tags, pra evitar que o link bugue).
Você pode usar esse link e testar pra entender melhor como funciona.
OBS: Lembrando que essas tags do Tumblr são para os posts, então só funcionam dentro de {block:Post}{/block:Post}. Então o código dos seus botões de compartilhamento devem estar em algum lugar entre {block:Post} e {/block:Post} no HTML do seu tema, ou as tags não irão funcionar.
Claro que esse é apenas o link de compartilhamento do Blogger, os de outras redes sociais serão diferentes, mas é basicamente isso... Cada um vai ter suas variáveis que você vai precisar preencher com as tags corretas dos posts do Tumblr.
~ x ~
Espero ter ajudado em algo. Mas qualquer coisa é só ir pesquisando no Google e conferindo as tags do Tumblr que você pode usar lá na Documentação sobre Temas.
Tenha um ótimo 2024 você também! 😊
13 notes
·
View notes
Text
Listenansichten in FileMaker optimieren/ PHP und FileMaker
Listenansichten in FileMaker optimieren Nach einigen Jahren und vielen 1000 Datensätzen die neu ins FileMaker-System gekommen sind, war es soweit. Eine spürbare Verschlechterung der Performance beim Aufbau einer extrem komplexen Listenansicht. Diese Ansicht enthält sehr viele Sortierungen, diverse bedingte Formatierungen zum Ein und Ausblenden von Symbolen, Farbgebung etc. Wenn jetzt noch jemand per VPN auf die Datenbank zugreifen wollte, so konnte es einige Zeit dauern bis die Arbeitsfähigkeit hergestellt war. Dabei wurde die Struktur schon ohne Formeln entwickelt. Die schnellste und effektivste Lösung. Alles wird über ein WebViewer abgewickelt. Betritt der User das Listen-Layout wird ein Serverscript gestartet, sammelt alle FileMaker Daten und überträgt diese dann an ein PHP-Script. Bruchteile später, steht die Liste schon zum arbeiten bereit. Da die Liste nur mit Java-Script arbeitet, sind alle Aktionen sehr schnell. Die Daten werden mithilfe eines FileMaker-Skripts vorbereitet und mit Insert from URL an eine PHP-Datei auf dem Server geschickt. Der Request erfolgt als klassischer application/x-www-form-urlencoded-POST-Aufruf. Der Server nimmt die Daten entgegen, bereinigt sie, zerlegt ggf. Pipe-getrennte Listen, und speichert sie in einem assoziativen Array zur weiteren Verarbeitung.
<?php // Daten säubern function cleanData($value) { return trim($value); } // Pipe-Werte aufspalten (z. B. '4711|4712|4713') function processPipeSeparatedValues($value) { return array_map('trim', explode('|', $value)); } // POST-Verarbeitung starten if ($_SERVER['REQUEST_METHOD'] === 'POST') { $postData = array_map('cleanData', $_POST); // Weiterverarbeitung folgt... } ?>
Auf der FileMaker-Seite wird der Post so aufbereitet Das PHP-Skript erzeugt eine strukturierte HTML-Tabelle, die über CSS und JavaScript erweitert wird. Sticky-Header, Hover-Effekte, Icons, Kartenintegration, alles dabei. Dank JavaScript lassen sich die Einträge mit einem Klick sortieren. Nach PLZ, Straße oder Kategorie. Auch Gruppierungen sind möglich, z. B. nach Stadtvierteln oder Bezirken, die dynamisch über Google Maps Geocoding ermittelt werden.
function sortByPLZ() { const table = document.querySelector("table"); const tbody = table.querySelector("tbody"); const rows = Array.from(tbody.querySelectorAll("tr")); // Entferne alte Gruppenköpfe document.querySelectorAll(".plz-header").forEach(row => row.remove()); // Sortiere Zeilen nach PLZ (Spalte 12, also index 12) rows.sort((a, b) => { const plzA = a.cells[12].textContent.trim(); const plzB = b.cells[12].textContent.trim(); return plzA.localeCompare(plzB, "de", { numeric: true }); }); // Neue Gruppierung einfügen let currentPLZ = ""; rows.forEach(row => { const plz = row.cells[12].textContent.trim(); if (plz !== currentPLZ) { currentPLZ = plz; const headerRow = document.createElement("tr"); headerRow.className = "plz-header"; const headerCell = document.createElement("td"); headerCell.colSpan = row.cells.length; headerCell.textContent = "PLZ: " + plz; headerRow.appendChild(headerCell); tbody.appendChild(headerRow); } tbody.appendChild(row); }); }
In dieser Ansicht wird unter anderem die Entfernung zu den nächsten Standorten ermittelt. Nach erfolgter Sortierung ist es sehr schnell möglich Aufträge zu verketten bei minimierter Fahrzeit. In dieser Ansicht aber nur berechnet über die Haversinsche Formel. Aber es ist ein extrem schneller Anhaltspunkt um Aufträge in Gruppen zusammenzufassen. Besonders charmant: Das ganze geht auch über die Google Maps API. Die Ansicht dann über Google Maps. Über das InfoWindows-Fenster lassen sich unendlich viele Informationen einblenden. In meinem Fall kann aus dieser Perspektive schon die Tourenzusammenstellung erfolgen. Es wird die Arbeitszeit ermittelt und kenntlich gemacht. Eine implementierte Fahrzeiten-Anzeige hat sich für Berliner-Verhältnisse als Unsinnig herausgestellt. Zu viele Verkehrsänderungen, zu viel Stau, in diesem Fall bedarf es der Erfahrung von Mitarbeitern und Disponenten. Wichtig, ist natürlich auch die Sequentielle-Suche. Diese kann natürlich wie schon einmal berichtet, auch in normalen FileMaker-Listen, Anwendung finden. Eine klassische FileMaker angelehnte Suche fehlt natürlich auch nicht. Hier lassen sich verschieden Kriterien verbinden und ermöglichen eine flexible Suche, ähnlich der klassischen FileMaker-Suche. Das ich im Regelfall innerhalb von FileMaker immer Arbeitslayouts nutze, die im Hintergrund bei -30000 Pixel arbeiten, kann ich aus dem WebViewer heraus, alle FileMaker Script nutzen, die im Vorfeld genutzt wurden. Sie bekommen die Parameter in einer etwas anderen Form, meist als Liste. Somit ist der Aufwand auf der FileMaker-Seite überschaubar. Fehlerbehandlung und Fallbacks Natürlich kann nicht immer alles glattlaufen, etwa wenn der Server nicht erreichbar ist oder die Daten aus FileMaker unvollständig übertragen werden. Für diesen Fall habe ich einen einfachen Mechanismus eingebaut. Wenn keine oder fehlerhafte Daten ankommen, zeigt das Skript entweder eine Hinweisbox oder einen minimalen Fallback-Inhalt an. Dabei ist es wichtig, am Anfang der Datei gleich zu prüfen, ob zentrale POST-Werte gesetzt wurden. Gerade bei VPN-Nutzern oder instabilen Mobilverbindungen ist das hilfreich, der Nutzer bekommt sofort Rückmeldung, statt auf eine leere Seite zu starren.
if (!isset($_POST['touren']) || empty($_POST['touren'])) { die("<div class='error'>Keine Daten empfangen. Bitte erneut versuchen.</div>"); }
Unterschied zwischen FileMaker-Client und Server Eine kleine, aber entscheidende Stolperfalle hat mich bei diesem Projekt einige Nerven gekostet. Während der gesamte Aufbau der Liste über den FileMaker Pro Client reibungslos funktionierte, lief das gleiche Script nicht mehr, wenn es über ein Server-Script (FileMaker Server) angestoßen wurde. Die WebViewer-Seite blieb leer. Kein Fehler, kein Hinweis, einfach nichts. Nach längerer Analyse stellte sich heraus, die Anzahl und Verschachtelungen der DOM-Elemente war der Grund. Im Client lief das Rendering noch sauber durch, aber der FileMaker Server scheint bei der Generierung und Übergabe des WebViewers, speziell in Kombination mit „Insert from URL“ -> WebViewer -> HTML-Rendering, empfindlicher zu reagieren. Besonders bei vielen verschachtelten div-Containern, Tabellen-Inlays und Icon-Ebenen war Schluss. Die Lösung war eher pragmatisch als elegant, ich habe den DOM deutlich verschlankt, viele dekorative Elemente entfernt oder durch schlankere Varianten ersetzt. Statt
mit drei Ebenen für Rahmen, Schatten und Hover, verwende ich jetzt.
<tr class="hover"> <td>4711</td> <td>Berlin</td> <td>…</td> </tr>
Und auch bei Zusatzinfos im InfoWindow der Google Maps Ansicht wurde auf alles Überflüssige verzichtet. Das Resultat, die Darstellung läuft jetzt reibungslos auch bei serverseitiger Übergabe, ohne dass der WebViewer hängen bleibt oder gar leer bleibt. Was bleibt nach dieser Umstellung? Ganz klar, die WebViewer-Lösung ist ein echter Gamechanger für große, komplexe Listenansichten in FileMaker. Die Performance ist kaum vergleichbar mit der klassischen Layoutdarstellung, besonders dann, wenn Sortierungen, Gruppierungen und visuelle Hilfsmittel wie Karten gebraucht werden. Eine HTML-Tabelle mit JavaScript schlägt hier jedes FileMaker-Layout um Längen.
0 notes
Text
0 notes
Photo
Hinge presents an anthology of love stories almost never told. Read more on https://no-ordinary-love.co
2K notes
·
View notes
Text
How to Send Form Data Using Axios Post Request in React

Many developers use React, a leading programming language for app development. Industry leaders prefer React for cross-platform application development. A proper understanding of React and the library is essential to work well for the project. If you want to handle react project properly, you can hire react developer and finish the task.
As a React developer, sending form data to a server in react with the Axios. Processing axios is an important javascript library. It is the best way to make HTTP requests from a browser or nodejs. Individuals must understand how to use the Axios to make a post request and send form data.
About Axios:
Axios acts as an HTTP client for JavaScript that works in browser and node.js. It is an easy-to-use and lightweight library that delivers the perfect interface for HTTP requests. Axios can build on top of XMLHttpRequest API and fetch API.
On the other hand, it supports promise API and intercepts responses. Axios is responsible for transforming requests, canceling requests, and response data. It is excellent for changing JSON data and provides client-side support to safeguard from the XSRF. It supports browsers like Safari, Mozilla Firefox, Google Chrome, Edge, and IE.
Form data:
Form data is the encoding type that transfers to the server for processing. Other encoding types can be utilized for non-file transfer like plain, text, application/x-www-form-urlencoded, and a lot more. React developer helps you in sending form data in react projects with Axios.
If form-data lets files to include in form data, plain or text propel data as plain text without encoding. It is applicable for debugging and not for production. Application/x-www-form-urlencoded instructs data as a query string. Encoding type can be included in HTML with enctype attribute.
Send form data in the Axios request:
Sending form data in the React app to the server is an important task among many developers. Axios is an important library for making HTTP requests quickly in React. You can understand the important process of sending form data in the react project using Axios.
While using Axios, developers easily make post requests and set the data they wish to send as a request body. If you carry out this process, you can utilize the Axios.post() method that acquires two arguments. It obtains arguments like server URL and data you need to send.
FormData object joins two fields with matching values. It makes HTTP requests to specific URLs with a FormData object. It uses them as a request body and sets the content-type header to multipart or form data.
Once the request is successful, the response can log into the console. If the request is abortive, the error response can log to the console. Using Axios in the project requires installing Axios first. You can install it with the proper command.
Launch react project:
Whether you have a project already, you don’t need to launch. If you don’t have any projects on your device, you can create them first.
You can open a terminal and run the required command.
npx create-react-app axios-form
Once project creation is over, you can go to the project directory.
Install axios:
To use Axios for post requests in the React project, you must install it properly. You can use the following command to install the Axios.
npm install axios
After successfully installing the Axios, you can carry out sending the form data in a project with the Axios post request.
Create form component:
When it comes to the React project, you must make a new component for form. You can name it and save it with .js
// src/Form.js
import React, { useState } from ‘react’;
import axios from ‘axios’;
function Form() {
const [formData, setFormData] = useState({
name: ‘’,
email: ‘’,
});
const handleChange = (e) => {
const { name, value } = e.target;
setFormData({ …formData, [name]: value });
};
const handleSubmit = async (e) => {
e.preventDefault();
try {
const response = await axios.post(‘YOUR_API_ENDPOINT’, formData);
console.log(‘Form data submitted successfully:’, response.data);
} catch (error) {
console.error(‘Error submitting form data:’, error);
}
};
return (
<form onSubmit={handleSubmit}>
<label>
Name:
<input
type=”text”
name=”name”
value={formData.name}
onChange={handleChange}
/>
</label>
<br />
<label>
Email:
<input
type=” email”
name=” email”
value={formData.email}
onChange={handleChange}
/>
</label>
<br />
<button type=”submit”>Submit</button>
</form>
);
}
export default Form;
In this component, you can label the form with two input fields. You can utilize the useState hook to deal with form data. Axios is ideal for making the post request when the form submits successfully.
Import and apply form component:
After creating the form component, you need to import and apply the form component to the project.
// src/App.js
import React from ‘react’;
import Form from ‘./Form’;
function App() {
return (
<div className=”App”>
<h1>React Form with Axios POST Request</h1>
<Form />
</div>
);
}
export default App;
Replace your_api_endpoint:
In the form component, you can replace your_api_endpoint with the actual endpoint. It is easy to send the form data in a project and complete them easily
Run React application:
After the above step is over, it is time to run the React application with the following command like
npm start
React application is running and allows you to access it in the browser. You can fill out the form and click the submit button. You must view the form data that is sent to a specified API endpoint in the browser console. You can try the necessary steps for the form data sending in the project utilizing the Axios post request.
Conclusion:
Overall, the above details are useful to understand the process of sending the form data in react with Axios. With the help of a hire react expert, you can get the proper guidance and support to handle this process.
Experts assist you in integrating the form component with the server-side endpoint and dealing with the data effectively in a project. Axios makes a form data sending process in the react app development project. So, you can work with the skilled and knowledgeable react expert and obtain an ideal solution for challenges.
The React Company : Empowering Developers in React Technology.
Don’t Hesitate to Get in Contact for More Info.
#hire react developer#React Development Services#React js development services#hire react js engineers#react js experts
0 notes
Text
Tools and Libraries for URL Encoding/Decoding?
Understanding URL encoding and decoding is essential if you’re building a web application or simply working with web data. There are handy tools and libraries available to simplify this process.
URL encoding is the process of converting characters into a format that can be transmitted over the internet. This is particularly important when dealing with special characters that have specific meanings in URLs, such as spaces or ampersands. On the other hand, URL decoding is the reverse process – converting encoded characters back to their original form.
Understanding URL Encoding and Decoding
Before delving into the tools and libraries, let’s grasp the basics of URL encoding and decoding.
Imagine you have a URL like this:https://www.example.com/search?q=url+decoder
In this URL, the space between “url” and “decoder” needs to be represented in a way that won’t break the URL structure. This is where encoding comes into play. The space is encoded as “%20“, so the URL becomes:https://www.example.com/search?q=url%20decoder
URL decoding, on the other hand, does the reverse operation. It takes “%20” and converts it back to a space.
Tools for URL Encoding/Decoding
Now, let’s explore some tools and libraries that make URL encoding and decoding a breeze:
URL Decoder/Encoder Websites:
Several online tools allow you to encode or decode URLs instantly. Simply paste your URL into the tool, and it will do the job for you. Examples include URL Decoder and URL Encoder.
Programming Libraries:
For developers, various programming languages provide built-in functions or libraries for URL encoding and decoding.
For instance, in Python, the urllib.parse module offers functions like quote() for encoding and unquote() for decoding URLs.
In PHP, there is methods are called urlencode() and urldecode() that you can use to encode/decode the URL.
Browser Developer Tools:
Most modern web browsers come with developer tools that include URL decoding functionality. These tools are handy for debugging and inspecting URLs directly within the browser.
Conclusion
URL encoding and decoding are fundamental concepts in web development, ensuring that URLs remain valid and functional.
Handling URLs has never been easier with these URL Encoder and URL Decoder tools and libraries available in programming languages.
0 notes
Text
How to send post body using restTemplate as x-www-form-urlencoded

0 notes
Photo
Hinge presents an anthology of love stories almost never told. Read more on https://no-ordinary-love.co
2K notes
·
View notes
Text
urllib – How to urlencode a querystring in Python? Python 2
What youre looking for is urllib.quote_plus:
safe_string = urllib.quote_plus(string_of_characters_like_these:$#@=?%^Q^$) #Value: string_of_characters_like_these%3A%24%23%40%3D%3F%25%5EQ%5E%24
Python 3
In Python 3, the urllib package has been broken into smaller components. Youll use urllib.parse.quote_plus (note the parse child module)
import urllib.parse safe_string = urllib.parse.quote_plus(...)
You need to pass your parameters into urlencode() as either a mapping (dict), or a sequence of 2-tuples, like:
>>> import urllib >>> f = { eventName : myEvent, eventDescription : cool event} >>> urllib.urlencode(f) eventName=myEvent&eventDescription=cool+event
Python 3 or above
Use:
0 notes
Text
0 notes
Text
00001
POST /dashboard/ HTTP/1.1 Host: appsgeyser.com Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8 Content-Length: 993 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Cookie: mv_segment=1; publisher_guid=3cc98ac9-c06e-4c73-8c72-16ee838860b2; _ga=GA1.2.1868722821.1630635407; _ym_uid=1630635410730593246; _ym_d=1630635410; G_ENABLED_IDPS=google; _fbp=fb.1.1630635423199.854879146; categorySelected=business; publisher_id=8107851; newWidget=1; tourShown-premium=0; __stripe_mid=a1c4b78c-c737-4284-a9e6-1eca363c5a8ede3de9; tourShown=0; showlevelup=2; mission_57_8107851=1; _gid=GA1.2.1431217998.1631258302; _ym_isad=2; APSGEYSERSITE=vn5b5mgne59d9ea30kto3n7jvu; APSG_UID=01FF911MYBQVJMM4AXD3KCBMMG; _ym_visorc=w; YII_CSRF_TOKEN=eVpoTHNUZWtwZ0x1SlZ5ckdRQ0xSNHRkaTBPSUMydWV7jOr_XpgMyLo656xuP9wTl2pexqFU0Y15NXUeDkAl_Q%3D%3D; hidePlansPopupDaily=1; __stripe_sid=3cad772b-b0f3-4946-a8d1-1d69822c1f8c896281; activeTime=17; visit_dash_main=17; csi_download=8; _gat_gtag_UA_179316_6=1; mp_c9045a23086f9873b593d45c7b3cb8a5_mixpanel=%7B%22distinct_id%22%3A%20%228107851%22%2C%22%24device_id%22%3A%20%2217ba9720c1221b-05d442d5e79063-516f3d73-1fa400-17ba9720c135a9%22%2C%22%24user_id%22%3A%20%228107851%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com.hk%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com.hk%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%7D%2C%22__mpus%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpr%22%3A%20%5B%5D%2C%22__mpap%22%3A%20%5B%5D%2C%22utm_source%22%3A%20%22email%22%7D Origin: https://appsgeyser.com Referer: https://appsgeyser.com/dashboard/download Sec-Ch-Ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Windows" Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 X-Requested-With: XMLHttpRequest
sendAppToEmail=true&emailForApp=<$邮箱00地址$>
1 note
·
View note
Text
automatisierter UBL-XML-Generator in PHP in Kombination mit FileMaker
Während meiner Arbeit an der serverseitigen PDF-Generierung mit ZUGFeRD wurde mir schnell klar, dass viele Kunden zunehmend auf den UBL-Standard setzen – gerade im internationalen Kontext oder in Verbindung mit elektronischen Rechnungsplattformen. Also habe ich kurzerhand ein eigenes PHP-Skript geschrieben, das auf POST-Daten aus FileMaker oder anderen Quellen reagiert und daraus eine gültige UBL-Rechnung im XML-Format erstellt. Wie so oft war der Aufbau des XML-Dokuments der anspruchsvollste Teil. Viele Details wie Namespaces, Pflichtfelder und ISO-konforme Datums- und Betragsformate mussten exakt stimmen. Außerdem wollte ich vermeiden, dass mein System bei fehlenden Daten abstürzt – darum habe ich Fallbacks eingebaut und ein eigenes Logging-System integriert. Das Skript liest die Rechnungsdaten, Kunden- und Lieferantendaten sowie die Rechnungspositionen ein, berechnet die Summen und schreibt daraus ein vollständiges XML-Dokument nach dem UBL 2.1-Standard, das sich z. B. auch für die XRechnung weiterverwenden lässt. Die resultierende Datei ist kompatibel mit Plattformen wie PEPPOL, eRechnung.gv.at oder Zentralplattformen der öffentlichen Hand. Die Daten werden in FileMaker gesammelt, das ganze klassisch über schleifen. Die Daten werden über ein einfaches application/x-www-form-urlencoded-POST-Request übergeben. Alle Felder werden als Key-Value-Paare übermittelt. Die Rechnungspositionen (line items) sind dabei als kompaktes Raw-String-Feld lineItemsRaw codiert, das einzelne Positionen mit | trennt und innerhalb der Position durch ; strukturiert ist. FileMaker bietet zwar mittlerweile solide Funktionen für JSON-Manipulation – aber bei 25+ Feldern und einer schlichten Punkt-zu-Punkt-Kommunikation mit meinem PHP-Skript war mir das einfach zu umständlich. Ich wollte keine JSON-Parser-Bastelei, sondern einfach Daten senden. Daher nutze ich application/x-www-form-urlencoded, was mit curl ohnehin besser lesbar ist und mir in PHP direkt über $_POST zur Verfügung steht. "-X POST " & "--header \"Content-Type: application/x-www-form-urlencoded\" " & "--data " & Zitat ( "invoiceNumber=" & $invoiceNumber & "&invoiceDate=" & $invoiceDate & "&invoiceCurrencyCode=" & $invoiceCurrencyCode & "&invoiceTypeCode=" & $invoiceTypeCode & "&dueDate=" & $dueDate & "&paymentTerms=" & $paymentTerms & "&deliveryTerms=" & $deliveryTerms & "&sellerName=" & $sellerName & "&sellerStreet=" & $sellerStreet & "&sellerPostalCode=" & $sellerPostalCode & "&sellerCity=" & $sellerCity & "&sellerCountryCode=" & $sellerCountryCode & "&sellerTaxID=" & $sellerTaxID & "&lieferschein_nr=" & $lieferschein_nr & "&kunden_nr=" & $kunden_nr & "&buyerName=" & $buyerName & "&buyerStreet=" & $buyerStreet & "&buyerPostalCode=" & $buyerPostalCode & "&buyerCity=" & $buyerCity & "&buyerCountryCode=" & $buyerCountryCode & "&buyerTaxID=" & $buyerTaxID & "&paymentMeansCode=" & $paymentMeansCode & "&payeeFinancialInstitution=" & $payeeFinancialInstitution & "&payeeIBAN=" & $payeeIBAN & "&payeeBIC=" & $payeeBIC & "&paymentReference=" & $paymentReference & "&taxRate=" & $taxRate & "&taxAmount=" & $taxAmount & "&taxableAmount=" & $taxableAmount & "&taxCategoryCode=" & $taxCategoryCode & "&totalNetAmount=" & $totalNetAmount & "&totalTaxAmount=" & $totalTaxAmount & "&totalGrossAmount=" & $totalGrossAmount & "&lineItemsRaw=" & $lineItemsRaw )
$dom = new DOMDocument('1.0', 'UTF-8'); $dom->formatOutput = true; $invoice = $dom->createElementNS( 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2', 'Invoice' ); $invoice->setAttribute('xmlns:cac', 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'); $invoice->setAttribute('xmlns:cbc', 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2'); $dom->appendChild($invoice); // Standardfelder setzen $invoice->appendChild($dom->createElement('cbc:UBLVersionID', '2.1')); $invoice->appendChild($dom->createElement('cbc:CustomizationID', 'urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0')); $invoice->appendChild($dom->createElement('cbc:ID', $invoiceNumber)); $invoice->appendChild($dom->createElement('cbc:IssueDate', $invoiceDate)); $invoice->appendChild($dom->createElement('cbc:InvoiceTypeCode', '380')); $invoice->appendChild($dom->createElement('cbc:DocumentCurrencyCode', 'EUR'));
Der Aufbau geht dann weiter über Verkäufer- und Käuferdaten, Zahlungsinformationen, steuerliche Angaben und natürlich die Rechnungspositionen, die als cac:InvoiceLine-Blöcke angelegt werden. Die Daten werden direkt auf dem Server verarbeitet, im Anschluss kann ich die XML-Datei wieder in ein FileMaker-Feld laden (Aus URL einfügen). Da ich mit horstoeko/zugferd arbeite, wird in der Folgeversion noch die Validierung erfolgen. Die derzeit händische, zeigt alle Werte, keine Fehler, keine Warnungen.
0 notes
Photo
Hinge presents an anthology of love stories almost never told. Read more on https://no-ordinary-love.co
2K notes
·
View notes
Text
Don’t want to be marked as Spam? Support one click unsubscribe!
By Marcel Becker, Director Product Management
We are on the final leg of migrating AOL and Yahoo mail to the Verizon Media infrastructure and one great thing about that is we can leverage features from each platform and introduce them to a larger audience. One of them is one-click-unsubscribe.
Our mission is to provide the best consumer email experience. That means making sure spam and other unwanted mail is out of our users' mailboxes, while also giving them the best tools to help communicate their changing needs to senders.
One of those features is the ability to unsubscribe from emails that users no longer want in a simple, hassle-free and secure way. We do that in part by leveraging standards like list-unsubscribe headers. To increase coverage and to push those standards further in the industry, all Verizon Media based mailboxes now support one-click-unsubscribe, otherwise known as RFC8058.
This basically means that senders should add headers to their mails which look like this:
List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: <https://example.com/unsubscribe/opaquepart>
Once a user unsubscribes, the sender will get a POST request which looks like this:
POST /unsubscribe/opaquepart HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 26
List-Unsubscribe=One-Click
Of course we continue to support “mailto:” unsubscribe headers as well.
Check out more about how we expose this feature to our users over at our Yahoo Mail Blog.
We strongly recommend senders to adopt this technology and include those headers as we believe that it will further improve the experience, trust & satisfaction of our mutual customers.
If you have specific questions about how this might affect your email campaigns, don’t hesitate and reach out to us at [email protected].
5 notes
·
View notes
Text
URL decoding
https://www.urldecoder.io/ URL decoding is the inverse process of URL encoding. It is used to parse query strings or path parameters passed in URLs. It is also used to decode HTML form parameters that are submitted with application/x-www-form-urlencoded MIME format URLs, as you might know, can only contain a limited set of characters from the US-ASCII character set. These characters include…
View On WordPress
0 notes