Connexion base

Mammouth du PHP | 991 Messages

16 juil. 2007, 12:19

Ben c a toi de me dire ... qu est ce qui va pas ...
Dit moi ce que le programme fait et ce qu'il devrai faire ...
DevOps, Symfony4, Hoa

d0m
Mammouth du PHP | 1141 Messages

16 juil. 2007, 13:51

et en mettant le code là à la place?
if($connection!==FALSE){
     header('offre.php'); 
}
else{
     echo 'Veuillez entrer votre Login et Mot de Passe:<br />'; 
     echo '<form action="'.$nom_fichier.'" method="post">'; 
     echo '<input type="hidden" name="action" value="1">'; 
     echo 'Login: <input type="password" name="login"><br />'; 
     echo 'Passe: <input type="password" name="pass"><br />'; 
     echo '<input type="submit" value="Connexion">'; 
     echo '</form>'; 
}
Autrement, ce que je te conseille de faire c'est de ne pas trop mélanger le traitement php avec l'affichage html.
Je m'explique :
il serait préférable de traiter d'abord toutes les données au début de ta page php et ensuite afficher la partie html :
<?php 
// demarre une session 
session_start(); 

// Connection au serveur mySQL 

$sql_serveur = "localhost"; // Serveur mySQL 
$sql_base = "offres"; // Base de donnees mySQL 
$sql_login = "root"; // Login de connection a mySQL 
$sql_password = "root"; // Mot de passe pour mySQL 

$nom_fichier = "offre.php"; // Nom de votre page 
                    // ex: index.php si ce script est sur la page index.php 
 
if(isset[$_POST['connexion']]){  
   //ton formulaire a été validé précedement                  
   connection = mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Connection interrompue"); 
   if(connection!==FALSE){
      //la connection a été réussi, on dirige vers l'autre page
      mysql_select_db($sql_base);
      header('offre.php');
   }
}
?> 

<html> 
<head> 
<title>Titre</title> 
</head> 
<body> 

Veuillez entrer votre Login et Mot de Passe:<br />
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="hidden" name="action" value="1">
Login: <input type="password" name="login"><br />
Passe: <input type="password" name="pass"><br />
<input type="submit" value="Connexion">
</form>

<?
if(isset($_POST['connexion']) && ($connection===FALSE)){
   die('<font color="red">Informations incorrectes!');
}
?>
</body>
</html>

Ce qui va se passer :
La page va être chargée une première fois sans tentative de connection, avec les champs à saisir.
En appuyant sur le bouton de validation du formulaire, la page va être rechargée et la tentative de connection va avoir lieu. Si elle réussi, il va y avoir une redirection vers la page offre.
Sinon, on réaffiche les champs à saisir et le message d'erreur.
Et ainsi de suite jusqu'une connection réussisse.

Glaw
Invité n'ayant pas de compte PHPfrance

16 juil. 2007, 15:42

Ton code est bien et en plus il est plus simple, et clair... mais il y a des erreur comme :


