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

Discussione: controllo dati

  1. #1

    controllo dati

    salve a tutti
    sto creando un form di registrazione per un sito, usando ovviamente html, js e php, solo che sto riscontrando alcune difficoltà..
    finche provavo in locale tutto andava, ora che ho messo tutto su aruba ho problemi con jquery.
    in sostanza se prima richiamavo un file esterno semplicemente scrivendo ->
    jQuery.post('control.php', {username: userValue}, function(result) ecc ecc
    ora sul server non me lo vede più (ho come la sensazione che si debba modificare il percorso di control.php, anche se ancora non so come, viste le mille storie per creare una cartella z.z)
    anyway questo è il minore dei problemi, ma se aveste una soluzione sarebbe perfetto
    il mio più grosso problema è che quando compilo il form e mi registro, si mi inserisce i dati nel db e tutto il resto, compreso il reindirizzamento, però se durante l'attesa del reindirizzamento aggiorno la pagina, 'sto maledetto mi reinserisce i record del form nel db, nuovamente
    quindi ho provato, che prima dell'inserimento dei record nel db, mi facesse una query, che prende tutti i record nel db, e controlla le colonne username e email, e se essi son esistenti (appunto se aggiorno la pagina), mi reindirizza direttamente alla home previo messaggio di errore, se non son esistenti me li inserisce (nel caso appunto in cui la registrazione va a buon fine e non aggiorno la pagina), ma ahime non funziona
    allego il file data.php
    (ovviamente la parte relativa al testo la sistemo alla fine di tutti i lavori, non dateci troppo peso per cortesia
    mi scuso anticipatamente se puo sembrare una cosa fatta male, ma ho ancora poca esperienza

    grazie in anticipo per gli eventuali aiuti
    File allegati File allegati

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Codice PHP:
            ...
             
    $query "    SELECT * FROM utenti";
             
    $result mysql_query ($query$db) or die (mysql_error ($db));
             
    $usr $result['username'];
             
    $mail $result['email'];    
             if (
    $user != $_POST['user'] && $mail != $_POST['email'])     {
                    
    $query "    INSERT INTO utenti (nome, cognome, username, password, email, sesso, club, ... 
    E' decisamente sbagliato. $result è una resource, non un array. Per vedere se c'è già un utente basta che fai:

    Codice PHP:
       $usr mysql_real_escape_string($_POST['username']);
       
    $mail =  mysql_real_escape_string($_POST['email']);   
       
    // Probabilmente vorrai che email e username sia unici singolarmente 
       
    $result mysql_query("SELECT * FROM utenti where username = '$usr' OR email = '$mail' "); 
       if(
    mysql_num_rows($result) == 0){
            
    // Inseriemento  
       
    }else{
           
    // username o email già registrati  
       

    Inoltre:
    1 dovresti fare l'escape (mysql_real_escape_string() ) su tutti i dati che ti arrivano dall 'utente
    2 dovresti validare i dati anche lato server con PHP(es se la mail è una mail valida, se i campi richiesti siano valorizzati, etc)

  3. #3
    Quote Originariamente inviata da boots Visualizza il messaggio
    Codice PHP:
            ...
             
    $query "    SELECT * FROM utenti";
             
    $result mysql_query ($query$db) or die (mysql_error ($db));
             
    $usr $result['username'];
             
    $mail $result['email'];    
             if (
    $user != $_POST['user'] && $mail != $_POST['email'])     {
                    
    $query "    INSERT INTO utenti (nome, cognome, username, password, email, sesso, club, ... 
    E' decisamente sbagliato. $result è una resource, non un array. Per vedere se c'è già un utente basta che fai:

    Codice PHP:
       $usr mysql_real_escape_string($_POST['username']);
       
    $mail =  mysql_real_escape_string($_POST['email']);   
       
    // Probabilmente vorrai che email e username sia unici singolarmente 
       
    $result mysql_query("SELECT * FROM utenti where username = '$usr' OR email = '$mail' "); 
       if(
    mysql_num_rows($result) == 0){
            
    // Inseriemento  
       
    }else{
           
    // username o email già registrati  
       

    Inoltre:
    1 dovresti fare l'escape (mysql_real_escape_string() ) su tutti i dati che ti arrivano dall 'utente
    2 dovresti validare i dati anche lato server con PHP(es se la mail è una mail valida, se i campi richiesti siano valorizzati, etc)
    i controlli avevo intenzione di integrarli alla fine, quando tutto funziona, in modo da procedere con ordine ^_^ ma grazie per il suggerimento (anche se devo dire che già sul controllo in js avevo impedito l'inserimento di tag et simila)
    la convalida dei dati la faccio lato client con js, se l'email ha un formato regolare, se è presente nel db ecc ecc, idem per tutti gli altri campi
    devo inoltre dire che decisamente la tua porzione di codice mi salva davvero, grazie mille, purtroppo sono ancora un dilettante che sta imparando, ma col tempo mi perfezionerò sicuramente
    corro subito a provare quello che mi hai detto

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    I controllo vanno fatti SEMPRE anche lato server...lato client si può bypassare tutto

  5. #5
    eseguirò o.o grazie mille

  6. #6
    boots, visto che sei uno che se ne intende, non è che potrei aggiungerti su skype? non vorrei andare offtopic qui, visto che ho dei seri problemi con php e a livello logico è tutto corretto, anche a livello pratico, ma da una parte funziona e da un'altra no... non esagererei dicendo che mi salveresti la vita, visto che sto totalmente impazzendo

  7. #7
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    ... non ho skype
    Cmq posta sul forum...magari ci sono altri che potrebbero aiutarti

  8. #8
    si ma dovrei aprire nuovi thread xD
    p.s. ho provato il tuo codice e non funziona (ovviamente ho anche provato a modificarlo varie volte)
    p.p.s. è davvero pesante con IE11 sto sito :S
    Ultima modifica di Shakugan; 17-03-2014 a 13:50

  9. #9
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Che problemi hai? posta il codice

  10. #10
    attualmente mi son bloccato su uno step precedente a quello parlato all'inizio di questo thread, finche non risolvo questa cosa, aspetto a tornare su questo, grazie mille per l'interessamento, tra poco comunque credo mi rifarò vivo

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