[PHP] registrazione utente in un database sql con confronto

Azalyn

Nuovo Utente
20 Ago 2019
1
0
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 is, lets 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:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.007
295
83
@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