Bonjour a tous,

J'au une base de donnees d'utilisateurs avec les champs:
user_id
first_name
last_name
email
pass
registration_date

Alors, j'ecris ce code PHP de connexion a ma base:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?php
define ('DB_USER','root');
define ('DB_PASSWORD','');
define ('DB_HOST','localhost');
define ('DB_NAME','sitename');
 
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to MySQL: ' . mysqli_connect_error());
 
?>
Ensuite, j'ecris un formulaire d'enregistrements de nouveaux users:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
$page_title = 'Register';
include ('includes/header.html');
 
if (isset ($_POST['submitted'])){
	$errors=array();
	if (empty ($_POST['first_name'])){
		$errors[]= 'Your forgot to enter your first name.';
	}
	else {
		$fn=trim ($_POST['first_name']);
	}
 
	if (empty ($_POST['last_name'])){
		$errors[]= 'Your forgot to enter your last name.';
	}
	else {
		$ln=trim ($_POST['last_name']);
	}
 
	if (empty ($_POST['email'])){
		$errors[]= 'Your forgot to enter your email address.';
	}
	else {
		$e =trim ($_POST['email']);
	}
 
	if ($_POST['pass1']){
		if (($_POST['pass1']) != ($_POST['pass2'])) {
		$errors[]= 'Your password did not match the confirmed password.';
		}
		else {
		$p=$_POST['pass1'];
		}
	}
	else {
	$errors[]= 'Your forgot to enter your password.';
	}
 
	if (empty ($errors)){
		require_once ('../PHP-TESTS/mysqli_connect.php');
		$q= "INSERT INTO users (first_name, last_name, email, pass, registration_date) VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW())";
		$r=@mysqli_query($dbc, $q);
 
		if ($r){
 
			echo '<h1> Thank you !</h1>
			<p> you are now registered. In Chapter 11 you will actually be able to log in ! </p><p><br/></p>';
		}
		else {
			echo '<h1> System Error </h1>
			<p class="error"> You could not registered due to a system error. We apologize for any inconvenience. </p>';
			echo '<p> ' . mysqli_error($dbc) . '<br/> <br /> Query : ' . $q . ' </p>';
		}
 
		mysqli_close();
 
		include ('includes/footer.html');
 
		exit;
		}
	else {
	echo '<h1> Error !</h1>
	<p class = "error"> The following  >> error (s) occured : <br />';
		foreach ($errors as $msg) {
			echo " - $msg <br /> \n";
		}
		echo '</p><p> Please try again. </p><p><br /></p>';
	}
 
	}
?>
<h1>Register</h1>
<form action="register.php" method="post">
	<p>First Name: <input type="text" name="first_name" size="15" maxlength="20" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>
	<p>Last Name: <input type="text" name="last_name" size="15" maxlength="40" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>
	<p>Email Address: <input type="text" name="email" size="20" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"  /> </p>
	<p>Password: <input type="password" name="pass1" size="10" maxlength="20" /></p>
	<p>Confirm Password: <input type="password" name="pass2" size="10" maxlength="20" /></p>
	<p><input type="submit" name="submit" value="Register" /></p>
	<input type="hidden" name="submitted" value="1" />
</form>
<?php
include ('includes/footer.html');
?>
Le tout est que, quand un nouvel utilisateur s'enregistre, j'obtiens:

you are now registered. In Chapter 11 you will actually be able to log in !

Mais j'ai un warning que je ne comprends pas.
Qu'est ce qui se passe? mysqli_close() prends des paramatres?

Warning: mysqli_close() expects exactly 1 parameter, 0 given in D:\wamp\www\PHP-TESTS\register.php on line 56

Merci

Billyrose