Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    *PROBLEMA script creazione utenti*

    giorno a tutti .. ho provato a creare da solo un rudimentale script per la creazione di un utente e la sua registrazione in un database MySQL.
    Il problema ovviamente è che lo script non funziona ..
    mi riporta "Errore durante la registrazione. Riprova" senza riportare l' errore mysql (mysql_error ()) . In pratica non riesce ad inserire i dati nella tabella

    Codice PHP:
    <?php
     
    include("config.inc.php");
     
     
    $usr $_POST['username'];
     
    $pass $_POST['password'];
     
        
    //connessione
       
    $conn mysql_connect("$db_host""$db_user""$db_pass")
               or die (
    "Impossibile connettersi al server." mysql_error ());
               
            
    mysql_select_db("$db_name")
            or die (
    "Connessione al database non riuscita." mysql_error ());
            
        
    $sql "SELECT $usr FROM $db_name";
        if (
    mysql_affected_rows() < 0)
        {
         
    $sql "CREATE TABLE $usr (
                 id INT (5) UNSIGNED not null AUTO_INCREMENT, 
                 psw BLOB NOT NULL, 
                 mail TEXT NOT NULL, 
                 commenti TEXT NOT NULL,
                 PRIMARY KEY (id))"
    ;
                  
    mysql_query($sql)
                  or die (
    mysql_error ());
         }
         else 
         {
         echo 
    "Nick non disponibile";
         }
         
            if (
    mysql_affected_rows() > 0
            {
            
    $sql "INSERT INTO $usr (psw) VALUES ($pass)";
                   
    mysql_query($sql)
                   or die (
    mysql_error ());
                 if (
    mysql_affected_rows() > 0
                {
                 print(
    "<p align='left'>Registrazione avvenuta con successo.</p>");
                }
            }
            else
            {
            print(
    "Errore durante la registrazione. Riprova." mysql_error ());
            }
                 
            
    mysql_close($conn);
    ?>
    in particolare due cose:
    1) se creo una tabella con 3 campi (togliendo l' id), posso inserire un solo dato? tipo solo la "password" e lasciare vuoti i campi "commenti" e "mail" ?

    2) il secondo "if (mysql_affected_rows() > 0)" si dovrebbe riferire al fatto che, SE la tabella è stata creata (>0), allora inserisco i dati. è giusto scritto così, o quel "if (mysql_affected_rows() > 0)" non si riferisce a niente?

  2. #2
    scusa, ognuno poi può fare come gli pare, ma perchè crei una tabella per ogni utente?

    significa che se si registrano 1000utenti hai 1000 tabelle di una riga anzichè un tabella da 1000 righe VVoVe:
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Senti la creazione della tabella la fai una pagina a parte.

    Nella pagina della registrazioni fai:

    fai la connessione e la selezione del database poi..

    $usr=$_POST[user];
    $pass=$_POST[password];

    $query="SELECT from tabella where user=\"$usr\""
    $query_p=mysql_query($query) or DIE(misql_error());

    if (mysql_affected_rows($query_p) >0){
    print " esiste già un user con questo nome";
    }
    else {
    $inserimento="INSERT into tabella VALUES(NULL,\"$usr\",\"$pass\")"
    $inserimento_p=mysql_query($inserimento) or DIE(mysql_error());
    }

    Poi a tua discrezione metti i messaggi del tipo: registrazione avvenuta bla bla bla

    Ahh lo script così come è non è sicuro perchè non c'è controllo su i dati immessi dall'utente...
    Matteo
    Lunga vita agli ULTRAS
    La nostra fede non si diffida..Ultras Liberi

  4. #4
    Originariamente inviato da mxa
    scusa, ognuno poi può fare come gli pare, ma perchè crei una tabella per ogni utente?

    significa che se si registrano 1000utenti hai 1000 tabelle di una riga anzichè un tabella da 1000 righe VVoVe:
    creo una tabella per ogni utente perchè per ogni utente ho più informazioni da registrare.
    la struttura sarebbe così:

    /tabella chiamata come il nick utente
    --/password utente
    --/mail inviate dall' utente
    --/commenti dell' utente

    questa almeno sarebbe la mia idea .. siccome però io sono ancora alle prime armi, accetto molto volentieri dei consigli

  5. #5
    scusa, una tabella è una cosa a due dimensioni, quello lo vedi dalle elementari.
    Quindi sulle righe ci stanno gli utenti, sulle colonne i dati dell'utente.

    Tu vuoi una cosa più complessa, in quanto vuoi memorizzare le mail degli utenti, e i loro messaggi.
    A questo punto si tratta quindi di progettare un piccolo ma vero e proprio database.

    In gioco ci sono tre entità: UTENTE, MAIL e COMMENTO.
    Avrai quindi tre tabelle: UTENTE, MAIL e COMMENTO.

    L'utente del mondo reale è rappresentato da una riga della tabella UTENTE, e così via per le altre due entità.
    Si tratta ora di legare UTENTE, MAIL e COMMENTO. Parliamo quindi di chiavi.
    Il discorso è un po' complesso, adesso lo penso semplice (non da ingegnere!) e provo a scriverlo.

    Intanto se hai palle di sbatterti un po' qui trovi qualche nozione!
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  6. #6
    @ L'Inferno

    come faccio a creare una tabella in un secondo momento quando, se il nick non esiste, io i dati li devo già inserire nella tabella?

    Codice PHP:
    if (mysql_affected_rows($query_p) >0){
    print 
    " esiste già un user con questo nome";
    }
    else {
    $inserimento="INSERT into tabella VALUES(NULL,\"$usr\",\"$pass\")"
    $inserimento_p=mysql_query($inserimento) or DIE(mysql_error());


  7. #7
    ho provato a guardare il link che mi hai postato .. ma non ho capito in che modo possa aiutarmi .. perchè non ho trovato guide o tutorial che mi possano spiegare cosa fare

  8. #8
    @mxa

    intendi le JOIN ? mi sono letto il tutorial su questo sito .. e forse penso di aver capito come fare

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.