• ModSenior

    Ti ho scritto qui come fare...


  • User Attivo

    Si ma non ho capito fammi un esempio più lungo, con più città.


  • ModSenior

    Devi fare inserisci per tutte le città per inserire i record.
    Trovi una guida utile per te qui.


  • User Attivo

    Errore


  • User Attivo

    Ecco una screen di quello che ho fatto ora come posso creare il munu a tendina? mi daresti il codice php?

    h**p://img443.imageshack*us/img443/4093/cartaidentitai.jpg


  • User

    @Thedarkita said:

    [...]

    Ciao Thedarkita allora ho installato il codice che mi hai dato...però non mi registra le modifiche...

    Poi ero anche interessato a vedere i dati che erano già presenti sul database. Mi spiego meglio nella registrazione chiedo: nome, cognome, username, password obbligatori e telefono, fax etc.. non obbligatori.
    per cui se un utente volesse in un secondo momento inserire, modificare o cancellare queste informazioni per il momento mi si presenta un form che è uguale a quello di registrazione e se io fossi l'utente l'avrei ricompilato interamente. Per ovviare questo problema ho inserito nel campo input del mio form di ogni voce questo:

    <input name="name" class="inputform" type="text" id="name" value="<?php echo $USER["name"];?>" onFocus="if(this.value=='Nome') this.value='Nome';" />
    ```ed è effettivamente il risultato che volevo. Ora però se io vado a fare l'update del campo vuoto devo cancellare tutti gli altri dati che mi si visualizzano... come fare?
    
    [php]<?php
    // Includo la connessione al database
    require('config.php');
    
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
        header('Location: login.php');
        exit;
    }
    
    // Se il modulo viene inviato...
    if(isset($_POST['invio']))
    {
    
        // Dati Inviati dal modulo
        $username = (isset($_POST['username'])) ? trim($_POST['username']) : '';    // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default ''
        $password = (isset($_POST['password'])) ? trim($_POST['password']) : '';    // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default ''
        $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
        $name = (isset($_POST['name'])) ? trim($_POST['name']) : '';    // Metto nella variabile 'name' il dato inviato dal modulo, se non viene inviato dò di default ''
        $surname = (isset($_POST['surname'])) ? trim($_POST['surname']) : '';    // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default ''
        $azienda = (isset($_POST['azienda'])) ? trim($_POST['azienda']) : '';    // Metto nella variabile 'azienda' il dato inviato dal modulo, se non viene inviato dò di default ''
        $occupazione = (isset($_POST['occupazione'])) ? trim($_POST['occupazione']) : '';    // Metto nella variabile 'occupazione' il dato inviato dal modulo, se non viene inviato dò di default ''
        $indirizzo = (isset($_POST['indirizzo'])) ? trim($_POST['indirizzo']) : '';    // Metto nella variabile 'indirizzo' il dato inviato dal modulo, se non viene inviato dò di default ''
        $citta = (isset($_POST['citta'])) ? trim($_POST['citta']) : '';    // Metto nella variabile 'citta' il dato inviato dal modulo, se non viene inviato dò di default ''
        $comune = (isset($_POST['comune'])) ? trim($_POST['comune']) : '';    // Metto nella variabile 'comune' il dato inviato dal modulo, se non viene inviato dò di default ''
        $provincia = (isset($_POST['provincia'])) ? trim($_POST['provincia']) : '';    // Metto nella variabile 'provincia' il dato inviato dal modulo, se non viene inviato dò di default ''
        $cap = (isset($_POST['cap'])) ? trim($_POST['cap']) : '';    // Metto nella variabile 'cap' il dato inviato dal modulo, se non viene inviato dò di default ''
        $telefono = (isset($_POST['telefono'])) ? trim($_POST['telefono']) : '';    // Metto nella variabile 'telefono' il dato inviato dal modulo, se non viene inviato dò di default ''
        $fax = (isset($_POST['fax'])) ? trim($_POST['fax']) : '';    // Metto nella variabile 'fax' il dato inviato dal modulo, se non viene inviato dò di default ''
        
        // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
        if (!get_magic_quotes_gpc()) {
            $username = addslashes($username);
            $password = addslashes($password);
            $mail = addslashes($mail);
            $azienda = addslashes($azienda);
            $occupazione = addslashes($occupazione);
            $indirizzo = addslashes($indirizzo);
            $citta = addslashes($citta);
            $comune = addslashes($comune);
            $provincia = addslashes($provincia);
            $cap = addslashes($cap);
            $telefono = addslashes($telefono);
            $fax = addslashes($fax);
    
        }
        
        $setquery = '';
        if($attualeusername != $username)
            $setquery = ((isset($setquery)) ? $setquery.",campousername = '$username'" : "campousername = '$username'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualepassword != $password)
            $setquery = ((isset($setquery)) ? $setquery.",campopassword = '$password'" : "campopassword = '$password'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualemail != $mail)
            $setquery = ((isset($setquery)) ? $setquery.",campomail = '$mail'" : "campomail = '$mail'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualeazienda != $azienda)
            $setquery = ((isset($setquery)) ? $setquery.",campoazienda = '$azienda'" : "campoazienda = '$azienda'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualeoccupazione != $occupazione)
            $setquery = ((isset($setquery)) ? $setquery.",campooccupazione = '$occupazione'" : "campooccupazione = '$occupazione'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)        
        if($attualeindirizzo != $indirizzo)
            $setquery = ((isset($setquery)) ? $setquery.",campoindirizzo = '$indirizzo'" : "campoindirizzo = '$indirizzo'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)        
        if($attualecitta != $citta)
            $setquery = ((isset($setquery)) ? $setquery.",campocitta = '$citta'" : "campocitta = '$citta'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)        
        if($attualecomune != $comune)
            $setquery = ((isset($setquery)) ? $setquery.",campocomune = '$comune'" : "campocomune = '$comune'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualeprovincia != $provincia)
            $setquery = ((isset($setquery)) ? $setquery.",campoprovincia = '$provincia'" : "campoprovincia = '$provincia'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualecap != $cap)
            $setquery = ((isset($setquery)) ? $setquery.",campocap = '$cap'" : "campocap = '$cap'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)        
        if($attualetelefono != $telefono)
            $setquery = ((isset($setquery)) ? $setquery.",campotelefono = '$telefono'" : "campotelefono = '$telefono'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
        if($attualefax != $fax)
            $setquery = ((isset($setquery)) ? $setquery.",campofax = '$fax'" : "campofax = '$fax'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)        
        
        mysql_query("UPDATE tabella SET $setquery WHERE id = '$id'");
    }  
    ?>[/php]
    
    Dato che il codice è molto lungo metto in spoiler.

  • ModSenior

    Dovresti fare:
    [php]
    if($attualeusername != $username && $username != '')
    [/php]


  • User

    Avrei un problemino con un checkbox per l'accettazione delle condizioni della registrazione.
    ho integrato una chekbox nel modulo di registrazione, e vorrei che gli utenti accettassero un informativa prima di inviare il form.
    Nel db (tabella utenti) ho aggiunto la voce "accept" con valore booleano, che poi quando lo salvo viene inserito come valore tinyint con valore 1. (questa non l'ho capita :?)
    comunque riporto lo script
    [PHP]<?php
    session_start();
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['registra']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    

    $accept = (isset($_POST['accept'])) ? trim($_POST['accept']) : ''; // Metto nella variabile 'accept il dato inviato dal modulo, se non viene inviato dò di default ''

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    

    $accept = addslashes($accept);
    }

    // Controllo il Nome Utente
    if(strlen($user) < 4 || strlen($user) > 12)
        die('Nome Utente troppo corto, o troppo lungo! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    // Controllo la Password
    elseif(strlen($pass) < 4 || strlen($pass) > 12)
        die('Password troppo corta, o troppo lunga; caratteri minimi 4 / massimi 12! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    // Controllo l'email
    elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $mail))
        die('ATTENZIONE: Email non valida, si prega ripettere la procedura di registrazione! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    // Controllo il nome utente non sia già occupato
    elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die('Nome Utente non disponibile! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    // Controllo l'indirizzo email non sia già registrato
    elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die('Questo indirizzo email risulta gi&agrave; registrato ad un altro utente! Si prega ritornare indietro cliccando la freccia sul Vostro browser'); 
    // Registrazione dell'utente nel database
    else
    {
        
        // Crypt della password per garantire una miglior sicurezza
        $pass = md5($pass);
        
        // Query per l'inserimento dell'utente nel database
        $strSQL = "INSERT INTO utenti (user,pass,mail,accept)";
        $strSQL .= "VALUES('$user', '$pass', '$mail', '$accept')";
        mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());
        
        // Reindirizzo l'utente ad una pagina di conferma della registrazione
        header('Location: registrato.php');
        exit;
    }
    

    }
    ?>
    [/PHP]

    ed ecco il form d'invio:
    [PHP]<form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
    <span class="Stile14">Accetto l'<a href="/informativa.php">informativa</a></span>
    <input name="accept" type="checkbox" id="accept" checked="checked" />
    <br />
    <input name="registra" type="submit" value="Registrati" />
    <input type="submit" name="reset" id="reset" value="Reset Campi" />
    <br />
    </form>[/PHP]

    morale della favola, quando provo ad inviare una registrazione ecco l'errore:
    [HTML]Errore 003, contattare l'amministratore Incorrect integer value: 'on' for column 'accept' at row 1[/HTML]

    come posso risolvere?
    grazie


  • ModSenior

    Se il campo è di tipo tinyint, devi apssare un valore numerico.
    Dovresti sostituire:
    [php]<input name="accept" type="checkbox" id="accept" checked="checked" />[/php]

    Con:
    [php]
    <input name="accept" type="checkbox" id="accept" checked="checked" value="1" />
    [/php]

    Inoltre dovresti controllare che $accept sia uguale a 1, se non è uguale a 1 significa che il checkbox non è spuntato.


  • User

    Ok TheDarkita per il checkbox tutto ok grazie. Adesso provo lo script per il recupero/cambio della password visto che non ho ancora provato. Se c'è qualcosa che non mi quadra ti faccio sapere.
    Thank.


  • ModSenior

    Prego. 😉


  • User

    Meno male che ci sei tu TheDarkita.
    Avrei un'altro problema, sto facendo la pagina per la cancellazione da parte degli utenti se lo desiderano, ma riscontro un problema ecco il codice:
    [PHP]<?php
    session_start();
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['cancella']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    }
    
    
    // Controllo il Nome Utente
    if(strlen($user) < 4 || strlen($user) > 12)
        die('Il nome utente non corrisponde a quello inserito al momento della registrazione');
    // Controllo la Password
    elseif(strlen($pass) < 4 || strlen($pass) > 12)
        die('La password non corrisponde a quella inserita al momento della registrazione');
    // Controllo l'email
    elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $mail))
        die('La email non corrisponde a quella inserita al momento della registrazione');
    // Controllo il nome utente non sia già cancellato
    elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die('Questa username non esiste nel nostro database! Verificare la username');
    // Controllo l'indirizzo email non sia già cancellata
    elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die('Questo indirizzo email non esiste nel nostro database. Verificare la email'); 
    // Cancellazione dell'utente nel database
    else
    {
        
        // Query per la cancellazione dell'utente nel database
        $strSQL = "DELETE FROM utenti (id,user,pass,mail)";
        $strSQL .= "VALUES('$user', '$pass', '$mail')";
        mysql_query($strSQL) OR die("Errore 003. <br>
    

    Possibile cause: <br>

    • uno o più dati sono errati.<br>

    • non ha inserito i suoi dati correttamente.<br>

    • errore del sistema.<br>
      Si prega tornare indietro e riprovare a cancellarsi o<br>
      contattare l'amministratore.<br>
      Failure because: ".mysql_error());

      // Messaggio d'errore
      die('NOME SITO - CANCELLAZIONE UTENTE CONFERMATA.<br>
      

    Grazie per avere utilizzato i nostri servizi,<br>
    sperando di riaverla prossimamente come utente<br><br>
    Saremmo lieti comunque sapere, inviadoci un email, se la sua cancellazione<br>
    al sito è dovuto a problemi riscontrati o<br>
    insoddisfazioni<BR>
    Grazie');
    exit;
    }
    }
    ?>[/PHP]
    Da notarsi che ho integrato la cancellazione dell'id:
    [PHP] $strSQL = "DELETE FROM utenti (id,user,pass,mail)";
    [/PHP].
    E' giusto? o devo modificare tutto il codice?
    ed ecco il form di cancellazione:
    [PHP]<form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
    <br />
    <input name="cancella" type="submit" value="Cancellarsi" />
    <input type="submit" name="reset" id="reset" value="Reset Campi" />
    <br />
    </form>[/PHP]
    Quando provo a eseguire (in locale con nome fittizio inserito già nel db) mi da questa risposta che ho integrato nello script:
    [PHP]Questa username non esiste nel nostro database! Verificare la username[/PHP]
    dove sto sbagliando?
    grazie.


  • ModSenior

    La sintassi corretta per la query di DELETE è la seguente:
    [php]
    $strSQL = "DELETE FROM utenti WHERE id = '$id' LIMIT 1";
    [/php]
    In $id ci deve essere l'id dell'utente da cancellare.


  • User

    Spiacente TheDarkita, ma lo script per la cancellazione non và, sicuramente sto sbagliando qualcosa.
    Ho creato un nuovo utente registrato e poi successivamente ho fatto in modo che questo utente si cancellase dal sito, (ahimè !:() non ho ottenuto la cancellazione.
    Potresti scrivermi il codice e il form? forse da li potrò capire dove sbaglio.
    Caspita se vede che sono proprio negato pe il php 😢
    Grazie.


  • ModSenior

    Ciao arkom,

    Non capisco perché hai rimesso controlli su email, password, ecc.
    Dovresti chiedere esclusivamente l'email di cancellazione e la password, fare una query per verificare che siano corretti, e se corretti far partire quella query di eliminazione.


  • User

    Spero di avere capito. La soluzione dovrebbe essere cosi?
    [PHP]<?php
    session_start();
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['cancella']))
    {

    // Dati Inviati dal modulo
    ['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    }
    
    
        // Controllo se la password sia giusta    
    

    if(mysql_num_rows(mysql_query("SELECT pass FROM utenti WHERE pass = '$pass' LIMIT 1")) == 1)
    die('Questa password non corrisponde a quella di registrazione. Verificare campo password!);
    // Controllo l'indirizzo email non sia già cancellata
    elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
    die('Questo indirizzo email non corrisponde a quella di registrazione. Verificare campo email');
    // Cancellazione dell'utente nel database
    else
    {

        // Query per la cancellazione dell'utente nel database
        $strSQL = "DELETE FROM utenti WHERE id = '$id' LIMIT 1";
        $strSQL .= "VALUES('$pass', '$mail')";
        mysql_query($strSQL) OR die("Errore 003. <br>
    

    Possibile cause: <br>

    • uno o più dati sono errati.<br>

    • non ha inserito i suoi dati correttamente.<br>

    • errore del sistema.<br>
      Si prega tornare indietro e riprovare a cancellarsi o<br>
      contattare l'amministratore.<br>
      Failure because: ".mysql_error());

      // Messaggio d'errore
      die('NOME SITO - CANCELLAZIONE UTENTE CONFERMATA.<br>
      

    Grazie per avere utilizzato i nostri servizi,<br>
    sperando di riaverla prossimamente come utente<br><br>
    Saremmo lieti comunque sapere, inviadoci un email, se la sua cancellazione<br>
    al sito è dovuto a problemi riscontrati o<br>
    insoddisfazioni<BR>
    Grazie');
    exit;
    }
    }
    ?> [/PHP]
    e cosi il form:
    [PHP]form action="" method="post">
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
    <br />
    <input name="cancella" type="submit" value="Cancellarsi" />
    <input type="submit" name="reset" id="reset" value="Reset Campi" />
    <br />
    </form>
    [/PHP]

    Questo è il massimo che ho potuto capire, spero che sia giusto.
    Grazie per tuo aiuto fino adesso.


  • ModSenior

    Come hai fatto tu c'è un problema, facendo le 2 query in quel modo, cerchi prima un qualsiasi utente con quella password e dopo un utente con quell'email, è possibile che si trovi l'utente A che usi quella password e l'utente B che usi quell'email, in pratica i dati sono errati.
    [php]
    <?php
    session_start();
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['cancella']))
    {

    // Dati Inviati dal modulo
    ['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    }
    
    $query = mysql_query("SELECT id FROM utenti WHERE mail = '$mail' ANDpass = '$pass' LIMIT 1");
        // Controllo se la password sia giusta    
    

    if(mysql_num_rows($query) == 0)
    die('Password e/o indirizzo email non valido');
    else
    {
    $a = mysql_fetch_array($query);
    // Query per la cancellazione dell'utente nel database
    $strSQL = mysql_query("DELETE FROM utenti WHERE id = '{$a['id']}' LIMIT 1");

        // Messaggio d'errore
        die('NOME SITO - CANCELLAZIONE UTENTE CONFERMATA.<br>
    

    Grazie per avere utilizzato i nostri servizi,<br>
    sperando di riaverla prossimamente come utente<br><br>
    Saremmo lieti comunque sapere, inviadoci un email, se la sua cancellazione<br>
    al sito è dovuto a problemi riscontrati o<br>
    insoddisfazioni<BR>
    Grazie');
    }
    }
    ?>
    [/php]


  • User

    Forse c' è un errore nello codice Thedarkita nella linea 10:
    [PHP]<?php
    session_start();
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['cancella']))
    {

    // Dati Inviati dal modulo
    ['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    }
    
    $query = mysql_query("SELECT id FROM utenti WHERE mail = '$mail' AND pass = '$pass' LIMIT 1");
        // Controllo se la password sia giusta    
    

    if(mysql_num_rows($query) == 0)
    die('Password e/o indirizzo email non valido');
    else
    {
    $a = mysql_fetch_array($query);
    // Query per la cancellazione dell'utente nel database
    $strSQL = mysql_query("DELETE FROM utenti WHERE id = '{$a['id']}' LIMIT 1");

        // Messaggio d'errore
        die('ERRORE NELLA  CANCELLAZIONE UTENTE.<br>
    

    Possibile cause: <br>

    • non ha inserito i suoi dati correttamente.<br>
    • errore del sistema.<br>
      Si prega tornare indietro e riprovare a registrarsi o<br>
      contattare amministratore del sito<BR>
      Grazie');
      // Reindirizzo l'utente ad una pagina di conferma della cancellazione
      header('Location: user_delete_ok.php');
      exit;
      }
      }
      ?>
      [/PHP]

    ossia in questa porzione del codice:
    [PHP] ['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, [/PHP]
    messaggio di errore:
    [HTML]Parse error: parse error in C:\Programmi\EasyPHP 3.0\www\self_delete.php on line 10[/HTML]
    Ahhh per la tua informazione avevo commesso un' errore alla fine del codice che ho modificato con un "header" in quanto nel codice immettevo un "die" con la scritta:
    [PHP]// Messaggio d'errore
    die('NOME SITO - CANCELLAZIONE UTENTE CONFERMATA.<br>
    Grazie per avere utilizzato i nostri servizi,<br>
    sperando di riaverla prossimamente come utente<br><br>
    Saremmo lieti comunque sapere, inviadoci un email, se la sua cancellazione<br>
    al sito è dovuto a problemi riscontrati o<br>
    insoddisfazioni<BR>
    Grazie');
    exit;
    }
    }
    ?> [/PHP]
    Ok aspetto la tua risposta per il parse error
    Grazie


  • ModSenior

    La riga incriminata devi toglierla, tu l'hai incollata cosi, e io non ci ho fatto caso.
    Per l'header non ho ben capito che hai fatto.
    Prego. 😉


  • User

    Ho provveduto a eliminare la righa fin qua tutto ok, ma quando provo con il form di cancellazione mi dice:
    [HTML]Password e/o indirizzo email non valido[/HTML]
    Penso che riguarda questa parte del codice che non va:
    [PHP]$query = mysql_query("SELECT id FROM utenti WHERE mail = '$mail' AND pass = '$pass' LIMIT 1");
    // Controllo se la password sia giusta
    if(mysql_num_rows($query) == 0)
    die('Password e/o indirizzo email non valido');[/PHP]
    Eppure l'utente fittizio che ho creato è stato registrato correttamente; in quanto ho esaminato il DB è vi è inserito.

    Per quello che riguarda la fine del codice era un errore mio, invece di rimandare l'utente ad una pagina di conferma dell' avenuta cancellazione della sua registrazione avevo inserito un'interruzione del processo con un "die". Errore madornale :arrabbiato:
    Per adesso grazie, e spero che ce la faciamo a funzionare sto codice di cancellazione utente, aspetto un'ennesimo tuo parere.