[RESOLU] Les headers ne fonctionnent-ils plus avec un hébergeur ?

Eléphant du PHP | 161 Messages

30 mai 2017, 16:56

Bonjour à toutes et à tous,

Tout mon problème est dans le titre : je ne parviens pas à faire fonctionner mes redirections avec les header en php dans des conditions.

En effet, j'ai souscrit aujourd'hui un abonnement chez l'hébergeur 1&1 et si en local tout fonctionne bien, ce n'est pas la même chanson en ligne !

Mon script pour la connexion par exemple :
<?php
if (isset($_POST['fcenvoi'])) {
	include("includes/connect/phpConnect.php");
	$fclogin = trim(htmlentities(mysqli_real_escape_string($lien,$_POST['fclogin'])));
	$fcpwd = md5($_POST['fcpwd']);

	if(file_exists("logs/$fclogin.log")){
		$fichier = fopen("logs/$fclogin.log", "r+");
		$contenu = fgets($fichier);
		$infos = explode(":", $contenu);
		if($infos[0] == date("d/m/y")){
			$essais = $infos[1];
		}
		else {
			$essais = 0;
		}
	}
	else {
		$essais = 0;
	}
	
	if($essais < 5){
		$req = "SELECT * FROM ls_membres WHERE identifiant='$fclogin' AND pwd='$fcpwd';";
		$res = mysqli_query($lien,$req);
		if(!$res){
			echo "Erreur SQL : $req <br>".mysqli_error($lien);
		}
		else{
			$correct = mysqli_num_rows($res);
			if ($correct==1) {
				$tab = mysqli_fetch_array($res);
				$_SESSION['id'] = $tab['id'];
				$_SESSION['civilite'] = $tab['civilite'];
				$_SESSION['nom'] = $tab['name'];
				$_SESSION['prenom'] = $tab['firstName'];
				$_SESSION['log'] = $tab['identifiant'];
				$_SESSION['email'] = $tab['email'];
				$_SESSION['pwd'] = $tab['pwd'];
				$_SESSION['groupe'] = $tab['groupe'];
				$_SESSION['pdp'] = $tab['photo'];
				if($_SESSION['groupe']== "admin"){
					header("Location:admin/index.php");
					exit;
				}
				else{
					header("Location:prive/prive.php");
					exit;
				}
			}
			else{
					echo "<div class=\"row\"><div class=\"gestionE col s12 l6 offset-l3\">Login ou mot de passe incorrect.</div></div>";
					if(file_exists("logs/$fclogin.log")){
						$essais = $essais + 1;
						fseek($fichier, 0);
						fputs($fichier, date('d/m/y').":$essais");
						fclose($fichier);
					}
					else {
						$req = "SELECT COUNT(*) AS nblogin FROM ls_membres WHERE identifiant='$fclogin'";
						$res = mysqli_query($lien, $req);
						if(!$res){
							echo "Erreur";
						}
						else {
							$tab = mysqli_fetch_array($res);
							if($tab['nblogin'] > 0){
								$fichier = fopen("logs/$fclogin.log", "w+");
							}
							fputs($fichier, date('d/m/y').":1");
							fclose($fichier);
						}
					}
			}
		}
	}
	else {
	echo "<div class=\"row\"><div class=\"gestionE col s12 l6 offset-l3\">Désolé, votre connexion a été interdite.</div></div>";
	}
	mysqli_close($lien);
	
}
?>

Quelqu'un pour m'aider :( ?

Mammouth du PHP | 1967 Messages

01 juin 2017, 13:01

certain environnement sont plus sensible que d'autre, vérifie bien qu'il n'y a rien d'envoyer vers le client avant le header. même un simple espace avant le premier <?php peut tout bloquer.

Essaie aussi un nouveaux fichier php qui ne contient qu'une redirection et vérifie que ton affichage d'erreur est complet ou check tes logs,
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube