Headers...

Rechercher

Headers...

Par icez  -  5 reponses  -  Le 15/02/2008 02:16  -  Editer  - 

J'ai vu ton tutorial sur les header sur phpcs.. Et j'ai penser que tu pourrais surment m'aider...

J'obtien 1 erreur sur mon script... Quand je vais a la ligne 39, c'est une session start, alors j'ai compris que j'avais 1 header a quelque part de mal placer, mais je le trouve vraiment pas... Alors si possible tu pourrais me guider 1 peu, dit moi juste quoi que tu as besoin de savoir, ma te le dire.

Merci

** ** Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/icez/public_html/test/index2.php:5) in /home/icez/public_html/test/f/login.php on line 39
 

 

 

Réponses apportées à cette discussion

Par Geoffroy  -  Le 15/02/2008 06:15  -  Haut de page  - 

un header s'envoit automatiquement lorsque tu affiche quelque chose à l'écran.

Si tu a utilisé le moindre echo, print, printf ou quoi que ce soit s'affichant du coté client (navigateur), c'est comme pour les cookies : ils utilisent ce header, donc étant déjà envoyé, ça ne fonctionnerai pas.

J'espère avoir bien répondu à ta question.

Geoffroy

http://www.planquart.fr

 
Par Emacs  -  Le 15/02/2008 09:10  -  Haut de page  - 

Peux-tu déposer les 10 / 15 lignes de code qui entourent la ligne 39 de ton fichier index2.php stp ?

 
Par Emacs  -  Le 15/02/2008 14:09  -  Haut de page  - 

J'ai supprimé tes messages. Peux-tu reposter tes 15 lignes de code en utilisant la coloration syntaxique stp (icônes avec les accolades bleues).

 
Par icez  -  Le 15/02/2008 19:05  -  Haut de page  - 

Bien sure.

Index2.php

<?
require ("sources/header.php");
require ("sources/functions.php");
?>
<table width="100%">
    <td width="20%" valign="top" align"center"><b>
<BR><BR>
    </b></td>
    <td valign="top">
      <?php
        if(file_exists($file))
          include($file);
        else
          require("f/main.php");
      ?>
    </td>
  </tr>
</table>
</body>
</html>
<BR><BR><BR><BR>
<?
ob_start();
require ("f/footer.php");
ob_end_flush();
?>

Login.php

<?
include ('f/conf.php');
$login=$_POST['login'];
$_SESSION['login']=$login;
$password=$_POST['password'];
$mail=$_POST['mail'];
if($login=='' || $password=='' || $mail=='')
{
echo '<script language=javascript> alert ("You forgot a field.");</script>';
include('?act=Login');
exit;
}
$sql = "SELECT password FROM membres_tbl WHERE login='$login'";
$req = mysql_query($sql) or die('SQL error !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
if($data['password'] != $password)
{
echo '<script language=javascript> alert ("Bad username / password. Try again");</script>';
include('?act=Login');
exit;
}
else
{
$requete = "SELECT desti FROM private WHERE desti='$login'";
$suite = mysql_query($requete) or die('SQL error !<br>'.$requete.'<br>'.mysql_error());
$titi = mysql_fetch_array($suite);
if ($titi['desti'] == $login)
  {
  session_start();
  session_register("login");
  exit;
  }
  else
  {
session_start();
session_register('login');
$_SESSION['login']=$login;
  exit;
  }
}
?>
 
Par Emacs  -  Le 15/02/2008 22:49  -  Haut de page  - 

Aie aie aie... Ton code est rempli de potentielles failles de sécurité très dangereuses comme :

  • Inclusion de code à distance dans ton index2.php si allow_url_include du php.ini est à On
  • Injection SQL si magic_quotes_gpc est à Off

Ensuite, session_register() est obsolète. Je t'invite à relire les tutoriels des sessions et des traitements des formulaires présents sur ce site pour améliorer ton code.

Il y'a aussi de gros problèmes de conception. En effet, on ne traite pas les erreurs avec des Javascript. Le Javascript peut être désactivé chez le client, ce n'est pas fiable du tout.

Il faut penser aussi à retirer les or die() lorsque ton site passe en production finale. Les or die() doivent être utilisés uniquement pour débugguer le code en phase de développement.

Enfin, pense à utiliser les tags originaux de php (

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |