Pb avec script php

Résolu/Fermé
bugs20007 Messages postés 196 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 21 janvier 2010 - 4 janv. 2008 à 12:41
bugs20007 Messages postés 196 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 21 janvier 2010 - 5 janv. 2008 à 03:27
Bonjour,
j'ai créer un espace admin pour mon site et tout fonctionner bien pour créer, modifier, supprimer un annonce.
J'ai voulu modifier le script pour acceuillir des photo et une session et depuis j'ai un message qui apparait quand je veux modifier l'annonce :

donc = // ceci { echo " ".htmlentities($comm, ENT_QUOTES)." "; } ?>
if($_GET[action] == "modif") { include("include.php"); $requete = "SELECT * FROM annonce WHERE numero=$_GET[num]"; $resultat = mysql_query ($requete, $connection); $test = mysql_fetch_row($resultat); list ($numero, $model, $couleur, $mec, $km, $energie, $puissance, $opt, $comm, $prix) = $test; } ?>

Sinon pour supprimer et créer pas de sousis, mais seulement pour modifier.
les données de la base n'arrive pas au formulaire et le message apparait en haut du formulaire.

voici les 2 scripts : execute.php et formulaire.php

execute.php

<?
include("include.php");
?>
<table border=1>
<tr><td><a href='execute1.php'>Mode Adminstrateur complet</a></td></tr>
<tr><td><a href='formulaire.php?action=insert'>ajouter</a></td></tr>
</table>
<?
$_POST[model]."<br>";
$_POST[couleur]."<br>";
$_POST[mec]."<br>";
$_POST[km]."<br>";
$_POST[energie]."<br>";
$_POST[puissance]."<br>";
nl2br(stripslashes($_POST[opt]))."<br>";
nl2br(stripslashes($_POST[comm]))."<br>";
$_POST[prix];


// pour supprimer, modifier, ajouter une annonce

if( $_GET['action'] == "suppr" ) {

$requetesupprime = "DELETE FROM annonce WHERE numero='".$_GET['num']."' ";
mysql_query ($requetesupprime, $connection);
} elseif( $_GET[action] == "modif" ) {

$requetemodifier = "UPDATE annonce SET numero='$_GET[num]', model='$_POST[model]', couleur='$_POST[couleur]', mec='$_POST[mec]', km='$_POST[km]', energie='$_POST[energie]', puissance='$_POST[puissance]', opt='$_POST[opt]', comm='$_POST[comm]', prix='$_POST[prix]' WHERE numero='$_GET[num]' ";
mysql_query ($requetemodifier, $connection);
} elseif($_GET[action] == "insert" ) {

$requetecreation = "INSERT annonce SET numero='', model='$_POST[model]', couleur='$_POST[couleur]', mec='$_POST[mec]', km='$_POST[km]', energie='$_POST[energie]', puissance='$_POST[puissance]', opt='$_POST[opt]', comm='$_POST[comm]', prix='$_POST[prix]' ";
mysql_query ($requetecreation, $connection);
}

$requete = "SELECT * FROM annonce ORDER BY numero";

$resultat = mysql_query ($requete, $connection);

?>

<table align=center border=1>
<?
while ($test = mysql_fetch_row($resultat)) {

list ($numero, $model, $couleur, $mec, $km, $energie, $puissance, $opt, $comm, $prix) = $test;
echo '<tr><td>';
echo $model;
echo '</td><td>';
reduitletexte($opt);
echo '</td><td>';
echo "<a href='execute.php?num=$numero&action=suppr'>Supprimer</a>";
echo '</td><td>';
echo "<a href='formulaire.php?num=$numero&action=modif'>Modifier</a>";
echo '</td></tr>';
}
?>
</table>
----------------------------------------------------------------------------------------------------------------------------------------------------------

formulaire.php

<html>
<body>
<?
//bug déclarer!!
//à la modification des données dans la base des '' viens au début et à la fin du texte
//bug connu supprimer les ' de comm et opt { echo "'".htmlentities($comm, ENT_QUOTES)."'"; } ?></textarea><br> donc =
// ceci { echo " ".htmlentities($comm, ENT_QUOTES)." "; } ?></textarea><br>
if($_GET[action] == "modif") {

include("include.php");

$requete = "SELECT * FROM annonce WHERE numero=$_GET[num]";
$resultat = mysql_query ($requete, $connection);
$test = mysql_fetch_row($resultat);
list ($numero, $model, $couleur, $mec, $km, $energie, $puissance, $opt, $comm, $prix) = $test;
}
?>
<form name="leformulaire" action="execute.php<?

