Visualizzazione risultati 1 fino 3 di 3
Like Tree1Likes
  • 1 Post By GraphOGLRisorse

Discussione: Problema con passaggio dati da form e pagina PHP a MYSQL

  1. #1
    teamup non è connesso Neofita
    Data registrazione
    09-10-2020
    Messaggi
    1

    Predefinito Problema con passaggio dati da form e pagina PHP a MYSQL

    Ciao a tutti! Sto sviluppando una piattaforma web utilizzando HTML,CSS,JAVASCRIPT,PHP E MY SQL.

    Mi trovo in una sezione dove consento all'utente di "aggiornare" le informazioni del suo profilo, inserendole all'interno di campi di un form e inviando tali campi a una pagina PHP. Non voglio rendere la compilazione di tutti i campi obbligatoria ( es: voglio cambiare la email ma non sono costretto a reinserire il mio nome e cognome) ... Così , all'interno dello script PHP , ho salvato i risultati di $POST in un array che, in base al contenuto di un suo elemento, lo userà per aggiornare una riga di una tabella( quella corrispondente allo userID in sessione) .

    Il problema è che, alla fine del ciclo e dei controlli , la tabella del database risulta essere ANCORA VUOTA. Qualcuno può aiutarmi? Grazie!


    HTML FORM:

    Codice HTML:
      <!-- Dati Personali -->
                        <div class="register-top1 py-lg-3">
                            <div class="title-sec-w3layouts_pvt text-center">
                                <h4 class="w3layouts_pvt-head"><a name="Pdata">Dati Personali</a></h4>
                            </div>
                            <form action="userinfopost.php" method="post" enctype="multipart/form-data" class="register-wthree pt-md-5 pb-md-0 py-4">
                                <div class="form-group">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>
                                                Nome
                                            </label>
                                            <input class="form-control" type="text" placeholder="Carlo" name="nome"
                                                required="">
                                        </div>
                                        <div class="col-md-6 mt-md-0 mt-4">
                                            <label>
                                                Cognome
                                            </label>
                                            <input class="form-control" type="text" placeholder="Rossi" name="cognome" required="">
                                        </div>
                                    </div>
                                </div>
    							<div class="form-group">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>
                                                Data di nascita
                                            </label>
                                            <input class="form-control" type="date"  name="compleanno"
                                                required="">
                                        </div>
                                        <div class="col-md-6 mt-md-0 mt-4">
                                            <label>
                                                Luogo di residenza
                                            </label>
                                            <input class="form-control" type="text" name="residenza" required="">
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <label>
                                                Mobile
                                            </label>
                                            <input class="form-control" type="text" placeholder="+39 3485214788" name="cell"
                                                required="">
                                        </div>
                                        <div class="col-md-6 mt-md-0 mt-4">
                                            <label>
                                                Email
                                            </label>
                                            <input class="form-control" type="email" placeholder="example@email.com" name="email"
                                                required="">
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="row">
                                        <div class="col-md-6 mt-md-0 mt-4">
                                            <label>
                                                Immagine del profilo &nbsp &nbsp											
                                            </label>
                                        </div>
                                    </div>
    								     <div class="row">
    
    								 <div class="col-md-6 mt-md-0 mt-4">
    								   <input name="image" type="file" />
    
                                    </div>
                                      </div>
                                </div>
                                <div class="row mt-3">
                                    <div class="col-md-12">
                                        <button type="submit" class="btn btn-agile btn-block w-100 font-weight-bold text-uppercase bg-theme">Invia</button>
                                    </div>
                                </div>
                            </form>
                        </div>
    					<hr>
                        <!--  //Dati personali-->



    PHP:

    Codice PHP:
    <?php

    session_start
    (); // inizializzo la sessione


    //collegamento DB
    $db=mysql_connect("localhost","teamup","");
    // Qui sotto al posto di NOME_DATABASE, inserite il nome del vostro DB
    mysql_select_db("my_teamup");

    //Riconoscimento utente
    $userid=$_SESSION["id"];

    /* impostiamo la query per riconoscere l'utente */
    $sqlquery = "SELECT * FROM Users WHERE id='$userid'";
    $result = mysql_query($sqlquery);
    $number = mysql_num_rows($result);


    $i = 0;
    if (
    $number < 1) {
    print
    "<center><p>Nessun utente riconosciuto</p></center>";
    }else{
    while (
    $number > $i) {
    $usercode = mysql_result($result,$i,"cod_utente");
    $i++;
    }
    }
    $i=0;

    $nome=$_POST["nome"];
    $cognome=$_POST["cognome"];
    $compleanno=$_POST["compleanno"];
    $residenza=$_POST["residenza"];
    $cellulare=$_POST["cell"];
    $email=$_POST["email"];

    $form[]=$usercode;
    $form[]=$nome;
    $form[]=$cognome;
    $form[]=$compleanno;
    $form[]=$residenza;
    $form[]=$cell;
    $form[]=$email;

    $lenght=count($form);


    while (
    $lenght>=0){
    if(
    $form[$lenght]!=""){

    switch (
    $lenght) {
    case
    0:
    $query="INSERT INTO personal_data(utente) VALUES ('$usercode')";
    break;
    case
    1:
    $query="UPDATE personal_data SET nome='$nome' WHERE utente='$usercode'";
    break;
    case
    2:
    $query="UPDATE personal_data SET cognome='$cognome' WHERE utente='$usercode'";
    break;
    case
    3:
    $query="UPDATE personal_data SET data_nascita='$compleanno' WHERE utente='$usercode'";
    break;
    case
    4:
    $query="UPDATE personal_data SET residenza='$residenza' WHERE utente='$usercode'";
    break;
    case
    5:
    $query="UPDATE personal_data SET mobile='$cellulare' WHERE utente='$usercode'";
    break;
    case
    6:
    $query="UPDATE personal_data SET emai='$email' WHERE utente='$usercode'";
    break;
    case
    7:
    break;
    }
    }
    $ins=mysql_query($query);
    --
    $lenght;
    }
    $ref = $_SERVER['HTTP_REFERER'];
    header('refresh: 0; url='.$ref);

    ?>

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Può fare l'aggiornamento UPDATE solamente se è già presente nel database, $form inizialmente avrà 7 array, quindi $lenght
    vale 7 ma per UPDATE occorre che $usercode esista mentre se esiste $usercode non dovrebbe inserire (case 0) ma tu lo stai inserendo giustamente perché in un'altra tabella dove non sarà presente.
    Attenzione $usercode esiste solo quando trova corrispondenza, dovresti usare l'operatore ternario (o if) e comunque inserire $usercode in personal_data come prima istruzione
    Codice PHP:
    $form[]=$number ? $usercode : '';
    lo stesso discorso varrebbe anche per la variabile $_POST.
    Dentro lo switch devi considerare solo 6 casi a esclusione del case 0 che termina il while, dunque al case 7 inserisci quello che stai attualmente utilizzando per il case 0 e lo switch (ltrim($form[0], '0') && $length) altresì modifica anche il while perché con il valore zero deve terminare while ($lenght){
    Nota* 1 usercode non dovrà mai essere null, false, stringa vuota o sequenza numerica che abbia esattamente lo zero.
    2 effettivamente non termina li switch con il valore zero ma termina il while.
    Ultima modifica di darbula : 27-10-2020 alle ore 15.33.50

  3. #3
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,998

    Predefinito

    Salve,
    il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso anche mysql.
    La versione di php 5.3 non è più supportata dal 2014, essa è stata rimosso da AlterVista il 26 maggio 2020.

    per evitare errori d'incompatbilità quando php 5.6 non sara più supportata su AlterVista, le suggerisco di passare a MySQLi o PDO.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 27-10-2020 alle ore 14.54.49
    mzanella likes this.

Regole di scrittura

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