Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48

    Visualizzare e cancellare un record

    Salve a tutti.
    Attraverso un form di login vorrei visualizzare prima i campi del record dell'utente e dopo aggiungere un pulsante con la scritta elimina, possibilmente con un pop up di conferma.
    La pagina che richiama i dati inseriti nel login (email e password), è questa

    <?php
    $servername = "mioserver";
    $username = "miouser";
    $password = "miapass";
    $dbname = "mionomedb";
    $email = $_POST['email'];
    $psw= $_POST['password'];

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "SELECT * FROM miatabella WHERE email = '$email' AND password = '$psw'";
    $sql1= "DELETE FROM miatabella WHERE email = '$email' AND password = '$psw'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

    echo "<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td id='title'>". $row["nome"] ." ". $row["cognome"] ."</td></tr><tr><td id='id' valign='bottom'> id:". $row["id"]."</td></tr><tr><td id='code'><img src='http://www.quesalsa.it/barcode.php?codetype=Code39&size=80&text=". $row["barcode"] ."'><br>&nbsp;".$row["barcode"]."</td></tr></table><br>";

    //fin quì riesco a visualizzare tutti i dati

    //la riga sotto è il problema

    echo "<input type='button' value='Elimina' onClick= "$sql1">";


    }
    } else {
    echo "Tessera non trovata. Verifica di avere inserito i dati corretti";
    }

    mysqli_close($conn);
    ?>

    Come avrete notato dai commenti, riesco tramite la select a richiamare e stampare tutti i dati, ma non riesco a cancellarli.
    L'errore credo sia su sql1
    Un aiuto?
    Grazie. SW

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Allora. Php è un linguaggio lato server quindi ha finito il suo lavoro quando la pagina html viene visualizzata.

    Poi. echo "<input type='button' value='Elimina' onClick= "$sql1">"; . Non ha alcun senso. L'html e lo js sono totalmente scollegati dal php (anche se non lo fossero non funzionerebbe lo stesso perché non richiami mysqli_query).

    Comunque dovresti mettere un link (per esempio - ci sono altre possibilità) ad una pagina il cui scopo di fare la cancellazione passadogli i valori.

    Codice PHP:
    <a href="cancella.php?e=$email&p=$psw"><input type="button" value="Cancella" onclick="this.parentNode.click()";></a
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48
    Grazie mille per la risposta. Ma quindi la pagina cancella.php come dovrebbe essere?
    Mi riconnetto al db e metto un semplice delete passando $email e $psw?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48
    Questa è la pagina dopo il login.
    Non funziona, cosa sbaglio?:

    <?php
    $servername = "mioserver";
    $username = "miouser";
    $password = "miapass";
    $dbname = "miodbnome";
    $email = $_POST['email'];
    $psw= $_POST['password'];

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "SELECT * FROM mia tabella WHERE email = '$email' AND password = '$psw'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

    echo "<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td id='title'>". $row["nome"] ." ". $row["cognome"] ."</td></tr><tr><td id='id' valign='bottom'> id:". $row["id"]."</td></tr><tr><td id='code'><img src='http://www.quesalsa.it/barcode.php?codetype=Code39&size=80&text=". $row["barcode"] ."'><br>&nbsp;".$row["barcode"]."</td></tr></table><br>
    <a href='cancella.php?e=$email&p=$psw'><input type='button' value='Cancella' onclick='this.parentNode.click()';></a>";


    }
    } else {
    echo "Tessera non trovata. Verifica di avere inserito i dati corretti";
    }

    mysqli_close($conn);
    ?>

    Per l'esattezza non va alla pagina cancella.php ma visualizzo il messaggio "Tessera non trovata. Verifica di avere inserito i dati corretti" come se non trovasse i campi
    Ultima modifica di salsaweb; 20-06-2015 a 18:35

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se cancelli dei dati come puoi pretendere poter leggerli dopo ?
    Dopo la delete devi utilizzare mysqli_affected_rows per vedere quante righe sono state cancellate.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Segnalo un paio di cosine
    1) hai una voragine per SQL injection
    2) metti sempre una LIMIT 1 nelle DELETE di una singola riga, non si sa mai

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da MySQL Visualizza il messaggio
    Segnalo un paio di cosine
    1) hai una voragine per SQL injection
    2) metti sempre una LIMIT 1 nelle DELETE di una singola riga, non si sa mai
    Già lavorare con le mail e le password non è il massimo della sicurezza.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48
    E questa è la pagina cancella.php

    <?php
    parametri di connessione al db

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "DELETE FROM miatabella WHERE email = '$email' AND password = '$psw'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

    echo "Tessera Eliminata con successo!";


    }
    } else {
    echo "Tessera non trovata. Verifica di avere inserito i dati corretti";
    }

    mysqli_close($conn);
    ?>

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48
    Effettivamente il record non esiste più. Mi sono perso...
    Dove va il limit?

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    48
    Riscrivo i 3 file. Mi sono perso del tutto

    3.php

    <h1>Cancella tessera.</h1>
    Compila il form sottostante, inserendo i dati immessi durante la creazione della tessera, per eliminarla.<br><br>
    <form method="post" action="4.php">
    <table width="300" border="1" cellpadding="10">
    <tr>
    <td>Email:</td>
    <td><input name="email" type="text" value="" size="40" /></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input name="password" type="password" value="" size="40" /></td>
    </tr>
    <tr>
    <td colspan="2"><span class="submit">
    <input type="submit" name="commit" value="Vai" />
    </span></td>
    </tr>
    </table>
    </form>

    4.php

    <?php
    connessioni....

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "SELECT * FROM tabella WHERE email = '$email' AND password = '$psw'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

    echo "<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td id='title'>". $row["nome"] ." ". $row["cognome"] ."</td></tr><tr><td id='id' valign='bottom'> id:". $row["id"]."</td></tr><tr><td id='code'><img src='http://www.quesalsa.it/barcode.php?codetype=Code39&size=80&text=". $row["barcode"] ."'><br>&nbsp;".$row["barcode"]."</td></tr></table><br>
    <a href='cancella.php?e=$email&p=$psw'><input type='button' value='Cancella' onclick='this.parentNode.click()';></a>";


    }
    } else {
    echo "Tessera non trovata o già eliminata";
    }

    mysqli_close($conn);
    ?>

    cancella.php

    <?php
    connessione

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "DELETE FROM tabella WHERE email = '$email' AND password = '$psw'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

    echo "Tessera Eliminata con successo!";


    }
    } else {
    echo "Tessera non trovata. Verifica di avere inserito i dati corretti";
    }

    mysqli_close($conn);
    ?>

    Il messaggio che ottengo è "Tessera non trovata o già eliminata" ed in effetti il campo è stato eliminato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.