[PHP] registrazione utente in un database sql con confronto

Discussione in 'PHP' iniziata da Azalyn, 20 Agosto 2019.

  1. Azalyn

    Azalyn Nuovo Utente

    Registrato:
    20 Agosto 2019
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Salve, sono nuovo e premetto che non so una ceppa sia di php che di sql.
    Ho trovato tutto online e funziona tutto correttamente ma vorrei aggiungere una funzione in fase di registrazione tipo "l'utente che ti ha fatto conoscere il sito". Nella pagina dedicata di registrazione web ho gia inserito la casella per l'immissione del nome utente ma adesso mi servirebbe da "aggiungere la funzione" al file register.php che allego
    PHP:
    <?php
    include('../config/dbconf.php');

    function 
    encrypt($user$pass) {
      
    $user strtoupper($user);
      
    $pass strtoupper($pass);
      return 
    sha1($user.':'.$pass);
    }

    if(
    $_POST['pass'] != $_POST['pass2']){
      echo 
    "The passwords don't match.<br/>";
    }

    $username $_POST['user'];
    $password encrypt($username$_POST['pass']);
    $email $_POST['email'];

    $count 0;

    $stmt $conn->prepare("SELECT * FROM account WHERE username=?");
    $stmt->bind_param("s"$username);
    $stmt->execute();
    $stmt->store_result();
    if(
    $stmt->num_rows 0) {
      
    $count 1;
    }

    if(
    $count == 0) {
      
    $sql "INSERT INTO account (username,sha_pass_hash, email) VALUES(?, ?, ?)";
      
    $stmt $conn->prepare($sql);
      
    $stmt->bind_param("sss"$username$password$email);
      if(
    $stmt->execute()) {
        echo 
    "registered";
      }else{
        echo 
    "Failed to register<br>" $stmt->error;
      }
    }else{
      echo 
    "username already taken";
    }
    ?>
    Mi servirebbe che mi cercasse nel database sql, se in fase di registrazione del nuovo utente (lo chiamo Pippo e si registra con username Pippo1) ha inserito nella casella Recruit un username di un altra persona (Gianni, username Gianne22 e ha ID=1). Nel caso Pippo avesse messo nella casella Recruit Gianne22 ( non é obbligatorio che vada a vedere maiuscole o minuscole) gli venga inserito nell intersezione riga e colonna "recruit del database l'Id di Gianni.
    allego spiegazione in inglese che forse é piu chiara
    PHP:
    That islets say there is an account called Alice (account id 10) and she recruits Bob (account id 20). The following SQL query would do the trick.
    update account set recruiter 10 where id 20;
    HTML:
    <div class="signin-form">
      <div class="container">
        <div class="row">
          <div class="col-lg-4 col-md-6 col-sm-8 col-xs-12">
            <div class="mytitle">Account Registration</div>
            <div id="error"></div>
            <div id="success"></div>
            <form action="functions/register.php" class="form-signin" method="POST" id="register-form">
              <div class="form-group">
                <label for="user">Username:</label>
                <input type="text" id="user" class="form-control" name="user" required>
                <span id="check-e"></span>
              </div>
              <div class="form-group">
                <label for="pass">Password:</label>
                <input type="password" id="pass" class="form-control" name="pass" required>
              </div>
              <div class="form-group">
                <label for="pass2">Confirm Password:</label>
                <input type="password" id="pass2" class="form-control" name="pass2" required>
              </div>
              <div class="form-group">
                <label for="email">Email:</label>
                <input type="email" id="email" class="form-control" name="email" required>
              </div>
              <div class="form-group">
                 <label for="ecruit">Recruit:</label>
                <input type="recruit" id="recruit" class="form-control" name="recruit">
              </div>
              <div class="form-group">
                <button type="submit" class="btn btn-default" name="btn-save" id="btn-submit">
                  <span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account
                </button>
              </div>
            </form>
          </div>
        </div>
      </div>
    </div>
    
    allego anche dbconf.php nel caso servisse a qualcosa
    PHP:
    <?php
    $dbhost 
    "127.0.0.1";
    $dbuser "root";
    $dbpass "ascent";
    $accdb "auth";
    $chardb "characters";

    $conn mysqli_connect($dbhost$dbuser$dbpass$accdb);
    ?>
    un grazie anticipato a chi cercherá di aiutarmi.
     
    Ultima modifica di un moderatore: 20 Agosto 2019
  2. Max 1

    Max 1 Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    29 Febbraio 2012
    Messaggi:
    3.802
    Mi Piace Ricevuti:
    283
    Punteggio:
    83
    Sesso:
    Maschio
    @Azalyn
    Quando posti del codice non devi usare sempre il tag
    Codice:
    
    
    ma va usato il tag
    PHP:
    per il codice PHP e il tag
    HTML:
    
    
    per il codice HTML.
    Il tag CODE va usato per il codice generico
     
Sto caricando...

Condividi questa Pagina