Syntax error, unexpected T_ELSE

Bonjour,
J’ai un petit problème avec mon code php.

Je doit pouvoir éditer certaine information (Le nom qui sera affiché sur le header) par exemple depuis la partie admin, afin de retransmettre l’info sur le header par le code :

<? echo $setting[titre]; ?>

Hors quand je vais sur la partie admin pour editer l’info il me colle une erreur à la con :

syntax error, unexpected T_ELSE in /var/www/clients/client0/web1/web/admin/cms/cms.php on line 82

Voici donc le code en question :



<?php
include("config_cms.php");
?>
<div id="include">
<?php
if(!defined('is'))
    exit();
?>
</div>
<?php
	{
	$action=$_REQUEST['action'];
	$catid = $_GET['catid'];
	if($action=="add") { 
	}  
	if($action=="edit") {
	$sql="SELECT * FROM `setting` WHERE id='$catid'";
	while ($setting = mysql_fetch_array ($data)) {
?>
<head>
<link href="templates/v2.1/client/css/control_panel.css" rel="stylesheet" type="text/css">
<link type="text/css" href="templates/v2.1/css/info_bulle/unitip.css" rel="stylesheet" />
<script type="text/javascript" src="templates/v2.1/js/info_bulle/unitip.js"></script>
</head>

<div class="introhead"><strong>Bienvenue dans l'administration du CMS</strong></div>

<div id="desktop">
	<div class="introblock" style="min-height:295px;">
		<p>Afin de gérer <strong>l'ensemble</strong> du cms nous avons mis à disposition une administration complète afin d'éditer les informations nécessaires au bon fonctionnements du cms</p>
		<div class="bigmak"><img alt="" src="templates/v2.1/client/img/landing_page/bigmak.png"><div class="swap_screen desktop"><img alt="" src="templates/v2.1/client/img/landing_page/desk1.jpg"></div></div>
		<table cellpadding="0" cellspacing="0" class="forms">
		
			<tr>
				<th width="150">Nom du CMS: </th>
				<td><input name="site_name" type="text" class="inputbox" value="<? echo $setting[titre]; ?>" size="45"/> 
				<label for="info" class="tip" title="Nom de votre CMS afficher dans le haut de la pages internet">
				<img style="width: 16px; height: 16px;" alt="" src="templates/v2.1/img/icons18x18/tooltip.png"></td>
				</label>
			</tr>

		
		</table>
		<br><br>
		<div style="text-align: center;">
		<table cellpadding="0" cellspacing="0" class="forms">
		<input type="button" value="Sauvegarder"> - <input type="button" value="Annuler"> 
		</table>
		</div>
		
		<div class="button_holder"><a class="button" href="#" target="_blank">Retours</a></div>
	</div>
</div>
<? 
	} } if($action=="edit_ok") { 
	extract($_POST,EXTR_OVERWRITE);
	if(empty($error)) {
	$edit1 = "UPDATE setting SET 
	nom='$nom',
	url='$url', forum='$forum',
	emailadministrateur='$emailadministrateur',
	emailwebmaster='$emailwebmaster',
	chanmirc='$chanmirc',
	nbnews='$nbnews',
	motcle='$motcle',
	resume='$resume',
	titre='$titre',
	annonce='$annonce',
	titremeta='$titremeta',
	descriptionmeta='$descriptionmeta',
	motsclemeta='$motsclemeta',
	auteurmeta='$auteurmeta',
	emailmeta='$emailmeta',
	categoriemeta='$categoriemeta',
	copyrightmeta='$copyrightmeta',
	termes='$termes' WHERE id=$catid";
	$sqlaction1 = mysql_query($edit1) or die(mysql_error());
	$msg='<meta http-equiv="refresh" content="0; URL=index.php?page=setting&action=edit&catid=1">'; } 
?>

<? echo $msg; ?>
<? } } else  ?>


Merci pour votre aide
Edité le 07/02/2012 à 20:15

L’erreur est là : il y a un else en trop.

<? } } else ?>