switch ($_GET[action]) {
case "modif":
echo "?action=modif&num=$_GET[num]";
break;
case "insert":
echo "?action=insert";
break;
}

?>" method="post">
Modèle du véhicule :<br>
<input name="model" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($model, ENT_QUOTES)."'"; } ?>><br>
Couleur du véhicule :<br>
<input name="couleur" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($couleur, ENT_QUOTES)."'"; } ?>><br>
Année de mise en circulation :<br>
<input name="mec" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($mec, ENT_QUOTES)."'"; } ?>><br>
Kilométrage du véhicule :<br>
<input name="km" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($km, ENT_QUOTES)."'"; } ?>><br>
Energie :<br>
<input name="energie" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($energie, ENT_QUOTES)."'"; } ?>><br>
Puissance fiscal :<br>
<input name="puissance" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($puissance, ENT_QUOTES)."'"; } ?>>CV<br>
Option :<br>
<textarea name="opt" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($opt, ENT_QUOTES)."'"; } ?></textarea><br>
Commentaire :<br>
<textarea name="comm" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($comm, ENT_QUOTES)."'"; } ?></textarea><br>
Prix :<br>
<input name="prix" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($prix, ENT_QUOTES)."'"; } ?>>€<br>
<input type=submit value="envoyer!">
</form>
</body>
</html>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

je vous remercie de vos reponses.
A voir également:

3 réponses

Bonsoir,
ne t'offusques pas mais qq remarques:

tags php : <?php ?> et pas <? ?>

dans tes balises html il manque des "

<input name="model" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($model, ENT_QUOTES)."'"; } ?>><br>


<input name="model" type="text" size="30" value="<?php if($_GET[action]=="modif") { echo "'".htmlentities($model, ENT_QUOTES)."'"; } ?>"><br>


pour extraire dans ta table moi je préfère:

$requete = "SELECT * FROM annonce WHERE numero=$_GET[num]";
$resultat = mysql_query ($requete, $connection);

$ligne = mysql_fetch_array($resultat);
// et tu as toutes les valeurs de schamps par:
$numero=$ligne['numero'];
$model=$ligne['model'];
//etc...



dans le formulaire:

<form name="leformulaire" action="execute.php<?

switch ($_GET[action]) {
case "modif":
echo "?action=modif&num=$_GET[num]";
break;
case "insert":
echo "?action=insert";
break;


tu ne précises pas method="post" alors que dans execute tu récupéres par $_POST


et pourquoi mettre des valeurs dans l'url fait tout en POST


Ensuite quel est le premier fichier appelé. execute.php ou formulaire.php ?
0
Bonsoir

vers le début de formulaire.php, tu as un ?> juste avant le </txtarea>. Ton PHP s'arrête ici et la suite est prise comme du HTML, d'où le donc = etc...
remarque supplémentaire :
Tu utilises bien des $_GET[num] sans ' autour de num ? pas $_GET['num'] ? Et ça marche ? il ne te sort pas plein de Notice: Use of undefined constant num - assumed 'num' ?
Tu dois avoir un niveau de error_reporting très bas dans ton php.ini, ça ne passerait pas sinon. C'est très mauvais pour développer, tu crois écrire des choses qui marchent mais qui sont en fait truffées d'erreurs, même si tu as l'impression que ça fait ce que tu veux.
0
bugs20007 Messages postés 196 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 21 janvier 2010 12
5 janv. 2008 à 03:27
j'ai trouver d'ou ca venais
en fait g laisser un commentaire sur un bug que j'utilise par aller plus vite et j'aivais mis une remarque sur cela pour le supprimer avant de le mettre en ligne.
dans formulaire :

//bug déclarer!!
//à la modification des données dans la base des '' viens au début et à la fin du texte
//bug connu supprimer les ' de comm et opt { echo "'".htmlentities($comm, ENT_QUOTES)."'"; } ?></textarea><br> donc =
// ceci { echo " ".htmlentities($comm, ENT_QUOTES)." "; } ?></textarea><br>
if($_GET[action] == "modif") {

pourtant j'ai bien mis de // devant ce qui a pour but de les rendre inutilisable, mais bon en le supprimant ca remarche donc je vais pas chercher plus loin
en tous cas je vais suivre les remarques que l'on ma indiquer car je suis la pour apprendre et me perfectionner.

je vous remercie pour vous reponse et idée.
0