Comprend pas ce que me dit le serveur

Fermé
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 13 juil. 2008 à 00:57
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 14 juil. 2008 à 18:11
Bonjour,
Bonsoir à tous,

Ca fait un bon moment que je bataille pour afficher une liste de prénoms basques, dans un premier temps, puis en cliquant sur l'un d'eux, afficher l'origine.
Mais voici ce que me dit le serveur:
Erreur 405 - Méthode de requ&eacirc;te non autorisée

The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource. 

Je comprend que la méthode n'est pas autorisé, mais encore ? Qu'est-ce que ça veut dire ?
Je ne maitrise pas bien le php, alors soyez indulgent !

Merci mille fois.
Voir les tests sur http://txiki.free.fr, rubrique Prénoms/Prénoms basques/ Rechercher les Prénoms féminins (en bas de page).
Pour le moment je n'ai fait que les A féminins (318), c'est pas demain que j'aurai terminé avec la table des prénoms féminins.....

2 réponses

ericleclerc1985 Messages postés 642 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 288
13 juil. 2008 à 02:45
Je crois qu'il manque qqch dans ton code html


<FORM action="http://server.com/"
enctype="multipart/form-data"
method="post">

</FORM>

0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
13 juil. 2008 à 23:34
Salut ericleclerc1985 et désolé pour ce retard mais je pédale dans la choucroute avec ce code php.
J'utilise des variables de sessions et toutes les pages sont dans un fichier Init Session Table (les noms des fichiers je veux dire).

