8797 sujets

Développement web côté serveur, CMS

Bonjour à tous et à toutes.

J'ai un vrai casse-tête et je ne trouve pas de solutions. J'ai frappé un mur comme on dit...

Voilà l'idée: il y a sur une zone input et dans cette zone l'utilisateur indique un numéro. Ce numéro correspond à un numéro de page associé à un url vie une base de données ou un array php. Or, je voudrais que quand un utilisateur tape 100 et clic sur le bouton Go (submit button) il soit dirigé automatiquement sur la bonne page...

Merci pour vos pistes de solutions !!!

Yan.
Modifié par akinayotaka (02 Jun 2008 - 23:51)
Salut akinayotaka Smiley cligne ,

il y a plusieurs façons de faire mais en gros :
- tu récupères la variable envoyée par le formulaire (et pour des raisons de simplicité et de sécurité tu la transformes directement en numérique entier)
$page = isset($_POST['page']) ? intval($_POST['page']) : 0;
- ensuite tu vérifies que ce n° de page existe dans ta base mysql
if (($page > 0) AND ($page < 99999)) { // Si un n° de page a été envoyé
$sql='SELECT url FROM pages WHERE numpage = '.$page;
$result = mysql_query($sql) or die(mysql_error());
- si tu as récupéré une url, soit tu fais un include dans ta page (dans ce cas il ne s'agit que de contenu sans les balises <html>, <head> et <body>), soit tu fais une redirection vers la page en question :
if (mysql_num_rows($result) > 0) {
$url = mysql_result($result, 0);
   if (file_exists($url)) {
       include($url);  // OU  header("Location: $url);
   }
}
} // fin de ...if page > 0

A+
Merci beaucoup Thomas !!!

Cela va faire le travail !

Il ne me reste plus qu'à créer un ficher htacces.

Mais, j'aurais une question sur le procédé :
1- en ne mettant pas de consigne à la balise <form action=""..., cela revient à dire : "dirige l'information sur cette page "?
2- comment se fait-il que le header n'étant pas en tout premier lieu de la page cela fonctionne ?

Merci encore beaucoup pour le coup de pouce !!!

Yan
Bonjour Heyoan !

Ouf, tu as répondu pendant que je répondais à Thomas...

Merci beaucoup pour ce code !!! C'est très chic !!!

Je pense que ce sera plus simple ainsi si je prend en considération que le site va se développer au fil du temps.

Je fais mes test lundi car demain je suis en camping pour la fin de semaine (yessss)

Donc, merci à vous deux encore une fois !!!

Pour tout de suite, je suis en train de bosser sur l'implémentation d'un google API pour faire des cartes personnalisés... C'est assez puissant tout ce matos !!!

Yan.
De retour de camping !!!
Ces vacances furent du plus grand bien, je vous le jure !!!

Bon, j'ai testé tout cela et ca fonctionne après quelques bidouillage que j'ai dû faire pour adapter ce script à mon niveau de compréhension du PHP.

Cela donne ceci :



<?php
include "include/connect.php";
$page = isset($_POST['page']) ? intval($_POST['page']) : 0;
if (($page > 0) AND ($page < 99999)) { // Si un n° de page a été envoyé

//echo "un numéro a été entré".$page;

$requeteMembres = 
			   "SELECT * 
			   FROM url 
			   WHERE numpage='$page'";

    $resultat = mysql_query($requeteMembres);
			   $ligne = mysql_fetch_array($resultat);
			   $url = $ligne["adresse"];
 header("Location:".$url);
}
?>


Qu'en pensez-vous ?


Merci encore mille fois pour le coup de main !!!

Yan. Smiley biggrin