• ModSenior

    Ciao arkom,

    fai un echo della query.


  • User

    Ciao TheDarkita,
    come dovrei fare un "echo" sulla query?

    Di "echo" ne ho una sfilza :giggle:

    Se mi potresti fare la correzione te ne sarei molto grato

    Grazie.


  • ModSenior

    Da:
    [php]$query = "DELETE FROM utenti WHERE id IN ($ids)";[/php]
    A:
    [php]
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    echo $query;
    [/php]


  • User

    Ciao TheDarkita,
    purtroppo la "echo" inserita nella query non cambia niente

    [PHP]// preparo la query
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    echo $query; [/PHP]

    Non è che hai un' altra soluzione che mi visualizza i tre campi:
    id, user e mail e che mi permetta di cancellare un'utente?

    Grazie


  • ModSenior

    L'echo deve restituirti in output una stringa con la query eseguita dovresti incollarla qua per vedere se la query generata è corretta.


  • User

    Ciao Thedarkita,
    ti rispedisco il codice modificato come mi ai consigliato

    [PHP]<?php
    // Includo la connessione al database
    require('config.php');
    if($_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset($_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();
    function mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
    // preparo la query
    $query = "SELECT user FROM utenti";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    echo '
    <form name="form1" method="post" action="">
    <table border="1">
    <tr>
    <th> </th>
    <th>Nome</th>
    <th> </th>
    </tr>';
    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['user']);
    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
    echo "<tr>
    <td><input name="id[]" type="checkbox" value="$row[id]" /></td>
    <td>$nome</td>
    <td><a href="$link">elimina</a></td>
    </tr>";
    }
    echo '</table>
    <br />
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>';
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);
    // chiudo la connessione a MySQL
    mysql_close();
    }
    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }
    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);
    // creo una lista di ID per la query
    $ids = implode(',',$ids);
    // preparo la query
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    echo $query;
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();
    // chiudo la connessione a MySQL
    mysql_close();
    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>[/PHP]

    Ahimè non so dove mettere le mani adesso!

    Un "Hekp" e doveroso.

    Grazie


  • User

    Scusami Thedarkita, sto scrivendo un'italiano da sc...fo:eheh:

    "hai" e "Help"


  • ModSenior

    Commenta la funzione header in modo da eliminare il redirect ed incolla qua l'output restituito dallo script da te postato.


  • User

    Penso che tu ti riferisca a una di queste stringhe:

    [php]$messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;[/php]

    e

    [php]$messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);[/php]

    Nella prima stringa sembra non che ci sono stati messaggi di output,

    invece nella seconda al momento di cliccare su "elimina" dalla funzione:

    [php]<td><input name="id[]" type="checkbox" value="$row[id]" /></td>
    <td>$nome</td>
    <td><a href="$link">elimina</a></td>[/php]

    e anche da:

    [php]<input type="submit" name="Submit" value="Elimina record selezionati" />
    [/php]

    del form, la risposta è uguale:

    Numero record cancellati: 0

    Purtroppo navigo nel buio.


  • User

    Ciao TheDarkita,
    forse sei molto impegnato.
    Stavo aspettando una tua soluzione per la cancellazione degli utenti da parte dell' Admin.

    Grazie.


  • User

    Ciao TheDarkita,

    posto per tutti gli utenti, la risoluzione per la cancellazione degli utenti registrati da parte dell' amministratore. Funzionante al 100% :fumato:
    [PHP]<?php
    // Includo la connessione al database
    require('config.php');
    if($_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset($_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();
    function mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
    // preparo la query
    $query = "SELECT id,user FROM utenti";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    echo '
    <form name="form1" method="post" action="">
    <table border="1">
    <tr>
    <th> </th>
    <th>Nome Utente</th>
    <th> </th>
    </tr>';
    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['user']);
    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
    echo "<tr>
    <td><input name="id[]" type="checkbox" value="$row[id]" /></td>
    <td>$nome</td>
    <td><a href="$link">elimina</a></td>
    </tr>";
    }
    echo '</table>
    <br />
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>';
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);
    // chiudo la connessione a MySQL
    mysql_close();
    }
    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }
    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);
    // creo una lista di ID per la query
    $ids = implode(',',$ids);
    // preparo la query
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();
    // chiudo la connessione a MySQL
    mysql_close();
    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>
    [/PHP]

    Spero che a qualcuno servirà.
    Ciao.


  • User

    Ciao TheDarkita, sono nuovo da queste parti e ti faccio i miei complimenti perché, anche se non ho mai scritto una riga di php, grazie a questo tutorial sto piano piano mettendo un'area riservata nel mio sito. Tuttavia ho dei problemi. Seguendo le indicazioni fra pag 9 e 10 sto cercando di inserire la funzione che consente di resettare la password. ricevo correttamente l'email con l'indirizzo ma quando clicco sul link ricevo sempre il messaggio di errore, Link non valido, i motivi potrebbero essere i seguenti: Hai già; modificato la tua password oppure hai seguito un link errato. Eppure anche il link dall'email mi sembra corretto. Spero che tu mi possa aiutare. Grazie in anticipo.


  • User

    Scusa, come non detto mi erano sfuggite le ultime modifiche che avevi inserito all'utente che aveva già posto la stessa domanda. Grazie, funziona


  • User Attivo

    Ciao Thedarkita!

    Ho ripreso in questi giorni lo script, ogni anno metto mani per aggiungere qualcosa di sto passo a 90 anni forse lo finisco :bigsmile:

    Ho notato oggi la parte riguardante il recupero password circa a pagina 12, tutto funzionante, a parte..
    Io quando richiedo la mail con il link per ricevere la password il link arriva ed è corretto, solo che la pagina in cui mi porta mi fa vedere ancora lo stesso modulo iniziale dove inserire la mail e richiedere la password..
    Quindi credo sia un problema di codice nella pagina recupero.php..
    Però non so, io ho ricopiato esattamente il codice inserito e modificato la parte utile a rendere il link esatto, nulla più.. Sai dirmi se ci sono errori nello script che avevi postato?


  • ModSenior

    Ciao Gigi991,

    se non ricordo male nelle pagine successive avevo corretto un errore, non ricordo in quale pagina però...


  • User Attivo

    Ottimo lo andavo cercando 😛


  • User Attivo

    Ciao Thedarkita!

    Dovrei utilizzare un sistema di "rank/gruppi" stabiliti nel database e che, in base al gruppo di cui si fa parte, si visualizzano menu/contenuti diversi, aggiunte o meno..

    Per essere più chiari, un'esempio:

    Ho il campo "permessi" nella tabella "utenti".
    Imposto di default il livello "utente_registrato" a chi si registra senza attivarsi, per poi assegnare il livello "utente_attivato" una volta che viene attivato l'account tramite email.
    In più ci aggiungo il livello "amministratore" settabile solo da chi è già amministratore attraverso database, o più avanti da una pagina php di amministrazione.

    Avevo pensato ad una cosa simile, ma non riesco a trasformarlo in vero codice:

    if(permessi = amministratore) echo $menu_amministratore;
    elseif(permessi = utente_attivato) echo $menu_utente_attivato;
    elseif(permessi = utente_registrato) echo $menu_utente_registrato;
    else echo $menu_utente;


  • User Newbie

    Ciao Thedarkita,
    ho un problema nella pagina reset...quando clicco sulla mail che mi arriva regolarmente dalla pagina recupero, mi dà questi messaggi:
    Notice: Undefined index: id in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 34

    Notice: Undefined variable: mail in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 45

    Warning: mail() [function.mail]: SMTP server response: 554 DATA Transaction failed, no recipients given in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 45
    Le abbiamo un email contenente la Sua nuova password, controlli la Sua casella email!
    Mi puoi aiutare a capire dove sbaglio?
    Grazie e ciao


  • ModSenior

    Scusate il ritardo nelle risposte, sono stato assente.
    L'argomento riguardo i permessi è stato trattato nelle pagine dietro se non ricordo male.
    Mentre i notice postati da cri65, riguardano variabili che vengono richiamate senza che a queste sia mai stato assegnato un valore, senza vedere il codice da te usato è impossibile aiutarti ulteriormente.


  • User Attivo

    Ciao! Se volessi dopo aver fatto il login mettere nella pagina privata "Benvenuto nome e cognome" come devo fare?

    Ho provato con la sessione ma non mi viene...:?