Requete formulaire non aboutie

Petit nouveau ! | 5 Messages

31 mai 2012, 17:33

Voici mon code:
<?php

if(isset($_COOKIE['inscription-toto-com'])) {
	$cookie = @unserialize(stripslashes($_COOKIE['inscription-toto-com']));
} elseif(isset($_COOKIE['formation-cap-com'])) {
	$cookie = @unserialize(stripslashes($_COOKIE['formation-toto-com']));
} else {
	$cookie = '';
}

$values = array('nom', 'prenom', 'fonction', 'email', 'organisme', 'adresse', 'cp', 'ville', 'author', 'type', 'category');
foreach($values as $value) {
	if(!empty($_POST[$value])) {
		${$value} = $_POST[$value];
	} elseif(!empty($cookie[$value])) {
		${$value} = $cookie[$value];
	} else {
		${$value} = '';
	}
}

echo '<script type="text/javascript">'._N;
echo 'function help(item) {'._N;
echo 'info = item.title;'._N;
echo 'required = (item.className == "input_text required") ? " <span>Ce champ est requis</span>" : "";'._N;
echo 'getElement(item.id + "_after").innerHTML = \'<span class="help"><span class="fleche"></span>\' + info + required + "</span>";'._N;
echo '}'._N;
echo 'function hideHelp(item) {;'._N;
echo 'getElement(item.id + "_after").innerHTML = "";'._N;
echo '}'._N;
echo '</script>'._N;
echo '<br />'._N;

