Visualizzazione risultati 1 fino 21 di 21

Discussione: estensione mysqli

  1. #1
    Guest

    Predefinito estensione mysqli

    Salve a tutti,

    Vorrei sapere un'informazione. Questa query che posto ora è corretta dal punto di vista mysqli o ho scritto una kazzata (scusate l'espressione) ???? Grazie.


    Codice PHP:

    $query
    =$con->query("SELECT username,email FROM uty WHERE username='$username' AND email='$email'");

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Mi sembra corretta, qual'è il problema?

  3. #3
    Guest

    Predefinito Ciao

    dubbio visto che non sono pratico con mysqli volevo capire se era corretta o meno. Senti visto che ci siamo mi p uoi analizzare anche quest'altra stringa di inser into per favore:

    Codice PHP:

    $con
    ->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')");
    Questa è la query per inserire i dati ma quando li vado ad inserir emi da errore. E'nserits in questo contesto:

    checkdate.php

    Codice PHP:

    <?php
    require_once("connettimysqli.php");

    $email=$_POST['email'];

    $query="SELECT username,email FROM uty WHERE username='$username' AND email='$email'";

    $result=$con->query($query);

    // controllo l'esito della query
    if($result->num_rows > 0) {
    // Lancio una query per inserire tre righe nella tabella
    echo "Utente libero";
    $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')");


    echo
    'Dati inseriti correttamente';

    }else {
    echo
    "Utente occupato";
    echo
    'Errore nella query';

    }
    ?>
    In pratica, lui dovrebbe controllarmi con quella query di prima se i nominativi che inserisco sono presenti o meno nel db. Se sono presenti mi dovrebbe dire attenzione è già presente, invece se non ci sono con una "V" di libero. Non sono riuscito a farlo funzionare. Se mi puoi dare unì'occhiata e una mano per favore mi faresti un piacere. Considera che c'è una chiamata ajax in un file chiamato iscrizione.php Grazie.

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Anzitutto, scritte così, le query sono vulnerabili ad attacchi di tipo SQL injection, un malintenzionato può con facilità ottenere l'accesso al tuo database. Per evitare questo tipo di attacchi è consigliabile usare il metodo prepare.
    E poi, dove la definisci la variabile $username?

  5. #5
    Guest

    Predefinito Ciao

    per definirla la debbo fare cos' s enon erro:

    Codice PHP:



    $username
    =$_POST['username'];


    $email=$_POST['email'];
    Sbaglio ????? Ma ouò funzionare la struttura ??? Come lo congeniata oppure è una semplkice cavolata aparte gli eventuali attacchi. Per adesso è tutto in locale.

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da fabiodefe Visualizza messaggio
    per definirla la debbo fare cos' s enon erro:

    Codice PHP:



    $username
    =$_POST['username'];


    $email=$_POST['email'];
    Esatto, così funziona?

  7. #7
    Guest

    Predefinito

    provo e ti dico. Sul mio editor che è netbeans mi da errore sulle dichiarazioni di username e d email non il perchè

  8. #8
    Guest

    Predefinito

    Allora ti rispondo al post precedente. Non va. Non mi memorizza i dati nel db e non mi fa nessun controllo che dovrebbe fare. In finale mi da questo errore qua: "Utente occupatoErrore nella query". Dove sta l'inghippo ???

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da fabiodefe Visualizza messaggio
    Codice PHP:
    $result->num_rows > 0
    Se il numero di righe restituito dalla query è maggiore di zero, allora l'utente è presente. Tu invece vai a scrivere utente libero ed aggiungi il relativo record.

  10. #10
    Guest

    Predefinito Ciao

    Ho fatto le modifiche,

    Spero che vadano bene:

    Codice PHP:


    <?php
    require_once("connettimysqli.php");

    $username=$_POST['username'];

    $email=$_POST['email'];

    $query="SELECT username,email FROM uty WHERE username='$username' AND email='$email'";

    $result=$con->query($query);

    // controllo l'esito della query
    if( $result->num_rows > 0 ) {
    // Lancio una query per inserire tre righe nella tabella
    $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')");


    echo
    'Dati inseriti correttamente';

    }else {

    echo
    'Errore nella query';

    }
    ?>
    Ora lo provo e ti dico. intanto me lo piuoi ricontrolare per favore. Grazie.

  11. #11
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Cos'è cambiato? È praticamente come prima.

  12. #12
    Guest

    Predefinito Ciao

    Questo che mi sembra fosse sbagliato:

    Codice PHP:

    // controllo l'esito della query
    if( $result->num_rows > 0 ) {
    Però ho visto non funziona. Non memorizza. Non riesco a capire dove sbaglio

  13. #13
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    A me sembra uguale a prima, cosa è cambiato? Il problema è che la seconda query (quella che inserisce il nuovo record) non viene eseguita a meno che la prima non restituisca qualcosa. Quindi viene inserito un nuovo utente solo se esiste già un utente con quei dati, il che non credo sia il risultato che vuoi ottenere.

  14. #14
    Guest

    Predefinito Ciao

    no assolutamente no. Questa è il secondo risultato che vorrei ottenere. ossia se un utente esiste nel db mi ci metti una "X" altrimenti una "V" pe rindicare che libero. Allora ho capito dove ho sbagliato. correggimi se sbaglio per favore:


    Codice PHP:


    <?php
    require_once("connettimysqli.php");

    $con->query("INSERT INTO uty (username, email) VALUES ('$username', '$email')");

    echo
    "Dati inseriti correttamente...";
    ?>
    Dovrebbe essere così giusto ????

  15. #15
    Guest

    Predefinito

    e di fatto così funziona. ma per avere un controllo completo sull'inserimento dei dati cosa debbo fare ?????

  16. #16
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da fabiodefe Visualizza messaggio
    e di fatto così funziona. ma per avere un controllo completo sull'inserimento dei dati cosa debbo fare ?????
    In che senso?

  17. #17
    Guest

    Predefinito

    cscusami per l'assenza ma stavo in cucina a cuicnare. Allora, il mio obiettivo è il seguente: Fare un form con l'asincronizzazione dei dati. ossia mentre inserisco un determinato dato dovrebbe segnalarmi se esiste o meno nel db se esiste mi mette una "X" e se non esiste mi mette una "V". Ovviamente se saltano dei campi da compilare bisognerebbe segnalarlo con un bordo rosso. Sono installo da mei su questa cosa che non riesco a fare. Spero che tu mi possa risolvere il problema.

  18. #18
    Guest

    Predefinito

    Ciao karl94,

    Volevo sapere se avevi rinunciato a capirmi oppure se sei sempre disponbile ad aiutarmi. Asprtto una tua risposta grazie.

  19. #19
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Dunque, vediamo di comprendere la situazione: stai sviluppando un qualche modulo per la registrazione degli utenti, giusto? E vuoi che i vari campi vengano validati e controllati in tempo reale, corretto?
    Per esempio vorresti che l'utente, non appena compilato il campo nome utente sappia se quello che ha scelto è disponibile?
    Ma in tutto ciò, lo script in questione a cosa serve? Da come è scritto sembra piuttosto sia una bozza dello script che riceve i dati del modulo e li registra nel database.

  20. #20
    Guest

    Predefinito Ciao

    E di fatti è così. hai ricapitolato tutto alla perfezione. Ora come posso strutturarla per avere ciò che desidero ???? Considera che la pagina html del modulo è già pronta e ta la posto. C'è in fondo il check che abilita il tasto "invio dati" che serve per accettare i termini e la privacy. Come ogni form che si rispetti. Questo è il modulo d'isscrizione:

    Codice PHP:

    <html>
    <
    head>
    <
    script src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
    <script
    <script type="text/javascript">
    $(function()
    {
    $('input').keyup(function()
    {
    var cognome= $('#cognome').val();
    var nome= $('#nome').val();
    var username = $('#username').val();
    var email = $('#email').val();
    var ripemail = $('#ripemail').val();
    var password = $('#password').val();
    var ripassw = $('#rippasw').val();

    }
    }
    </script>

    <script type="text/javascript">
    function unlock(el1, el2) {
    if(el1.checked) {
    document.getElementById(el2).disabled = false;
    } else {
    document.getElementById(el2).disabled = 'disabled';
    }
    }
    </script>
    </head>
    <body>
    <div align="center">
    <h2>Esempio form di registrazione</h2>
    </div>
    <form name="iscrizione" action="checkdate.php" method="POST" id="iscrizione">

    <div style='font-family:Comic Sans MS; font-size: 20px'>

    <label for="cognome">Cognome: <input type="text" id="cognome" name="cognome" /></label>

    <p><p> <label for="nome">Nome: <input type="text" id="nome" name="nome" /></label> </p></p>

    <p><p><label for="username">Username: <input type="text" id="username" name="username" /></label> </p></p>

    <p><p><label for="email">Email: <input type="text" id="email" name="email" /></label> </p></p>

    <p><p><label for="ripemail">Rip-Email: <input type="text" name="ripemail" id="ripemail" autocomplete ="off"/></label> </p></p>

    <p><p><label for="password">Password: <input type="password" id="password" name="password," /></label> </p></p>

    <p><p><label for="ripassw">Rip-Password: <input type="ripassw" id="password" name="ripassw" /></label> </p></p>


    <!-- <input type="checkbox" name="accetta" value="accetta"/> Spuntare per accettare i termi di regolamento e la privacy -->

    <input type="checkbox" name="privacy" value="1" onclick="unlock(this, 'btn1')" /> Spuntare per accettare i <a href="http://utenti/iscrizioneajax/regolamentoprivacy.php">termi di regolamento e la privacy. </a>


    <div style ="text-align: center">
    <input type="submit" name="Submit" style ="font-family: Comic Sans MS; font-size:25px" id="btn1" value="Invia dati" disabled="disabled">
    </div> </div>
    </form>
    </body>
    </html>
    Mi sono accorto che manca la connessione ajax pensavo di averla invece no. Il file checkdate serve appunto per fare la sincronizzazione dei dati immessi dall'utente.

  21. #21
    Guest

    Predefinito Ciao

    Ciao karl94,

    Per caso sei riuscito a trovare una soluzione idonea al mio problema ???

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •