Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema database

  1. #1

    problema database

    Ragazzi ho fatto uno script dove legge le username registrate nel db, se non c'è la username scelta dall'utente lo registra , altrimenti gli dice che il nick è già presenta, ma non riesco a capire perchè non fuziona, mi sembra tutto apposto, ma il controllo sull'username non funge.

    Codice PHP:
    <?php
    include('ammbar.php');
    ?>

    <?
    if (isset($_POST['submit']) && $_POST['submit']=="invia")
    {

    // controllo usernae
    include('./config.php');
    $f_sql "SELECT username FROM paziente_docware";
    $f_query = @mysql_query($f_sql);
    $f_row = @mysql_fetch_array($f_query);
    echo 
    $f_row['username'];
    echo 
    $_POST['username'];
    if (
    $_POST['username'] == $f_row['username'])
            {
                echo 
    "<script>";
                                        echo 
    "alert('Nickname  presente nel database');";
                                        echo 
    "</script>";
    } else {

        
    // Imposto la lunghezza della password a 10 caratteri
    $lung_pass 10;

    // Creo un ciclo for che si ripete per il valore di $lung_pass
    for ($x=1$x<=$lung_pass$x++)
    {
      
    // Se $x è multiplo di 2...
      
    if ($x 2){

        
    // Aggiungo una lettera casuale usando chr() in combinazione
        // con rand() che genera un valore numerico compreso tra 97
        // e 122, numeri che corrispondono alle lettere dell'alfabeto
        // nella tabella dei caratteri ASCII
        
    $mypass $mypass chr(rand(97,122));

      
    // Se $x non è multiplo di 2...
      
    }else{

        
    // Aggiungo alla password un numero compreso tra 0 e 9
        
    $mypass $mypass rand(0,9);

      }
    }

    // creo la query di selezione del dottore
    $g_sql "SELECT * FROM dottore_ware WHERE  id_dottore ='"$_SESSION['ammid'] . "' ";
    $g_query = @mysql_query($g_sql);
    $g_row = @mysql_fetch_array($g_query);

      
    $nome urldecode($_POST['nome']);
      
    $indirizzo urldecode($_POST['indirizzo']);
      
    $cognome urldecode($_POST['cognome']);
      
    $cap urldecode($_POST['cap']);
      
    $citta urldecode($_POST['citta']);
      
    $provincia urldecode($_POST['provincia']);
      
    $email urldecode($_POST['email']);
      
    $cel urldecode($_POST['cel']);
      
    $tel urldecode($_POST['tel']);
      
    $fax urldecode($_POST['fax']);
      
    $data_nascita = @addslashes($_POST['data_nascita']);
      
    $cf = @addslashes($_POST['cf']);
      
    $piva = @addslashes($_POST['piva']);
      
    $studio urldecode($_POST['studio']);
      
    $username = @addslashes($_POST['username']);
      
    $password md5($mypass);
      
    $note=$_POST['note'];
      
    $id_dottore$_SESSION['ammid'];
      
    $destinatario $_POST['email'];
      
    $oggetto "Iscrizione a DocWare";
      
    $messaggio "Modulo di Iscrizione.\n";
                                        
    $messaggio .= "Siete stati iscritti al portale DocWare dal vostro specialista ";
                                        
    $messaggio .= "Dott." $g_row['nome'] . "  "$g_row['cognome'] ."\n";
                                        
    $messaggio .= "Username: " $_POST['username'] . "\n";
                                         
    $messaggio .= "Password: " $mypass "\n";
                                         
    mail("$destinatario","$oggetto","$messaggio","From:werwolfe@werwolfe.it");
                                     
                                        
                                        
      
    $sql "INSERT INTO paziente_docware (id_dottore, nome,cognome, indirizzo, cap,citta, provincia, email,cel, tel, fax, data_nascita, cf, piva, studio, password,username,note) VALUES ('$id_dottore', '$nome','$cognome', '$indirizzo', '$cap','$citta', '$provincia', '$email','$cel', '$tel', '$fax', '$data_nascita', '$cf', '$piva', '$studio', '$password','$username','$note')";
      if(
    $result = @mysql_query($sql) or die (@mysql_error()))
     

      {
        echo 
    "Inserimento avvenuto con successo.
    [url='content.php?page=6']Visualizza elenco pazienti[/url]

    "
    ;
      }
      @
    mysql_close();
      }
    }
      
    ?>
    potete aiutarmi e vi ringrazio in anticipo per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    157
    è tutto sbagliato

    Codice PHP:
     $f_sql "SELECT username FROM paziente_docware";
    $f_query = @mysql_query($f_sql);
    $f_row = @mysql_fetch_array($f_query);
    echo 
    $f_row['username'];
    echo 
    $_POST['username'];
    if (
    $_POST['username'] == $f_row['username'])
            {
                echo 
    "<script>";
                                        echo 
    "alert('Nickname  presente nel database');";
                                        echo 
    "</script>";

    $f_row = @mysql_fetch_array($f_query); > legge il primo risultato della query
    echo $f_row['username'];
    echo $_POST['username'];
    if ($_POST['username'] == $f_row['username']) > confronta il primo risultato col nome da input

    per farlo funzionare dovresti mettere tutto in un while, però stai prima usando un'altra strada:


    Codice PHP:
     $f_sql "SELECT username FROM paziente_docware WHERE username='".$f_row['username']."' ";

    $f_query = @mysql_query($f_sql);
    if (
    mysql_num_rows($f_query))
            {
                echo 
    "<script>";
                                        echo 
    "alert('Nickname  presente nel database');";
                                        echo 
    "</script>";

    cerca nella tabella paziente_docware tutte le righe in cui username vale quel che hai dato da input, mysql_num_rows($f_query) restituisce il numero di risultati dati dalla query, se questo è >0 il nome è già presente, segnala quindi errore.

  3. #3
    grazie per la risposta, ho provato a fare in questo modo, come da te indicato

    Codice PHP:
    $f_sql "SELECT username FROM paziente_docware WHERE username == '" .$_POST['username']."'";
    $f_query = @mysql_query($f_sql);
    if(@
    mysql_num_rows($f_query) > 0)
            {
                echo 
    "<script>";
                                        echo 
    "alert('Nickname  presente nel database');";
                                        echo 
    "</script>";
    } else { 
    Ma nulla non fa il controllo. Avevo pensato di fare con while ma poi mi attribuisce un errore di sintassi

  4. #4

    Risolto

    Ho risolto facendo cosi
    Codice PHP:
    $user_sql "SELECT * FROM paziente_docware WHERE username='"$_POST['username']."'";
            
    $user_query = @mysql_query($user_sql);
                    
    $user_result = @mysql_fetch_array($user_query);
            
            if(@
    mysql_num_rows($user_query) > 0)
            {
                echo 
    "<script>";
                                        echo 
    "alert('Nickname  presente nel database');";
                                        echo 
    "</script>";
    }  else { 

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.