Visualizzazione risultati 1 fino 12 di 12

Discussione: problemi con mysqli

  1. #1
    Guest

    Predefinito problemi con mysqli

    Salve a tutti,

    Ho iniziatod a capo il mio codcie che avevo postato mi sono accorto che è un gran casino 8scusate x il termine) Detto ciò posto il nuovo codice che sto facendo campo x campo cerncando di mettere anche i controlli necessari per gli eventuali "sbadati" che non mettono la "@" nell'inserimento email oppure che lasciano il campo vuoto. Questo è quanto ho fatto in pochi minuti adesso.

    provains.php

    Codice PHP:

    Codice PHP:
    <?php


    require_once("connettimysqli.php");
    require_once(
    "data.php");
    echo
    "</hr>";


    $id = mysqli_real_escape_string($con, $id);
    $nome = mysqli_real_escape_string($con, $nome);
    $cognome = mysqli_real_escape_string($con, $cognome);
    $username = mysqli_real_escape_string($con, $username);


    echo
    '<div class ="messaggio">';

    $errore = "";

    if (
    cognome == ""){$errore .= "Attenzione il campo è vuoto";}



    ?>
    <div id ="messaggio">
    <?php
    if(!empty($_POST)){

    $query=("INSERT INTO utenti (cognome, nome, username) VALUES('$cognome','$nome','$username'')");
    $result=mysqli_query($con,$query);

    if(
    $result){
    echo(
    "<p> Inserimento avvenuto correttamente <p>");
    } else{
    echo(
    "<br>Inserimento non eseguito");
    }
    }
    ?>
    </div>
    </body>
    </html>
    Questo spezzone di codice che posto isolatamente:

    Codice PHP:

    Codice PHP:
    $errore = "";

    if (
    cognome == ""){$errore .= "Attenzione il campo è vuoto";}
    Dovrebbe far si che se il campo "cognome" risulta vuoto alla fine della registrazione glielo indica purtroppo semplice php, mi piacerebbe farlo in java o ajax ma sembra non funzionare. Inoltre non mi memorizza i dati Domanda perchè tutte queste complicazione ogni volta che debbo fare qualcosa di nuovo ???? Risposta: bah !!!! Spero che qualcuno mi possa aiutare, grazie.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,188

    Predefinito

    Ti sei dimenticato il simbolo del dollaro: non è così:
    Codice PHP:
    if (cognome == "")
    Ma è:
    Codice PHP:
    if ($cognome == "")
    o meglio:
    Codice PHP:
    if (empty($cognome))
    ----

    Nella query:
    Codice PHP:
    ...,'$username'')");
    Perché ci sono due singoli apici? Non dovrebbe essere così?:
    Codice PHP:
    ...,'$username')");
    ---

    In ogni caso, è molto importante far stampare il messaggio di errore in caso di errore della query: inserisci mysqli_error() in questo modo:
    Codice PHP:
    echo("<br>Inserimento non eseguito. Errore: ".mysqli_error($con));
    Così facendo oltre ad indicarti che l'inserimento non viene eseguito, il messaggio ti da una grande mano a scovare l'errore.

    Ciao!
    Ultima modifica di alemoppo : 15-05-2016 alle ore 20.13.49

  3. #3
    Guest

    Predefinito

    Grazie alemoppo. Domani correggo e ti faccio sapere.

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    E non dimenticare gli attributi del tag input che ti salvano un sacco di lavoro, senza scomodare javascript:
    Codice HTML:
    <input required type="text" name="campo-cognome" />
    ...
    <input required type="email" name="campo-email" />

  5. #5
    Guest

    Predefinito

    Ok grazie dei consigli correzioni e suggerimenti. Ma se io lo volessi abbellire con i form che si vedono in ogni forum ossia con controlli diretti risposte immediate sopratutto su username, email e poi su gki altri campi anziché il rettangolo rosso come compare ora ma con un semplice disegnino a fianco degli input è fattibile ?????

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    È fattibile, ma è qualcosa che puoi aggiungere dopo, quando tutto il resto funziona. Se il resto del sito non fa niente, avere effetti speciali al momento della registrazione non è una grande vantaggio.

  7. #7
    Guest

    Predefinito

    Ok spero di andare avanti da solo. Comunque grazie ancora x i consigli. Scusate se scrivo male ma è colpa della tastiera del cell. troppo piccola. Na accontentiamoci. Buona serata axtutti e a presto.

  8. #8
    Guest

    Predefinito problemi con mysqli

    Sono di nuovo io. Ho fatto le dovute correzioni che mi sono state segnalate. I tag input mi sembrano chiusi tutti quanti. Solo continua a memorizzarmi da ti in bianco:


    Codice PHP:
    <?php


    require_once("connettimysqli.php");
    require_once(
    "data.php");
    echo
    "</hr>";


    $id = mysqli_real_escape_string($con, $id);
    $nome = mysqli_real_escape_string($con, $nome);
    $cognome = mysqli_real_escape_string($con, $cognome);
    $username = mysqli_real_escape_string($con, $username);

    echo
    '<div id ="messaggio">';

    if(!empty(
    $_POST)){

    $query=("INSERT INTO utenti (cognome, nome, username) VALUES('$cognome','$nome','$username')");
    $result=mysqli_query($con,$query);

    if(
    $result){
    echo(
    "<p> Inserimento avvenuto correttamente <p>");
    } else{
    echo(
    "Inserimento non eseguito. Errore: ".mysqli_error($con));
    }
    }
    ?>
    </div>
    </body>
    </html>
    Mancano solo i controllo che debbo aggiungere e i request per fa venire il bordo rosso e il messaggio del campo. Ma se prima non risolvo la memorizzazione datii è inutile che metto tutte queste cose. Tanto per ora gira in locale.

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,188

    Predefinito

    Ma dentro data.php c'è una cosa così o equivalente?:
    Codice PHP:
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    etc etc
    ?

    Ciao!

  10. #10
    Guest

    Predefinito problemi con mysqli

    nel file data c'è solo il richiamo della data attuale. Niente di più Se vuoi ti mando il listato completo sta tutto in una pagina.

    Codice PHP:
    <!DOCTYPE html>

    <html>
    <head>
    <meta charset="UTF-8">
    <title>Modulo Iscrizione</title>

    <style type="text/css">

    #intestazione{
    width:100%;
    height:100px;
    position:absolute;
    font-family: Comic Sans MS;
    top:0px;
    left:0px;
    text-align: center;
    }
    #divhr {

    position:absolute;
    top: 100px;
    font-family:Comic Sans MS;
    }
    #messaggio {

    position:relative;
    top:400px;
    font-family:Comic Sans MS;
    color:#ff0000;
    }

    </style>

    <div id ="intestazione">
    <H1>BENVENUTI NEL MODULO D'ISCRIZIONE</H1>
    <hr>
    </div>

    <div id ="divhr">
    <form method="POST" autocomplete ="off" action="<?php $_SERVER['PHP_SELF'] ?>">

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

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

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

    <p> <p><label for =campo-email"> E-Mail: </label> <input type ="email" name = "email"> </p></p>

    <p> <p><label for =campo-ripemail"> Ripeti-Email: </label> <input type ="email" name = "ripemail"> </p></p>

    <p> <p><label for =campo-password"> Password: </label> <input type ="password" name = "password"> </p></p>

    <p> <p><label for =campo-rippasswrd"> Ripeti-password: </label> <input type ="password" name = "rippassword"> </p></p>


    <div id = "center">
    </p>
    <input type="submit" name="log" value="Invio iscrizione" />
    </div>
    </div>

    </form>

    </head>
    <body>
    <?php
    if(!isset($_POST[log])){


    require_once (
    "connettimysqli.php");
    require_once (
    "data.php");
    echo
    "</hr>";

    # Inizializzazioni variabili

    $id = mysqli_real_escape_string($con, $id);
    $cognome = mysqli_real_escape_string($con, $cognome);
    $nome = mysqli_real_escape_string($con, $nome);
    $username = mysqli_real_escape_string($con, $username);
    $email = mysqli_real_escape_string($con, $email);
    $ripemail = mysqli_real_escape_string($con, $ripemail);
    $passwrod = mysqli_real_escape_string($con, $password);
    $rippassword = mysqli_real_escape_string($con, $rippassword);


    #Inizamo a controllare il carattere inserito per l'email che sia corretto

    $ok_ko ="";

    if(
    cognome == ""){$errore .= "Attenzione il campo è vuoto";
    //controllo campi compilati

    if($cognome ==""){$ok_ko .= "Attenzione: il campo nome deve essere compilato. <br> <br>";}
    if(
    $nome ==""){$ok_ko .= "Attenzione: il campo cognome deve essere compilato. <br> <br>";}
    if(
    $username ==""){$ok_ko .= "Attenzione: il campo username deve essere compilato. <br> <br>";}
    if(
    $email ==""){$ok_ko .= "Attenzione: il campo email deve essere compilato. <br> <br>";}
    if(
    $password ==""){$ok_ko .= "Attenzione: il campo password deve essere compilato. <br><br>";}




    $query="INSERT INTO utenti(ncognome, nome, username, email, password) VALUES('$cognome','$nome','$username','$email','$password')";
    $result=mysqli_query($con,$query);

    if(
    $result){
    echo(
    "<p> Inserimento avvenuto correttamente <p>");
    } else{
    echo(
    "<br>Inserimento non eseguito");
    }
    }
    //Graffe chiusa tasto log (invio dati)
    ?>

    </body>
    </html>
    Questo è la pagina iscrizione.php

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,188

    Predefinito

    Ma i dati $cognome $id $nome etc devi prenderli da $_POST['cognome'] $_POST['nome'] etc!
    Sostituisci tutte queste:
    Codice PHP:
    $id = mysqli_real_escape_string($con, $id);
    così:
    Codice PHP:
    $id = mysqli_real_escape_string($con, $_POST['id']);
    Ciao!

  12. #12
    Guest

    Predefinito

    Ciao alemoppo,

    Sei un grande risolto il problema di tre giorni. Cavolo che cojone (scusa il termine) che so stato. Grazie. Ora memorizza correttamente e posso andare avanti con le verifiche. Qualche suggerimento per le verifiche dei campi vuoti e che siano lettere e non caratteri strani ??? Ovviamente tranne per l'email ??? Grazie ancora dell'aiuto :P Scusa, solo per verificare che siano lettere nei campi text e l'email. Il resto ho visto sopra che mi avevi scritto ieri.
    Ultima modifica di fabiodefe : 16-05-2016 alle ore 13.48.00

Regole di scrittura

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