Parse error: parse error, expecting `'('' in p:\easyphp1-8\www\site\formulaire\login2.php on line 16

Je n'ai pas compris pourquoi ?

Merci.

d0m
Mammouth du PHP | 1141 Messages

16 juil. 2007, 15:46

désolé, erreur d'inattention de ma part

ce n'est pas
if(isset[$_POST['connexion']]){   
mais
if(isset($_POST['connexion'])){   
isset étant une fcontion il faut des () et pas des []

Glaw
Invité n'ayant pas de compte PHPfrance

16 juil. 2007, 16:11

Maintenant c'est une erreur sur une autre ligne...


Parse error: parse error in p:\easyphp1-8\www\site\formulaire\login2.php on line 19


Pareil je ne vois pas quelle est cette erreur...


Merci

d0m
Mammouth du PHP | 1141 Messages

16 juil. 2007, 16:14

j'avoue que j'ai pas testé le code avant de le poster, mais c'était surtout pour te donner une piste.

Après les erreurs comme ici un oubli de $ avant le nom de la variable tu peux les debugguer toi même tout de même...

ViPHP
ViPHP | 5924 Messages

16 juil. 2007, 16:17

C'est $connection et non connection. Ce sont des erreurs de base, qui sautent aux yeux, php te donne les numéros de ligne, tu pourrais chercher un peu...

Glaw
Invité n'ayant pas de compte PHPfrance

16 juil. 2007, 16:20

Ok mais la par contre je ne peux pas le faire moi même car je ne vois pas comment faire.

tu as d'abord cette erreur :

Code : Tout sélectionner

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at p:\easyphp1-8\www\site\formulaire\login2.php:2) in p:\easyphp1-8\www\site\formulaire\login2.php on line 4 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at p:\easyphp1-8\www\site\formulaire\login2.php:2) in p:\easyphp1-8\www\site\formulaire\login2.php on line 4
Puis celle la :

Code : Tout sélectionner

The requested URL /site/formulaire/'.$_SERVER['PHP_SELF'].' was not found on this server.
Merci

d0m
Mammouth du PHP | 1141 Messages

16 juil. 2007, 16:23

Code : Tout sélectionner

The requested URL /site/formulaire/'.$_SERVER['PHP_SELF'].' was not found on this server.
il faut rajouter les balises php :
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"> 

ViPHP
ViPHP | 5924 Messages

16 juil. 2007, 16:34

Ok mais la par contre je ne peux pas le faire moi même car je ne vois pas comment faire.

tu as d'abord cette erreur :

Code : Tout sélectionner

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at p:\easyphp1-8\www\site\formulaire\login2.php:2) in p:\easyphp1-8\www\site\formulaire\login2.php on line 4 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at p:\easyphp1-8\www\site\formulaire\login2.php:2) in p:\easyphp1-8\www\site\formulaire\login2.php on line 4
Concernant cette erreur, elle apparaît lorsque tu envoies des headers (par les fonctions setcookie(), session_start(), ou header() après avoir affiché du texte (par echo(), print(), ou fermeture des balises php). Vérifie dans ton code que tu n'affichepas du texte avant d'appeler une fonction envoyant un header.

Glaw
Invité n'ayant pas de compte PHPfrance

16 juil. 2007, 16:50

Non il ni a pas de texte avant le header... donc je ne comprend pas quelle est le problème désolé...

ViPHP
ViPHP | 5924 Messages

16 juil. 2007, 16:54

Hé bien écoute, je te parie n'importe quoi qu'il y a un saut de ligne avant ton "<?php" dans ton fichier...

Mammouth du PHP | 991 Messages

16 juil. 2007, 18:28

Ou un espace ....
DevOps, Symfony4, Hoa

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 08:46

Merci je ne savais pas que ca pouvais influencer... j'en aurais appris beaucoup aujourd'hui.

Maintenant je n'est pus de message d'erreur mais quand je rentre le bon login et pass ca ne me redirige pas vers la page offre.. pourquoi ?

je vous remet le code :
<?php 
// demarre une session 
session_start(); 

// Connection au serveur mySQL 

$sql_serveur = "localhost"; // Serveur mySQL 
$sql_base = "offres"; // Base de donnees mySQL 
$sql_login = "root"; // Login de connection a mySQL 
$sql_password = "root"; // Mot de passe pour mySQL 

$nom_fichier = "offre.php"; // Nom de votre page 
                    // ex: index.php si ce script est sur la page index.php 
 
if(isset($_POST['connection']))
{ 
   //ton formulaire a été validé précedement                  
   $connection = mysql_connect($sql_serveur, $sql_login, $sql_password); 
   if(connection!==FALSE)
   {
      //la connection a été réussi, on dirige vers l'autre page
      mysql_select_db($sql_base);
      header('offre.php');
   }
}
?> 

<html> 
<head> 
<title>Titre</title> 
</head> 
<body> 

Veuillez entrer votre Login et Mot de Passe:<br />

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="action" value="1">
Login: <input type="password" name="login"><br />
Passe: <input type="password" name="pass"><br />
<input type="submit" value="Connexion">
</form>

<?
if(isset($_POST['connection']) && ($connection===FALSE))
{
   die('<font color="red">Informations incorrectes!');
}
?>
</body>
</html>

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 08:54

désolé mais là il faut que t'apprennes à debugguer tout seul sinon c'est nous qui allons te le faire ton site. L'erreur est flagrante surtout que c'était déjà arrivé, demande toi d'où elle pourrait venir...