Page 1 sur 3

Complété une base.

Posté : 02 juil. 2007, 10:15
par Glaw
Bonjour, alors voilà j'ai ce code et je ne sais pas d'ou viens le problème...

Sur firefox il me dit que le problème viens de la ligne 131 mais c'est la fin du code a cette ligne... donc quelle est le problème ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>

<?php
// Dans la ligne qui suit, indiquez l'adresse email a laquelle les messages devront etre envoyes
$email_webmaster = "[email protected]";
// === traitement des donnes du formulaire ============================================================

if (isset($_POST["envoyer"])){
// le formulaire a ete soumis
	$etat = "erreur";
// erreur est la valeur par defaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
		if (isset($_POST["titre_offre"])) {
			 	$_POST["titre_offre"]=trim(stripslashes($_POST["titre_offre"]));
	}
			if (isset($_POST["description_offre"])) {
			 		$_POST["description_offre"]=trim(stripslashes($_POST["description_offre"]));
	}
	   elseif (empty($_POST["titre_offre"])) {
// le titre est vide
			 $erreur="L'offre a bien un titre?";
	}	 
			elseif (empty($_POST["description_offre"])) {
// la description est vide
			 $erreur="Saisissez une description...";
	}
	else 
	{
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
			 $etat="ok";
	}
}
else 
{
// --- le formulaire n'a pasete soumis ---
                 $etat="attente";
}
// === fin de traitement des donnes du formulaire =======================================================
?>

<div class="post">
<h2 align="center" class="post-title">Ajout nouvelle offre d'emploi.</h2>
<!-- Vous pouvez remplacer M'envoyer un email par la formule de votre choix -->

<?php

if ($etat!="ok")
{
// si le formulaire n'a pas ete soumis, ou soumis avec une erreur
         if ($etat=="erreur")
		 {
//ou  si le formulaire a été soumis avec une erreur
                echo "<p><strong>".$erreur."</strong></p>";
// alors on affiche le message d'erreur
         }
?>

<form method="post" action="

<?php echo $_SERVER["REQUEST_URI"]; ?>">
	<p align="center" class="field"><label for="titre_offre">Le titre de l'offre&nbsp;:<br /></label>
        
		<input type="text" size="40" name="titre_offre" id="titre_offre" value="<?php
        if (!empty($_POST["titre_offre"])) {

                echo htmlspecialchars($_POST["titre_offre"],ENT_QUOTES);
        }
        ?>" /></p>

		<p align="center" class="field"><label for="description_offre">Votre description de l'offre&nbsp;:<br /></label>
        <textarea name="description_offre" id="description_offre" cols="40" rows="15"><?php
        if (isset($_POST["description_offre"])) {

                echo htmlspecialchars($_POST["description_offre"],ENT_QUOTES);
        }
        ?></textarea></p>
		
        <p align="center"><input type="submit" name="envoyer" value="Envoyer" />
		<input type="reset" value="Recommencer" name="recommencer"> 
        </p>
		
</form>

<?php
// On commence par récupérer les champs

if(isset($_POST['titre_offre']))      $prenom=$_POST['titre_offre'];
else      $titre_offre="";

if(isset($_POST['description_offre']))      $url=$_POST['description_offre'];
else      $description_offre="";

// On vérifie si les champs sont vides
if(empty($id_offre) OR empty($titre_offre) OR empty($description_offre))
    {
    echo '<font color="red">Attention, seul le champs <b>Id_offre</b> peut rester vide !</font>';
    }

// Aucun champ n'est vide, on peut enregistrer dans la table
else     
    {
       // connexion à la base
$db = mysql_connect('localhost', 'login', 'password')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('offres',$db)  or die('Erreur de selection '.mysql_error());
    
    // on écrit la requête sql
    $sql = "INSERT INTO infos_tbl(id, titre, description) VALUES('','$titre','$description')";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
    } 
?> 
</div>

</body>
</html>

Merci d'avance.

Posté : 02 juil. 2007, 10:19
par Mega :)
Bonjour,

Essaies d'être plus clair dans tes explications. Qu'est sensé faire ce script ? Quelle est l'erreur que tu obtiens ?