$form = new form('inscription', SITE_URL.'/inscription.html', array('method' => 'post'));
$form->hidden('container', 'inscriptions');
$form->checkbox('status', array(2 => 'Inscription', 1 => 'Demande de devis'), array('label' => ' ', 'values' => array(2)), 'radio');
$form->startFieldset('Stagiaire');
$form->text('nom', array('label' => 'Nom', 'value' => $nom, 'required' => true, 'title' => 'Indiquez le nom du stagiaire.', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->text('prenom', array('label' => 'Prénom', 'value' => $prenom, 'required' => true, 'title' => 'Indiquez le prénom du stagiaire.', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->text('fonction', array('label' => 'Fonction', 'value' => $fonction, 'size' => '30', 'title' => 'Indiquez la fonction du stagiaire au sein de l\'organisme. ', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->text('email', array('label' => 'Email', 'value' => $email, 'size' => '30', 'required' => true, 'title' => 'Indiquez l\'adresse email du stagiaire.', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->checkbox('ml_stag', array(1 => 'Abonner le stagiaire à la newsletter Cap\'Com'), array('label' => ' ', 'values' => array(1)));
$form->endFieldset();

$form->startFieldset('Organisme');
$categories = array(
	'' => 'Sélectionner un type d\'organisme',
	'Collectivité territoriale' => array(
		11 => 'Commune de moins de 10000 habitants',
		12 => 'Commune ou intercommunalité de 10 000 à 50 000 habitants',
		13 => 'Commune ou intercommunalité de plus de 50 000 habitants',
		14 => 'Département',
		15 => 'Région',
	),
	16 => 'Ministère ou administration déconcentrée',
	17 => 'Préfecture',
	'Organisme public' => array(
		19 => 'Chambre consulaire',
		20 => 'Office de logement social',
		21 => 'Organisme de tourisme',
		22 => 'Agence de développement économique',
		23 => 'Autre',
	),
	24 => 'Entreprise publique',
	25 => 'Entreprise privée, agence ou consultant',
	26 => 'Association',
);
$form->select('category', $categories, array('label' => 'Type d\'organisme'));
$form->text('organisme', array('label' => 'Organisme', 'value' => $organisme, 'size' => 50, 'title' => 'Laissez vide si le stagiaire ne s\'inscrit pas pour le compte d\'un organisme.', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->textarea('adresse', array('label' => 'Adresse', 'value' => $adresse, 'cols' => 45, 'rows' => 3, 'required' => true));
$form->text('cp', array('label' => 'Code postal/ville', 'value' => $cp, 'break' => ' ', 'size' => '5'));
$form->text('ville', array('label' => ' ', 'size' => '40', 'value' => $ville, 'required' => true));
$form->text('author', array('label' => 'Email', 'value' => $author, 'size' => '30', 'required' => true, 'title' => 'Indiquez l\'adresse email du service formation ou reportez l\'adresse email du stagiaire.', 'onfocus' => "help(this);", 'onblur' => "hideHelp(this);"));
$form->checkbox('ml_org', array(1 => 'Abonner l\'organisme à la newsletter toto), array('label' => ' ', 'values' => array(1)));
$form->endFieldset();

$formations[] = 'Sélectionnez une formation';
$result = $database->select('catalogue', 'id, title', 'status IN (3,4,5)');
while(list($id, $title) = $database->fetch_array($result)) {
	$formations[$id] = $title;
}
$formation = isset($_REQUEST['formation']) ? $_REQUEST['formation'] : '';

$form->startFieldset('Participation');
$form->select('formation', $formations, array('values' => $formation, 'label' => 'Formation', 'required' => true, 'onchange' => "httpRequest('".SITE_URL."/inscription.html?date_select=' + getElement('inscription_formation').value, 'inscription_session', '');"));

$result = $database->select('types', 'id, type_title', "container='inscriptions'");
$types[''] = '';
while(list($id, $type) = $database->fetch_array($result)) {
	$types[$id] = $type;
}
$type = isset($_REQUEST['type']) ? $_REQUEST['type'] : '';
$form->select('type', $types, array('label' => 'Tarif applicable', 'required' => true, 'values' => array($type)));

// Si il s\'agit d\'une requète AJAX pour obtention des dates de formation
if(isset($_GET['date_select'])) {
	$_REQUEST['formation'] = $_GET['date_select'];
	$exit = true;
}

$dates = array();
if(isset($_REQUEST['formation'])) {
//	$result = $database->query("SELECT node.item_target, node.title from ".$database->prefix('nodes')." AS node, ".$database->prefix('agenda')." AS agenda WHERE node.container_source='catalogue' AND node.container_target = 'agenda' AND node.item_source=".$_REQUEST['formation']." AND node.item_target = agenda.id AND agenda.status IN(3,4,5)");
	$result = $database->select('agenda', 'id, date_start, location', 'formation='.$_REQUEST['formation'].' AND status IN(3,4,5)');
	while(list($id, $date, $lieu) = $database->fetch_array($result)) {
		$dates[$id] = $lieu.' : '.$localization->formatDate($date, 'medium').'<br />';
	}
}

$date_select = $form->checkbox('session', $dates, array('label' => 'Lieu et date', 'break' => ' '), 'radio');
if(isset($exit)) {
	echo $date_select;
	exit();
}
$form->endFieldset();

$form->startFieldset('');

$form->addInput('<small>La validation de l\'inscription implique l\'acceptation explicite des <a href="http://formations.toto.com/cgv.html">conditions de vente</a>. Assurez-vous d\'avoir obtenu l\'accord de votre service formation avant de procéder à votre inscription.</small><br />');
$form->submit('Valider l\'inscription', array('label' => ' '), false);
$form->endFieldset();

$form->display();

?>
Dans mon formulaire lorsqu'on click sur la checkbox "Demande de devis" et on valide, j'ai un message d'erreur comme quoi la requete n'a pas aboutie

merci de l'aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 juin 2012, 11:44

Salut

Va falloir être plus précis sur l'erreur parce c'est trop vague.
C'est le navigateur qui l'indique (donc une page d'erreur du navigateur) ?
Si oui y a une URL foireuse dans ton code (cible du formulaire / action Ajax etc).

S'il s'agit d'un message perso faut débogguer le code que tu indique (avec var_dump / print_r / un IDE bien configuré qui t'y aidera). C'est le seul moyen de pouvoir suivre le cheminement du code et trouver l'erreur.

Le message que tu indique le fait penser à la premier solution.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

01 juin 2012, 14:33

slt,

voici le message d'erreur exacte lorsque je coche "demande de devis" et que je valide:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.