Camps de les taules de Polidic. Editar Registre

id
catala
pron
tipus
c_a_t
qualificador
castella
ajuda
data_creacio
data_modif
found
num_alea
encert
nota
estrelles
aux

==============editar registre=================

  1. Obtenció del registre per editar:
    • Si l’usuari accedeix al formulari amb un paràmetre id (per exemple, editar.php?id=1), es realitza una consulta preparada per obtenir totes les dades del registre corresponent.

edit.php

<?php
// Configuració de la connexió a la base de dades
$servername = "localhost";
$username = "root"; // Substitueix pel teu usuari
$password = "";     // Substitueix per la teva contrasenya
$dbname = "word";   // Nom de la base de dades

// Crear connexió
$conn = new mysqli($servername, $username, $password, $dbname);

// Comprovar la connexió
if ($conn->connect_error) {
    die("Error de connexió: " . $conn->connect_error);
}

// Variables per emmagatzemar les dades del registre
$id = "";
$update_success = false;

// Inicialitzar variables per cada camp de la taula
$data = [
    'catala' => '',
    'pron' => '',
    'tipus' => '',
    'c_a_t' => '',
    'qualificador' => '',
    'castella' => '',
    'ajuda' => '',
    'data_creacio' => '',
    'data_modi' => '',
    'found' => 0,
    'num_alea' => 0,
    'encert' => 0,
    'nota' => '',
    'estrelles' => 0,
    'aux' => ''
];

// Si s'envia el formulari per POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Validar i obtenir l'ID del registre
    $id = intval($_POST['id']); // Assegurar que l'ID sigui un enter

    // Obtenir i sanejar les dades del formulari
    foreach ($data as $key => &$value) {
        if (isset($_POST[$key])) {
            $value = $conn->real_escape_string(trim($_POST[$key]));
        }
    }

    // Actualitzar el registre amb una consulta preparada
    $sql = "UPDATE diccionari SET 
                catala = ?, pron = ?, tipus = ?, c_a_t = ?, qualificador = ?, 
                castella = ?, ajuda = ?, data_creacio = ?, data_modi = ?, 
                found = ?, num_alea = ?, encert = ?, nota = ?, estrelles = ?, aux = ? 
            WHERE id = ?";
    $stmt = $conn->prepare($sql);

    if ($stmt) {
        // Vincular tots els paràmetres
        $stmt->bind_param(
            "ssssssssiisissii", // Tipus de dades: cadenes (s), enters (i)
            $data['catala'], $data['pron'], $data['tipus'], $data['c_a_t'], $data['qualificador'],
            $data['castella'], $data['ajuda'], $data['data_creacio'], $data['data_modi'],
            $data['found'], $data['num_alea'], $data['encert'], $data['nota'], $data['estrelles'], $data['aux'],
            $id
        );

        if ($stmt->execute()) {
            $update_success = true; // Indicar que l'actualització ha estat exitosa
        } else {
            echo "Error en l'actualització: " . $stmt->error;
        }
        $stmt->close();
    } else {
        echo "Error en preparar la consulta: " . $conn->error;
    }
}

// Obtenir el registre seleccionat per ID (si s'especifica)
if (isset($_GET['id'])) {
    $id = intval($_GET['id']); // Assegurar que l'ID sigui un enter

    // Consulta per obtenir les dades del registre
    $sql = "SELECT id, catala, pron, tipus, c_a_t, qualificador, castella, ajuda, 
                   data_creacio, data_modi, found, num_alea, encert, nota, estrelles, aux 
            FROM diccionari WHERE id = ?";
    $stmt = $conn->prepare($sql);

    if ($stmt) {
        $stmt->bind_param("i", $id); // "i" = enter
        $stmt->execute();
        $stmt->store_result();

        if ($stmt->num_rows > 0) {
            $stmt->bind_result(
                $id, $data['catala'], $data['pron'], $data['tipus'], $data['c_a_t'], $data['qualificador'],
                $data['castella'], $data['ajuda'], $data['data_creacio'], $data['data_modi'],
                $data['found'], $data['num_alea'], $data['encert'], $data['nota'], $data['estrelles'], $data['aux']
            );
            $stmt->fetch(); // Emplenar les variables amb les dades del registre
        } else {
            echo "No s'ha trobat cap registre amb l'ID especificat.";
        }
        $stmt->close();
    } else {
        echo "Error en preparar la consulta: " . $conn->error;
    }
}

// Tancar la connexió
$conn->close();
?>

