PHP + Curl + header

krm666 Messages postés 12 Statut Membre -  
krm666 Messages postés 12 Statut Membre -
Bonjour,

J'ai un problème avec un header. Voici mon code :

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="StyleSheet/style.css" />
<title>Enregistrement</title>
<h2>Veuillez vous enregistrer</h2>
</head>
<body>

<form class="QRCode" name="formLogin" method="post" action="">
<label>Nom d'utilisateur</label>
<input type="text" id="txtUser" name="txtUser" title="login"
value="Login"
onfocus="if(this.value=='Login'){this.value=''};"
onblur="if(this.value==''){this.value='Login'};"
/>
<label>Mot de passe</label>
<input type="password" id="txtPwd" name="txtPwd" title="pwd"
value="password"
onfocus="if(this.value=='password'){this.value=''};"
onblur="if(this.value==''){this.value='password'};"
/>
<input class="bouton" type="reset"/>
<input class="bouton" type="submit" name="verifier"/>
</form>


<?php
if (isset($_POST['verifier'])) {
//le formulaire a été posté, bouton Envoyer cliqué
//on recupére les valeurs postées
//suivant ce qui était affiché
if (isset($_POST['txtUser']) && $_POST['txtUser'] != "") {
$txtUser = $_POST['txtUser'];
}

if (isset($_POST['txtPwd']) && $_POST['txtPwd'] != "") {
$txtPwd = $_POST['txtPwd'];
}
//ensuite pour utiliser ces valeurs:

if ($txtUser != "Login" && $txtPwd != "password") {
echo 'Salut';

/**
* crée une nouvelle ressource cURL
*/
$ch = curl_init();
/**
* Définition de l'URL
*/
curl_setopt($ch, CURLOPT_URL, "http://localhost:8080/CulturalNetworksServer/resources/visitors/");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$header = array('Accept: application/json', 'Content-Type: application/json');

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
/**
* attrape l'URL et la passe au navigateur
*/
$contents = curl_exec($ch);
/**
* ferme la ressource cURL et libère les ressources systèmes
*/
curl_close($ch);
$data = json_decode($contents);

foreach ($data as $value) :
if ($value->login == $txtUser) {
if($value->password == $txtPwd){
echo "<script>alert(\"Tout est ok\")</script>";
header("location:Contact.php");
}else{
echo "<script>alert(\"le mot de passe est incorrect\")</script>";
}
} else {
echo "<script>alert(\"le login est incorrect. Veuillez nous contacter\")</script>";
}


endforeach;
} else {
echo "<script>alert(\"le login ou mot de passe ne sont pas valides\")</script>";
}
}
?>


<p>Pour tous renseignements, questions ou problèmes, veuillez <a href="Contact.php">nous contacter</a></p>
</body>
</html>

et voici l'erreur que ça me fait:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/CulturalNetworksMuseumClient/Connexion.php:30) in /Applications/MAMP/htdocs/CulturalNetworksMuseumClient/Connexion.php on line 75

Mes tests fonctionnent. Mais il n'accepte pas mon leader et je ne comprends pas pourquoi.
Quelqu'un peut m'aider?


A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour

Le protocole HTTP demande que les en-têtes soient envoyés avant les données (ce qui semble normal)
La fonction header consiste à envoyer un en-tête.
Or tu as déjà envoyé des données au client - depuis le <!DOCTYPE

Donc ça ne peut pas marcher comme ça.
Il faut que tu réorganises ton code pour envoyer tes en-têtes AVANT tout code html ou tout echo.

Dans ton cas, ça ne pose aucun problème, il suffit de remettre le traitement du formulaire au début, ce qui est la manière habituelle de procéder.
0
krm666 Messages postés 12 Statut Membre
 
c'est ok pas besoin de répondre...
0