Ceci étant, on n’utilise plus <? depuis belle lurette mais <?php (voir doc, <? est désactivé par défaut sur les versions récentes de php).

Bon j’ai avancé dans mon souci maintenant j’arrive à une autre erreur apres editier de mon code php



<?php
include("config_cms.php");
?>
<div id="include">
<?php
if(!defined('is'))
    exit();
?>
</div>
<?php
	{
	$action=$_REQUEST['action'];
	if($action=="add") { 
	}  
	if($action=="edit") {
	$sql="SELECT * FROM `setting` WHERE id='$catid'";
	while ($setting = mysql_fetch_array ($data)) {
?>
<head>
<link href="templates/v2.1/client/css/control_panel.css" rel="stylesheet" type="text/css">
<link type="text/css" href="templates/v2.1/css/info_bulle/unitip.css" rel="stylesheet" />
<script type="text/javascript" src="templates/v2.1/js/info_bulle/unitip.js"></script>
</head>

<div class="introhead"><strong>Bienvenue dans l'administration du CMS</strong></div>

<div id="desktop">
	<div class="introblock" style="min-height:295px;">
		<p>Afin de gérer <strong>l'ensemble</strong> du cms nous avons mis à disposition une administration complète afin d'éditer les informations nécessaires au bon fonctionnements du cms</p>
		<div class="bigmak"><img alt="" src="templates/v2.1/client/img/landing_page/bigmak.png"><div class="swap_screen desktop"><img alt="" src="templates/v2.1/client/img/landing_page/desk1.jpg"></div></div>
		<table cellpadding="0" cellspacing="0" class="forms">
		
			<tr>
				<th width="150">Nom du CMS: </th>
				<td><input name="site_name" type="text" class="inputbox" value="<? echo $setting[titre]; ?>" size="45"/> 
				<label for="info" class="tip" title="Nom de votre CMS afficher dans le haut de la pages internet">
				<img style="width: 16px; height: 16px;" alt="" src="templates/v2.1/img/icons18x18/tooltip.png"></td>
				</label>
			</tr>

		
		</table>
		<br><br>
		<div style="text-align: center;">
		<table cellpadding="0" cellspacing="0" class="forms">
		<input type="button" value="Sauvegarder"> - <input type="button" value="Annuler"> 
		</table>
		</div>
		
		<div class="button_holder"><a class="button" href="#" target="_blank">Retours</a></div>
	</div>
</div>
<?php
	} } if($action=="edit_ok") { 
	extract($_POST,EXTR_OVERWRITE);
	if(empty($error)) {
	$edit1 = "UPDATE setting SET 
	nom='$nom',
	url='$url', forum='$forum',
	emailadministrateur='$emailadministrateur',
	emailwebmaster='$emailwebmaster',
	chanmirc='$chanmirc',
	nbnews='$nbnews',
	motcle='$motcle',
	resume='$resume',
	titre='$titre',
	annonce='$annonce',
	titremeta='$titremeta',
	descriptionmeta='$descriptionmeta',
	motsclemeta='$motsclemeta',
	auteurmeta='$auteurmeta',
	emailmeta='$emailmeta',
	categoriemeta='$categoriemeta',
	copyrightmeta='$copyrightmeta',
	termes='$termes' WHERE id=$catid";
	$sqlaction1 = mysql_query($edit1) or die(mysql_error());
	$msg='<meta http-equiv="refresh" content="0; URL=index.php?page=setting&action=edit&catid=1">'; } 
} } 
?>


Voila le code d’erreur : Undefined index: action in /var/www/clients/client0/web1/web/admin/cms/cms.php on line 12

Bonjour,

La ligne 12 est :

$action=$_REQUEST['action'];

Tout d’abord, je suis d’avis d’utiliser ‘$_GET’ ou ‘$_POST’ plutot que ‘$_REQUEST’

sinon ton erreur est qu’il n’y a pas de paramètre ‘action’ qui est passé dans ta page.

// Avant d'utiliser $_POST['truc'], $_GET['machin']
if (isset($_REQUEST['action']))
{
          // Instructions si $_REQUEST['action'] existe
}