<!DOCTYPE html>
<html lang="ca">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editar Registre</title>
</head>
<body>
    <h1>Editar Registre</h1>

    <?php if ($update_success): ?>
        <p style="color:green;">Registre actualitzat correctament.</p>
    <?php endif; ?>

    <!-- Formulari per editar el registre -->
    <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
        <input type="hidden" name="id" value="<?php echo htmlspecialchars($id); ?>">

        <label for="catala">Català:</label><br>
        <input type="text" id="catala" name="catala" value="<?php echo htmlspecialchars($data['catala']); ?>" required><br><br>

        <label for="pron">pronunciació:</label><br>
        <input type="text" id="pron" name="pron" value="<?php echo htmlspecialchars($data['pron']); ?>"><br><br>

        <label for="tipus">Tipus:</label><br>
        <input type="text" id="tipus" name="tipus" value="<?php echo htmlspecialchars($data['tipus']); ?>"><br><br>

        <label for="c_a_t">Categoria:</label><br>
        <input type="text" id="c_a_t" name="c_a_t" value="<?php echo htmlspecialchars($data['c_a_t']); ?>"><br><br>

        <label for="qualificador">Qualificador:</label><br>
        <input type="text" id="qualificador" name="qualificador" value="<?php echo htmlspecialchars($data['qualificador']); ?>"><br><br>

        <label for="castella">Castellà:</label><br>
        <input type="text" id="castella" name="castella" value="<?php echo htmlspecialchars($data['castella']); ?>"><br><br>

        <label for="ajuda">Ajuda:</label><br>
        <textarea id="ajuda" name="ajuda" rows="4" cols="50"><?php echo htmlspecialchars($data['ajuda']); ?></textarea><br><br>

        <label for="data_creacio">Data de creació:</label><br>
        <input type="date" id="data_creacio" name="data_creacio" value="<?php echo htmlspecialchars($data['data_creacio']); ?>"><br><br>

        <label for="data_modi">Data de modificació:</label><br>
        <input type="date" id="data_modi" name="data_modi" value="<?php echo htmlspecialchars($data['data_modi']); ?>"><br><br>

        <label for="found">Freqüència/Trobada:</label><br>
        <input type="number" id="found" name="found" value="<?php echo htmlspecialchars($data['found']); ?>"><br><br>

        <label for="num_alea">Número aleatori:</label><br>
        <input type="number" id="num_alea" name="num_alea" value="<?php echo htmlspecialchars($data['num_alea']); ?>"><br><br>

        <label for="encert">Encerts:</label><br>
        <input type="number" id="encert" name="encert" value="<?php echo htmlspecialchars($data['encert']); ?>"><br><br>

        <label for="nota">Notes:</label><br>
        <textarea id="nota" name="nota" rows="4" cols="50"><?php echo htmlspecialchars($data['nota']); ?></textarea><br><br>

        <label for="estrelles">Nombre d'estrelles:</label><br>
        <input type="number" id="estrelles" name="estrelles" value="<?php echo htmlspecialchars($data['estrelles']); ?>"><br><br>

        <label for="aux">Camp auxiliar:</label><br>
        <input type="text" id="aux" name="aux" value="<?php echo htmlspecialchars($data['aux']); ?>"><br><br>

        <button type="submit">Actualitzar</button>
    </form>

    <!-- Enllaç per tornar a la pàgina principal (opcional) -->
    <p><a href="index.php">Tornar al llistat</a></p>
</body>
</html>

SQL consulta preparada & Consulta directa ($conn->query)

Mètode 2: Consulta directa ($conn->query)

$sql = "INSERT INTO $taula (catala, castella) VALUES ('$registre_nou', 'registre nou, completar registre')";
$result = $conn->query($sql);
$respostes = array();

Pros:

  1. Simplicitat :
    • És més curt i fàcil d’escriure, especialment per a desenvolupadors novells o per a casos senzills on no hi ha riscos evidents.
  2. No requereix configuració addicional:
    • Funciona directament amb extensions bàsiques com mysqli sense necessitat de configurar PDO.