Merci de ta compréhension

Mega :)

Posté : 02 juil. 2007, 10:21
par Glaw
Ce script est censé ouvrir un formulaire avec trois champs, id_offre, titre_offre et description_offre que l'utilisateur devra ensuite remplir et en cliquant sur le bouton submit la base de données ouverta grace a ce script doit se compléter toute seule.


Suis-je assez clair ou vous avez besoin de plus d'explication ?

Merci

Posté : 02 juil. 2007, 10:45
par Aureusms
Indique nous l'erreur affichée

Posté : 02 juil. 2007, 10:47
par Glaw
L'erreur afficher c'est :


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

Donc voilà...

Merci

Posté : 02 juil. 2007, 10:50
par Aureusms
Et si je t'ai bien lu, ta ligne 131 c'est la :
 mysql_close();  // on ferme la connexion 

Posté : 02 juil. 2007, 10:53
par Megadeth
Re,

A vrai dire, ca manque encore un peu de clarté et je voulais savoir quelle était le texte exact de l'erreur. Sinon d'emblée je peux dire qu'il y a une erreur au niveau de la requête, car le nom de la table est offres alors que dans la requête on a un infos_tbl et sur la même ligne on se retrouve avec 2 variables non affectées :

Code : Tout sélectionner

$sql = "INSERT INTO infos_tbl(id, titre, description) VALUES('','$titre','$description')";
La ligne ci-dessus semble être un ligne générique. Il faudrait l'adapter à ta base.

Ca devrait plus donner quelque chose du genre :
 $sql = "INSERT INTO offres (id_offre, titre_offre, description_offre) VALUES ('','$_POST["titre_offre"]','$_POST["description_offre"]')";
++

Mega :)

Posté : 02 juil. 2007, 11:15
par Glaw
Ca me donne aussi une erreur, mais cette fois a la ligne de la requete. Je vais regarder c'est quoi le problème je te tiens au courant.

Merci

Posté : 02 juil. 2007, 11:21
par Megadeth
$sql = "INSERT INTO offres (id_offre, titre_offre, description_offre) VALUES ('','".$_POST["titre_offre"]."','".$_POST["description_offre"]."')";
Mieux :)

Posté : 02 juil. 2007, 11:27
par Glaw
Ok c'est bon la requete marche bien, mais j'ai toujours ce message d'erreur a la fin du script.

Si tu peux je veux bien prendre ton msn pour que tu puisse vraiment m'aider.

Merci beaucoup.

Posté : 02 juil. 2007, 11:38
par zeus
Le principe d'un forum, c'est de résoudre les problèmes en public pour que les personnes qui auront le même problème que toi puissent chercher et retomber sur ce sujet.

Si tu demandes une résolution en privée, tu empêches ce système d'aide, ce qui serait vraiment dommage ;)

Posté : 02 juil. 2007, 11:39
par Invité
Ben ouai je sais bien mais bon mon problème est très important. Et je pense que le meilleur moyen de le résoudre est de pouvoir parler avec une personne qualifié en privé pour ensuite trouver les erreurs et peut être les résoudres.

Comme vous voulez.

Si on peut m'aider sur le forum je suis ok.

Merci

Posté : 02 juil. 2007, 11:49
par sadeq
Erreur classique, le message d'erreur qui indique un n° de ligne à la fin du script ou qui dit

Code : Tout sélectionner

Parse error: syntax error, unexpected $end in ... on line ...
signale une fermeture d'accolade manquée.

Regarde dans ton code il manque la fermeture de ce test if :
if ($etat!="ok")
{ 

Posté : 02 juil. 2007, 12:10
par Glaw
Je viens de tout revérifié et même en mettant la fermeture de ce IF il y a toujours une erreur.

Ca va me rendre fou...


Merci

Posté : 02 juil. 2007, 12:52
par sadeq
En fait, c'est à toi de bien placer la fermeture du if ($etat != "ok") car de celà dépond ton algorithme. On ferme pas des if n'importe où.

Quelle est l'erreur maintenant ?