Bonjour,

J'ai un problème avec la fonction header(); En fait, j'essaie de filtrer l'accès à certaines adresses IP. Donc verification de la presence de l'IP dans la base de données et si l'IP est absente, je renvoie un 404. Mais le 404 n'est pas renvoyé alors que la condition est bien renvoyée... Je suppose que je renvoie quelque chose avant le header mais quoi ?

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
 
<?php
	$connexion_mysqli=[..];
	if(isset($_SERVER['REMOTE_ADDR'])){
		$adresse_ip=$_SERVER['REMOTE_ADDR'];
		$query_select_adresse_ip="SELECT * FROM ip_securite WHERE ip_adresse='$adresse_ip'";
		$result_select_adresse_ip=mysqli_query($connexion_mysqli,$query_select_adresse_ip);
		if(mysqli_num_rows($result_select_adresse_ip)!=1){
		// echo '0'; pour tester la condition
			header("HTTP/1.0 404 Not Found");
			// header("Status: 404"); j'ai essayé ça aussi
		}
	}else{
		session_destroy();
		header("HTTP/1.0 404 Not Found");
	}
	// session_start();
 
	$session='Utilisateur inconnu';
	if(isset($_SERVER['REMOTE_ADDR'])){
		$ip_visiteur=$_SERVER['REMOTE_ADDR'];
	}else{
		$ip_visiteur='IP inconnue';
	}
	if(isset($_SERVER['REQUEST_URI'])){
		$current_url=$_SERVER['REQUEST_URI'];
	}else{
		$current_url='url inconnue';
	}
	if(isset($_SERVER['HTTP_REFERER'])){
		$previous_url=$_SERVER['HTTP_REFERER'];
	}else{
		$previous_url='url prédédente inconnue';
	}
	$date_now=date("Y-m-d");
	$time_now=date("H:i:s");
	$query_insert_log="INSERT INTO logs (LOG_ID,LOG_DATE,LOG_HEURE,LOG_IP,LOG_URL_PRECEDENTE,LOG_URL_COURANTE,LOG_NOM_USER) VALUES (NULL,'$date_now','$time_now','$ip_visiteur','$previous_url','$current_url','$session')";
	mysqli_query($connexion_mysqli,$query_insert_log);
 
?>
<html>...
</html>
Merci d'avance pour votre aide