Contres:

  1. Vulnerabilitat a injeccions SQL :
    • Com que les variables ($registre_nou) s’insereixen directament a la cadena SQL, un usuari malintencionat podria introduir codi SQL per manipular la consulta. Per exemple:phpCopiar1$registre_nou = “‘; DROP TABLE users; –“;Això podria resultar en una consulta perillosa com:sqlCopiar1INSERTINTO taula (catala, castella) VALUES (”; DROPTABLE users; –‘, ‘registre nou, completar registre’);
  2. Manca de maneig de caràcters especials:
    • Si $registre_nou conté caràcters especials (com ' o \), provocarà errors sintàctics o comportaments inesperats.
  3. Menys flexible:
    • No permet reutilitzar la consulta amb diferents valors sense reconstruir-la completament.
  4. Gestió d’errors limitada:
    • Sense un bloc try-catch, és més difícil detectar i gestionar errors de manera adequada.
  5. Dependència de l’extensió mysqli:
    • Si més tard decideixes canviar a una altra base de dades (com PostgreSQL), hauràs de reescriure tot el codi relacionat amb mysqli.

Mètode 1: Consulta preparada (prepared statement)

$sql = "INSERT INTO $taula (catala, castella) VALUES (:catala, :castella)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':catala', $registre_nou, PDO::PARAM_STR);
$stmt->bindValue(':castella', 'registre nou, completar registre', PDO::PARAM_STR);
$stmt->execute();
echo "Registre inserit correctament.";

Pros:

0 Seguretat contra injeccions SQL

$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);

