Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  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,361
    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,361
    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
    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);
    ?>

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

  9. #9
    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

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Ti ho scritto come fare più in alto.
    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.