J'arrive jusqu'au formulaire, je tape un prénom (ane, Ana etc (je n'ai que les a féminins pour le moment) mais en validant, j'obtiens une page de free.
Voici le début du code de ce formulaire.
<!-- ============== recherche des prénoms ============ -->
<h1> Rechercher un pr&eacute;nom basque </h1>
	<br />

<?
if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide.
{
//=========================================
// information pour la connection à le DB
//=========================================
mysql_pconnect('localhost','','') or die ("Impossible de se connecter à la base de données");
mysql_select_db('txiki') or die("Impossible de sélectionner la base de données");

// on créé une variable $requete pour faciliter l'écriture de la requete sql, 
// mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars().
$requete = htmlspecialchars($_POST['requete']); 
$query = mysql_query("SELECT Prenom FROM prenomsfeminins WHERE ID LIKE '%$requete%' ORDER BY id ASC") or die (mysql_error()); 

$nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après
if($nb_resultats != 0) // si le nombre de résultats est supérieur à 0, on continue
{
// maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats
?>


En fait je voudrais obtenir tous les prénoms féminins commençant par A sur 3 ou 4 colonnes avec un maximum de 20 par colonne. Puis, en cliquant sur l'un d'eux, obtenir son origine.
L'autre méthode, ci dessus, serait d'utiliser le formulaire quand on cherche un prénom en particulier.
La page qui affiche l'origine s'appelle Fiche_prenomF Fr.htm.
Un peu comme ici: https://www.euskaltzaindia.eus/index.php?option=com_ecoeoda&task=bilaketaPortada&Itemid=472&lang=eu/index.asp

Mais c'est très dur pour moi et pourtant je l'avais fait, il a assez longtemps pour un catalogue de logiciels et ça marchait mais c'était aussi assez différent !

Merci en tous cas pour ta collaboration.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
14 juil. 2008 à 01:13
Tu pourrai nous mettre le code du formulaire de recherche (la page où tu tape le prénom à rechercher) et le code complet de la page suivante ?
Sans ça, je peux pas t'aider.

A mon avis y'a un problème au niveau de la redirection sur la page suivant pour afficher les résultats.
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
14 juil. 2008 à 18:11
Salut arthesius et merci,

Je pense que je perd la transmission des données.
Voici le code du formulaire:
<!-- ================ recherche des prénoms ============= -->
<h1> Rechercher un pr&eacute;nom basque </h1>

<?
if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide.
{
//==========================
// information pour la connection à le DB
//==========================
mysql_pconnect('localhost','','') or die ("Impossible de se connecter à la base de données");
mysql_select_db('txiki') or die("Impossible de sélectionner la base de données");

// on créé une variable $requete pour faciliter l'écriture de la requete sql, 
// mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars().
$requete = htmlspecialchars($_POST['requete']); 
$query = mysql_query("SELECT Prenom FROM prenomsfeminins WHERE ID LIKE '%$requete%' ORDER BY id ASC") or die (mysql_error()); 

$nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après
if($nb_resultats != 0) // si le nombre de résultats est supérieur à 0, on continue
{
// maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats
?>
<table width='70%' border="1" align='center' cellpadding="5" cellspacing="0">
  <tr><td>
<h3> Résultats de la recherche: </h3>
<p class="red"><? echo $nb_resultats; // on affiche le nombre de résultats
if($nb_resultats > 1) { echo '&nbsp;résultats trouvés'; } else { echo '&nbsp;résultat trouvé'; } // on vérifie le nombre de résultats pour orthographier correctement.
?>
 dans les prénoms féminins basques. </p>
<?
while($donnees = mysql_fetch_array($query)) // on fait un while pour afficher la liste des prénoms trouvées, ainsi que l'id qui permettra de faire le lien vers la page du prénom
{
?>
<a href="fiche_prenom.htm?id=<? echo $donnees['id']; ?>"><? echo $donnees['Prenom']; ?></a><br/>
<?
} // fin de la boucle
?>
<br /></td></tr></table>
<br/>
<p align="center"><img src="/Images/Boutons/nouvelle-recherche.png" width="135" height="21" onClick="document.location.href='recherche_Prenoms Fr.htm'"/></p>
<?
} // fini d'afficher les résultats ! Maintenant, il faut afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else
{ 
?>

<table width="60%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>
    <p align="center" class="red"> Aucun r&eacute;sultat pour ce pr&eacute;nom "<? echo $_POST['requete']; ?>". </p>
 <p align="center"><img src="/Images/Boutons/essayez.png" width="70" height="21" onClick="document.location.href='recherche_Prenoms Fr.htm'"/> avec un autre prénom </p></td>
  </tr>
</table>
<?
} // fini d'afficher l'erreur ^^
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{ 
// et voilà le formulaire, en HTML de nouveau !
?>
<p align="center"> Vous allez effectuer une recherche des prénoms basques.<br />
	Tapez un <strong>prénom </strong> puis lancez la recherche.<br />
	Les r&eacute;sultats s'afficheront sous forme de lien. <br />
	En cliquant sur l'un d'eux, vous obtiendrez son origine d&eacute;taill&eacute;e.</p>
<p align="center"><strong class="vert"> Bonne recherche ! </strong></p>

<table width="50%"  border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>
    <form action="Recherche_PrenomsF%20Fr.htm" method="post">
    <p><input type="text" name="requete" size="40" />&nbsp;<img src="/Images/Boutons/OK.png" width="35" height="21" onClick="document.location.href='rechercher.php'"/></p> 
    </form>
	</td></tr></table>
<?
}
// et voilà, c'est fini !
?>

Maintenant la page dans laquelle doit s'afficher le texte expliquant l'origine.
  <!-- Début de la boite frame -->
<h1 align="center"> Les prénoms basques </h1>

<p align="center"><a href="https://www.euskaltzaindia.eus/index.php?option=com_ecoeoda&task=bilaketaPortada&Itemid=472&lang=eu/index.asp" target="_blank"><img src="/Images/Euskaltzaindia.jpg" width="523" height="56" border="0" alt="Site des prénoms basques" title="Site des prénoms basques" /></a></p>
        <table width="80%" align="center" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="40px"><p align="center">Ici non plus, n'oubliez pas la prononciation le "<strong>x</strong>" se prononce "<strong>ch</strong>". ex: Xalbat = <strong>Chalbatt</strong>.</p>
        </td>
      </tr>
      <tr>
        <td>
<?
setLocale(LC_TIME, 'fr_FR', 'FRA'); // langue française pour la date

// ==============================================================
// On recupere la variable "id" correspondant au prénom choisi
// ==============================================================
$id = $_GET["id"]; // La manipulation de $id est plus simple que celle de $_POST["id"]

// ==================================================
// On se connecte et on choisi la base de données
// ==================================================
mysql_pconnect("localhost","","") or die ("Impossible de se connecter à la base");
mysql_select_db("txiki") or die("Impossible de sélectionner la base de données");

//=====================================================================================
// requête SQL qui affiche les infos sur l'origine du prénom au lien cliqué 
//=====================================================================================

$select = "select Prenom and Origine FROM prenomsfeminins WHERE ID='$id'"; // On selectionne seulement la ligne qui correspond au prénom choisi 
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_row($result);  // mysql_fetch_row genere un tableau correspondant a la ligne selectionnée de la BDD
// Les informations sont accessibles par $row["id"], $row["Prenom"], $row["Origine"]...

// ===================================================
// Affichage du prénom dans un tablea&u dynamique 
// ===================================================
  echo "<table width='65%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='4' align='center'>\n";
// première ligne on affiche le titre "Prénom" sur la première ligne
        echo "<tr text-align='center' padding='3px'>";
        echo "<td bgcolor='#7F9DB9'><h2> Prénom </h2></td>"; // ligne pour le titre Prénom
        echo "</tr>\n";
        echo "<tr text-align='center' padding='3px'>";
        echo "<td bgcolor='#7F9DB9'><h2> Origine </h2></td>"; // ligne pour le titre: Origine
        echo "</tr>\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 2 lignes.    
  echo "<tr bgcolor='#FFA54A' text-align='center'>";
  echo "<td width='65%'><strong>" .$row['0']."</strong></td>"; // première ligne  pour le prénom
  echo "</tr>\n";
  echo "<tr>";
  echo "<td width='65%'>" .$row['1']."</td>"; // seconde ligne  pour son origine
  echo "<tr>";
  echo "<td width='65%'>En français:" .$row['2']."</td>"; // affiche le le prénom en français s'il existe 
  echo "</tr>\n";
  echo "</table>\n";
    // fin du tableau.
mysql_close();
?> 
</td>
      </tr>
</table>
   <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>&nbsp;</td>
    <td width="20%" align="center">&nbsp;</td>
    <td width="20%" align="center"><a href="Javascript:history.go(-1)">&nbsp;Pr&eacute;c&eacute;dente&nbsp;</a></td>
  </tr>
</table>
	<!-- Fin de ligne libre, à compléter éventuellement -->
	<!-- Fin de la boite frame -->


Voici enfin le message de Free:
Erreur 405 - Méthode de requ&eacirc;te non autorisée


The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.


Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0