En aquest cas, encara que $username contingui '; DROP TABLE users; --, no es podrà executar com a part de la consulta SQL.

  1. Maneig de caràcters especials :
    • Les consultes preparades escapen automàticament caràcters especials (com cometes simples ' o barres invertides \), prevenint errors sintàctics.
  2. Flexibilitat /Reutilització de consultes
    • Pots utilitzar el mateix patró de consulta preparada per inserir múltiples registres canviant només els valors dels paràmetres.
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
foreach ($users as $user) {
    $stmt->execute($user);
}

3. Millor gestió d’errors:

  • Amb PDO, pots capturar excepcions (PDOException) i gestionar-les de manera estructurada (per exemple, mitjançant blocs try-catch).
try {
    $stmt->execute();
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}

4.Compatibilitat amb bases de dades múltiples:

  • PDO és una interfície genèrica que treballa amb diferents sistemes de gestió de bases de dades (MySQL, PostgreSQL, SQLite, etc.).

Contres:

  1. Més complexitat inicial :
    • Requereix més línies de codi i una comprensió bàsica de les consultes preparades i els lligams de paràmetres.
  2. Dependència de PDO :
    • Necessites configurar una connexió PDO per utilitzar consultes preparades, cosa que pot ser un pas addicional si estàs acostumat a usar extensions més antigues com mysqli.

Capsa Replicadora

Aquest tipus d’entrada s’han de fer com HTML


<!DOCTYPE html>
<html lang="ca">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Capsa Replicadora</title>
    <link rel="icon" href=".ico" type="image/x-icon">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            background-color: #f0f0f0;
            min-height: 100vh;
        }
        .container {
            background-color: rgb(213, 225, 225);
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            width: 80%;
            max-width: 800px;
            margin-top: 50px;
            box-sizing: border-box;
        }
        h1 {
            text-align: center;
            color: #333;
        }
        p {
            margin: 5px 0;
            color: #444;
        }
        .input-wrapper {
            width: 50%;
            margin: 0 auto 10px auto; /* Centra les entrades */
        }

        /* Responsivitat per a dispositius petits */
        @media (max-width: 600px) {
            .container {
                width: 90%;
                margin-top: 30px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Capsa Replicadora</h1>
        
        <div class="input-wrapper">
            <label for="cercar">Cercar:</label>
            <input type="text" id="cercar" name="cercar" autofocus onkeyup="replicarText()">
        </div>
        <div class="input-wrapper">
            <label for="replicar">Replicar:</label>
            <input type="text" id="replicar" name="replicar">
        </div>
    </div>
    <script>
        function replicarText() {
            //alert('entra a replicar');
            var cercarInput = document.getElementById('cercar');
            var replicarInput = document.getElementById('replicar');
            replicarInput.value = cercarInput.value;
        }
    </script>
</body>
</html>

$_GET[‘dic’] i $_GET[‘lang] per passar informació a un formulari (dintre de la mateixa carpeta)

Per recollir les variables $_GET['dic'] i $_GET['lang] de la informació passada a través del navegador, podeu utilitzar el següent codi PHP:

<?php
// Recollir les variables del GET
$diccionari = isset($_GET['dic']) ? $_GET['dic'] : 'No definit';
$llenguatge = isset($_GET['lang']) ? $_GET['lang'] : 'No definit';

// Mostrar les variables
echo "El diccionari és: " . htmlspecialchars($diccionari) . "<br>";
echo "El llenguatge és: " . htmlspecialchars($llenguatge);
?>

per example si al navegador veiem: 192.168.1.41/poli/BD_conexions/conexio_diccionari_bd.php?dic=catala_castella&lang=cat

Al formulari que mostra les variables podem llegir:

El diccionari és: catala_castella
El llenguatge és: cat

$idioma = isset($_GET[‘lang’]) ? $_GET[‘lang’] : ‘cat’;

Aquesta instrucció és una forma concisa de definir una variable $idioma en funció de si el paràmetre lang existeix a l'URL. Això es fa utilitzant l'operador ternari, que és una alternativa compacta al condicional if-else. Aquí tens com funciona pas a pas:

isset($_GET['lang']):

Verifica si existeix el paràmetre lang a l'URL. Si l'usuari accedeix a la pàgina amb un enllaç del tipus index.php?lang=eus, llavors isset($_GET['lang']) tornarà true.

$_GET['lang']:

Si el paràmetre lang existeix (és a dir, isset($_GET['lang']) és true), el valor d'aquest paràmetre s'assignarà a $idioma. Per exemple, si l'URL és index.php?lang=eng, el valor de $idioma serà 'eng'.

: 'cat':

Si el paràmetre lang no existeix (és a dir, isset($_GET['lang']) és false), el valor per defecte 'cat' (català) s'assignarà a $idioma.

Python per llegir qualsevol àrea de text de Polidic

Sí, pots utilitzar Python per llegir qualsevol àrea de text del teu diccionari i convertir-lo a veu utilitzant biblioteques de text a veu com pyttsx3 o gTTS.

Aquí tens un exemple de com podries fer-ho amb la biblioteca pyttsx3:

Primer, instal·la la biblioteca pyttsx3: pip install pyttsx3.

import pyttsx3
from bs4 import BeautifulSoup

# Exemple de contingut HTML amb una àrea de text
html_content = """
<textarea id="myTextarea">Aquest és un text d'exemple que vull convertir a veu.</textarea>
"""

# Analitzar el contingut HTML
soup = BeautifulSoup(html_content, 'html.parser')

# Trobar l'àrea de text pel seu id
textarea = soup.find('textarea', {'id': 'myTextarea'})

# Llegir el contingut de l'àrea de text
if textarea:
    text_content = textarea.get_text()
    
    # Inicialitzar el motor de text a veu
    engine = pyttsx3.init()
    
    # Configurar les propietats de la veu (opcional)
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[0].id)  # Selecciona la veu
    
    # Convertir text a veu
    engine.say(text_content)
    engine.runAndWait()
else:
    print("No s'ha trobat l'àrea de text.")

Això llegirà el contingut de l'àrea de text identificada pel seu id i el convertirà a veu. Pots adaptar aquest codi per llegir àrees de text del teu diccionari i convertir el text a veu.



PHP al llarg del anys

PHP ha experimentat moltes millores significatives des de la seva creació fins a l’actualitat. Aquí tens un resum de les millores més destacades a través dels anys:

PHP 4 (2000)

  • Zend Engine 1: Millorat el rendiment i la gestió de la memòria.
  • Sessions: Introducció de la gestió de sessions.
  • Objectes i classes: Millor suport per a la programació orientada a objectes (OOP).

PHP 5 (2004)

  • Zend Engine 2: Millorat encara més el rendiment i la gestió de la memòria.
  • XML i Web Services: Suport millorat per XML i serveis web.
  • Namespaces: Introducció de namespaces per evitar col·lisions de noms.
  • Anonymous Functions: Suport per a funcions anònimes i closures.

PHP 5.3 (2009)

  • Namespaces: Millorat el suport per a namespaces.
  • Funcions anònimes: Suport per a funcions anònimes.
  • Funcions de fitxer: Suport per a funcions de fitxer.

PHP 5.6 (2014)

  • Expressions constants: Suport per a expressions constants.
  • Desempaquetat d’arguments: Suport per a desempaquetar arguments en les funcions.

PHP 7.0 (2015)

  • Tipus escalars: Declaracions de tipus escalars.
  • Rendiment: Major millora de rendiment, podent manejar el doble de sol·licituds per segon.
  • Tipus de retorn: Declaracions de tipus de retorn.

PHP 7.4 (2019)

  • Propietats tipades: Suport per a propietats tipades.
  • Separador numèric sota línies: Introducció del sota línies com a separatòr numèric.

PHP 8.0 (2020)

  • Tipus de unió: Suport per a tipus de unió.
  • JIT (Just-In-Time): Compilador JIT per millorar el rendiment.
  • Propietats de constructors: Promoció de propietats de constructors.

PHP 8.1 (2021)

  • Enums: Suport per a enums.
  • Fibres: Suport per a fibres.
  • Tipus d’intersecció: Suport per a tipus d’intersecció.

PHP 8.2 (2022)

  • Classes de nomès lectura: Suport per a classes de només lectura.
  • DNF tipus: Suport per a DNF tipus.
  • Tipus per a null, fals i cert: Suport per a tipus específics per a null, fals i cert.

PHP 8.3 (2023)

  • Propietats redactades: Suport per a redacció de propietats sensitives.
  • Extensió aleatòria: Nova extensió aleatòria.

PHP 8.4 (2024)

  • Propietats de només lectura: Suport per a propietats de només lectura.
  • Millorat el rendiment: Continuació de millores de rendiment.

PHP ha evolucionat molt des de la seva primera versió, convertint-se en una eina poderosa i versàtil per a la desenvolupament web. La comunitat PHP també ha jugat un paper important en aquesta evolució, oferint suport i innovació contínua.


*PHP (Hypertext Preprocessor) va ser creat l’any 1995 per Rasmus Lerdorf. Originalment, es va desenvolupar com a eina per gestionar el seu currículum en línia, però amb el temps va evolucionar fins a convertir-se en el llenguatge de programació web que coneixem avui.

Hi ha alguna altra cosa sobre PHP que t’agradaria saber?


El popular lloc de xarxes socials va ser inicialment desenvolupat en PHP actualment quin llenguate utilitza?

Facebook, inicialment desenvolupat en PHP, ha evolucionat significativament i ara utilitza una combinació de llenguatges per a diferents parts de la seva plataforma. Els llenguatges més utilitzats actualment a Facebook inclouen:

  • Hack: Una extensió de PHP que ofereix tipus estàtics i millors eines de desenvolupament.
  • Python: Utilitzat per tasques de processament de dades i aprenentatge automàtic.
  • Java: Utilitzat per a aplicacions empresarials i serveis backend.
  • C++: Utilitzat per a parts crítiques de rendiment.
  • Erlang: Utilitzat per a serveis de xarxa i comunicacions.
  • JavaScript: Utilitzat per a la interfície d’usuari i aplicacions web dinàmiques.

Aquesta diversitat de llenguatges permet a Facebook mantenir una plataforma robusta, escalable i eficient.

Python s’utilitza a Facebook per a diverses tasques clau. Aquí tens algunes de les aplicacions principals de Python en la infraestructura de Facebook:

  1. Processament de Dades:
  • Facebook recull enormes quantitats de dades dels usuaris, i Python s’utilitza àmpliament per processar, analitzar i extreure informació útil d’aquestes dades.
  • Llibreries com Pandas, NumPy i SciPy són utilitzades per a l’anàlisi de dades i el càlcul científic.
  1. Aprenentatge Automàtic (Machine Learning):
  • Python és molt popular en el camp de l’aprenentatge automàtic gràcies a les seves potents llibreries com TensorFlow, PyTorch i scikit-learn.
  • Facebook utilitza Python per desenvolupar i desplegar models d’aprenentatge automàtic que milloren l’experiència de l’usuari, com ara recomanacions personalitzades i detecció de contingut inadequat.
  1. Infraestructura de Serveis:
  • Python s’utilitza per escriure microserveis i altres components de backend que ajuden a gestionar i mantenir la infraestructura de la plataforma.
  • Frameworks com Flask i Django poden ser utilitzats per desenvolupar aquests serveis.
  1. Automatització i Scripts:
  • Python és ideal per a tasques d’automatització, com la gestió de servidors, la distribució de recursos i el desplegament de codi.
  • Scripts de Python s’utilitzen per automatitzar tasques rutinàries i millorar l’eficiència dels desenvolupadors.
  1. Anàlisi de Xarxes Socials:
  • Python permet analitzar patrons de comportament i interacció entre usuaris a Facebook, utilitzant llibreries com NetworkX per a l’anàlisi de xarxes.

Aquestes són algunes de les formes principals en què Python s’aplica a Facebook. La seva flexibilitat i potència fan que sigui una eina valuosa en molts aspectes del desenvolupament i manteniment de la plataforma.

Si tens alguna altra pregunta o necessites més informació, estic aquí per ajudar-te! ?

IP que utilitzen les aplicacions per passar a través dels tallafocs

1. Utilitza el Monitor de Recursos de Windows

  1. Obre el Monitor de Recursos:
    • Cerca “Monitor de Recursos” al menú d’inici i obre’l.
  2. Ves a la pestanya “Xarxa”:
    • Aquí podràs veure les connexions de xarxa actives i les adreces IP que utilitzen les aplicacions.

2. Utilitza el símbol del sistema (cmd)


Obre el símbol del sistema:
netstat -an
  1. Executa la comanda netstat:
    • Escriu la següent comanda per veure les connexions de xarxa actives:bashnetstat -an
    • Aquesta comanda mostrarà una llista de totes les connexions de xarxa actives i les adreces IP associades.

3. Utilitza eines de tercers

Hi ha diverses eines de tercers que pots utilitzar per monitoritzar les connexions de xarxa i veure les adreces IP que utilitzen les aplicacions. Algunes d’aquestes eines inclouen:

  • Wireshark: Una eina de captura de paquets que et permet veure el trànsit de xarxa en temps real.
  • TCPView: Una eina de Sysinternals que mostra una llista detallada de totes les connexions TCP i UDP actives al teu sistema.

Aquestes eines et permetran veure quines adreces IP utilitzen les aplicacions per passar a través dels tallafocs.

Si tens alguna altra pregunta o necessites més ajuda, estic aquí per ajudar-te! ?

Sí, TCPView és una eina de Sysinternals per a Windows. És una aplicació gràfica que mostra una llista detallada de totes les connexions TCP i UDP actives al teu sistema, incloent-hi les adreces IP locals i remotes, els ports i l’estat de la connexió. És molt útil per monitoritzar i diagnosticar problemes de xarxa.

Pots descarregar TCPView des del lloc web de Sysinternals, que és part de Microsoft. Aquí tens l’enllaç per a més informació i descàrrega: TCPView.

Copiar entrada de text al porta-papers

script

function copiarAlPortaRetalls() {
            var text = document.getElementById("entrada").value;
            console.log("Text a copiar:", text); 
            navigator.clipboard.writeText(text).then(function() {
                alert("Text copiat al porta-retalls!"); });
        }    

function copiarAlPortaRetalls() {
// Declara una funció anomenada copiarAlPortaRetalls.

var text = document.getElementById("entrada").value;
// Obté el valor de l'element HTML amb l'ID "entrada" i l'emmagatzema a la variable 'text'.

console.log("Text a copiar:", text);
// Mostra el text a copiar a la consola del navegador per a depuració.

navigator.clipboard.writeText(text).then(function() {
    // Utilitza l'API del porta-retalls per copiar el text. Si la còpia és exitosa, executa la funció dins del 'then'.

    alert("Text copiat al porta-retalls!");
    // Mostra una alerta a l'usuari indicant que el text s'ha copiat correctament al porta-retalls.
});

}

Variables d’entorn

Clic inici esquerro i cerca “Variables d’entorn” o escriu “Editar variables d’entorn del sistema” i selecciona l’opció. A la finestra Propietats del sistema, fes clic al botó Variables d’entorn… (a la part inferior). A la secció de Variables del sistema, busca i selecciona la variable anomenada ‘Path‘ i fes clic a Editar. A la nova finestra, fes clic a Nou i afegeix la següent ruta:

Les variables d’entorn en un sistema com Windows són valors que poden afectar el comportament dels programes i aplicacions. Aquestes variables són essencials per al sistema operatiu i permeten que les aplicacions es comuniquin entre elles i amb el sistema.

Alguns exemples de variables d’entorn són:

  • %USERNAME%: retorna el nom de l’usuari actualment connectat al sistema.
  • %COMPUTERNAME%: retorna el nom de l’equip.
  • %WINDIR% o %SYSTEMROOT%: directoris d’instal·lació de Windows (generalment “C:\Windows”).

Aquestes variables es poden utilitzar per a tasques de manteniment, creació de scripts o automatització de tasques. També és possible crear les teves pròpies variables d’entorn per personalitzar el sistema segons les teves necessitats.

Activar Synology Driver Clent

  1. Configura Synology Drive Client:
    • Obre l’aplicació Synology Drive Client.
    • Fes clic a “Iniciar sessió” i introdueix el QuickConnect ID, l’adreça IP o el nom de domini del teu NAS.
    • Introdueix el teu nom d’usuari i contrasenya del NAS i fes clic a “Següent”.

Vaig a fer una prova: carrego una script