Complété une base.

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 10:15

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.

Mega :)
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 10:19

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 :)

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 10:21

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

ViPHP
ViPHP | 1996 Messages

02 juil. 2007, 10:45

Indique nous l'erreur affichée
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 10:47

L'erreur afficher c'est :


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

Donc voilà...

Merci

ViPHP
ViPHP | 1996 Messages

02 juil. 2007, 10:50

Et si je t'ai bien lu, ta ligne 131 c'est la :
 mysql_close();  // on ferme la connexion 
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 737 Messages

02 juil. 2007, 10:53

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 :)

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 11:15

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

Mammouth du PHP | 737 Messages

02 juil. 2007, 11:21

$sql = "INSERT INTO offres (id_offre, titre_offre, description_offre) VALUES ('','".$_POST["titre_offre"]."','".$_POST["description_offre"]."')";
Mieux :)

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 11:27

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 juil. 2007, 11:38

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 ;)
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

Invité
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 11:39

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

02 juil. 2007, 11:49

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")
{ 
Modifié en dernier par sadeq le 02 juil. 2007, 13:00, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Glaw
Invité n'ayant pas de compte PHPfrance

02 juil. 2007, 12:10

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

02 juil. 2007, 12:52

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 ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène