Connexion base

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 09:28

Alors j'ai corriger deux erreurs, la première il manquait des ' ' dans le echo, et l'autre il manquait le php après <?, mais il y a toujours une erreur sur la ligne
<form action="<?php echo '$_SERVER['PHP_SELF']'; ?>" method="post">
et je ne vois pas ce que c'est.


Merci

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 09:31

Voila j'ai corriger cette ligne mais j'ai toujours cette erreur qui est :

Not Found
The requested URL /site/formulaire/$_SERVER[ was not found on this server.

Merci

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 09:52

Alors j'ai corriger deux erreurs, la première il manquait des ' ' dans le echo, et l'autre il manquait le php après <?, mais il y a toujours une erreur sur la ligne
<form action="<?php echo '$_SERVER['PHP_SELF']'; ?>" method="post">
Malheureusement ce n'est pas des erreurs que tu as "corrigés".

Il ne faut pas mettre de ' ' autour de $_SERVER['PHP_SELF'], c'est une variable php d'où ta nouvelle erreur :

Code : Tout sélectionner

Not Found The requested URL /site/formulaire/$_SERVER[ was not found on this server.
va voir de ce coté http://fr.php.net/manual/fr/function.echo.php

Et le php après <? n'est pas obligatoire.

Sinon il te manque le raisonnement pour debugguer.

Dis toi que tu n'es jamais envoié vers la page offre.php
=> mets un echo 'ok'; dans la boucle qui devrait t'y envoyer
=> le ok n'est jamais affiché
=> la condition du if n'est jamais vérifiée
=> pourquoi ? .....

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 juil. 2007, 10:06

Et le php après <? n'est pas obligatoire.
ATTENTION : la syntaxe "normale" des tags PHP est <?php et ?>

La syntaxe <? ?> est nommé short open tag et est liée à la configuration du serveur. Cela signifie qu'il est possible que le serveur PHP refuse ces tags
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 10:17

Je pense que le IF n'est jamais vérifié car il ne faut pas assigner FALSE a connection... mais bon comment faire ??

Merci

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 10:22

Je pense que le IF n'est jamais vérifié car il ne faut pas assigner FALSE a connection... mais bon comment faire ??
Nan, le FALSE est assigné, il manque juste un $ devant connection ...
pense à faire des echo et print_r de tes variables pour les vérifier. C'est simple et efficace pour voir si le script fait bien ce que tu veux.

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 10:29

Le $ dans "if(isset($_POST['connection']))" ?

Si je le met ca ne change rien.. toujours pas de redirection vers offre...

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 10:39

Et autrement est ce que je peux faire une requête comme celà pour ce connecter?
// Creation et envoi de la requete
$query = "SELECT nom,url FROM sites ORDER BY nom";

$result = mysql_query($query);

// Recuperation des resultats
while($row = mysql_fetch_row($result)){
$Nom = $row[0];

$Url = $row[1];
Merci

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 10:44

Pense à ce que tu fais :

tu veux que le script s'execute une fois le bouton OK cliqué.
Or le bouton "OK" a pour nom 'connexion' un chaine de caractère.

le test
"if(isset($_POST['connection']))" 
sert à voir si le bouton OK a été cliqué. Là déjà le bouton n'est pas testé car les noms de clés du tableau sont différentes, c'est donc déjà 'connexion' et pas 'connection' :
"if(isset($_POST['connexion']))" 
ensuite tu verras l'erreur de $.

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 10:49

J'ai corriger et j'ai tout mis sous connexion maintenant ou est cette erreur de $ ?


Merci beaucoup

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 10:49

Et autrement est ce que je peux faire une requête comme celà pour ce connecter?
la requete est bonne par contre avec cette récupération des résultat, tu va écraser à chaque boucle les variables $Nom et $Url qui ne contiendront que les valeurs de la dernière ligne résultat de la requête.

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 10:51

J'ai corriger et j'ai tout mis sous connexion maintenant ou est cette erreur de $ ?
reposte ton code tel que tu l'as maintenant stp

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 11:07

<?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                  
   $connexion = mysql_connect($sql_serveur, $sql_login, $sql_password); 
   if($connexion!==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>

<?php
if(isset($_POST['connexion']) && ($connexion===FALSE))
{
   die('<font color="red">Informations incorrectes!');
}
?>
</body>
</html>
Voila le code tel que je l'ai maintenant et désolé pour le dérangement mais je débute en PHP et donc je ne sais pas forcement trouver toutes mes erreurs...

Merci beaucoup

d0m
Mammouth du PHP | 1141 Messages

17 juil. 2007, 11:14

voilà un exemple pour debugguer :
if(isset($_POST['connexion'])) 
{  
   echo 'formulaire valide<BR>';

   //ton formulaire a été validé précedement                   
   $connexion = mysql_connect($sql_serveur, $sql_login, $sql_password);  
   if($connexion!==FALSE) 
   { 
      echo 'la connection a reussi, $connexion : ' . $connexion . '<BR>';

      //la connection a été réussi, on dirige vers l'autre page 
      mysql_select_db($sql_base); 
      header('offre.php'); 
   }
   else echo 'la connexion a echouee, $connexion : ' . $connexion . '<BR>';  
} 
c'est de cette manière que tu vas pouvoir identifier les problèmes (quelles instructions/boucles ne sont pas effectuées et pourquoi)

Glaw
Invité n'ayant pas de compte PHPfrance

17 juil. 2007, 11:29

Désolé de te dire ca mais ca ne change rien du tout et sa ne m'affiche rien, je rentre le pseudo et le mot de passe mais au lieu de charger offre.php ca me recharge le formulaire.


Merci