[RESOLU] Url rewriting "profil.php?id=1"

Eléphant du PHP | 386 Messages

08 janv. 2013, 04:24

Bonjour,

J'aimerais que l'url de ma page "http://www.monsite.fr/home/profil.php?id=1" soit rewritée en "http://www.monsite.fr/home/monprofil"
Le problème c'est que j'ai une page "profil.php" bien compliqué à décortiquer #-o , la voici :
<?php
session_start();
require('include/function.inc.php');
if (!isset($_SESSION['pseudo']))
{
	header('Location: '.$url_site.'/index.php');
}

if(isset($_GET['id'])) {
$sql = connect_sql();
$id = intval($_GET['id']);
$pseudo_membre = $_SESSION['pseudo'];
$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
if(mysql_num_rows($requete)>0) {
$result = mysql_fetch_array ($requete);
$nom = $result['nom'];
$prenom = $result['prenom'];
?>
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<?php
		if(isset($_GET['id']))
		{
		$sql = connect_sql();
		$id = intval($_GET['id']);
		$pseudo_membre = $_SESSION['pseudo'];
		$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
		if(mysql_num_rows($requete)>0) {
		$result = mysql_fetch_array ($requete);
		$nom = $result['nom'];
		$prenom = $result['prenom'];
	?>
	<title><?php echo htmlentities(ucfirst($prenom)); ?> <?php echo htmlentities(ucfirst($nom)); ?></title>
	<?php } mysql_close(); } ?>
	<meta name="description" content="Web Astronomie vous permet de publier vos photos, vos actualités, vos articles avec vos amis et les internautes du site. Inscrivez-vous dès maintenant !" />
	<meta name="keywords" content="Web Astronomie, Web-astronomie, Astronomie, Web-astro, Webastro, Web, Communauté, Réseau, Social" />
	<meta name="google-site-verification" content="MuLDj47hIOGv8WGogFlITztArNdmoZTsgQd1NUpMz7g" />
	<base href="http://www.web-astronomie.fr/">
	<link rel="shortcut icon" href="img/favicon.ico" />
	<link type="text/css" rel="stylesheet" href="css/global.css" />
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/elastic.js"></script>
	<script type="text/javascript" src="js/fadefix.js"></script>
	<script type="text/javascript" src="js/global.js"></script>
</head>
<body>
	<div id="header-m" class="fixed">
		<div class="container">
<?php include('../include/header.inc.php'); ?>
		</div>
	</div>
	<div id="nav-m">
		<div class="container">
<?php include('../include/nav.inc.php'); ?>
		</div>
	</div>
	<div id="content">
		<div class="container">
			<div id="leftCol" class="float-l">
				<div class="bloc-data">
					<div class="topleft-corner"></div>
					<div class="topright-corner"></div>
						<div class="title">
							<div class="title-left">
								<div class="title-right">
									<div class="title-center">
										<h1>Ajouter</h1>
									</div>
								</div>
							</div>
						</div>
						<div class="bloc">
							<div class="bloc-content clearfix">
								<div id="menu-add">
									<table cellpadding="0" cellspacing="2">
										<tr>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/blog.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Créer un blog</p><span class="arrow"></span></span></div></a></td>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/article.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Créer un article</p><span class="arrow"></span></span></div></a></td>
										</tr>
										<tr>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/photos.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Ajouter des photos</p><span class="arrow"></span></span></div></a></td>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/videos.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Ajouter des vidéos</p><span class="arrow"></span></span></div></a></td>
										</tr>
										<tr>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/evenement.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Créer un évènement</p><span class="arrow"></span></span></div></a></td>
											<td class="pdr"><a href="" class="tooltip"><div class="menu-add"><img src="../img/annonce.png" height="22" width="22" alt="" /><span class="tooltip"><p class="tip mini">Créer une annonce</p><span class="arrow"></span></span></div></a></td>
										</tr>
									</table>
								</div>
							</div>
						</div>
					<div class="bottomleft-corner"></div>
					<div class="bottomright-corner"></div>
				</div>
<?php include('../include/sidebar-left.inc.php'); ?>
			</div>
			<div id="contentCol">
				<div id="rightCol" class="float-r">
<?php include('../include/sidebar-right.inc.php'); ?>
				</div>
				<div id="contentArea-members" class="float-l">
					<div class="bloc-data">
						<div class="topleft-corner"></div>
						<div class="topright-corner"></div>
							<div class="title">
								<div class="title-left">
									<div class="title-right">
										<div class="title-center">
											<?php if($_SESSION['id'] == $_GET['id']) {
											echo '<h1>Mon profil</h1>'; 
											}
											else {
											$sql = connect_sql();
											$id = intval($_GET['id']);
											$pseudo_membre = $_SESSION['pseudo'];
											$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
											if(mysql_num_rows($requete)>0) {
											$result = mysql_fetch_array ($requete);
											$nom = $result['nom'];
											$prenom = $result['prenom'];
											echo '<h1>Profil de '.htmlentities(ucfirst($prenom)).' '.htmlentities(ucfirst($nom)).'</h1>';
											} mysql_close(); }
											?>
										</div>
									</div>
								</div>
							</div>
							<div class="bloc">
								<div class="bloc-content clearfix">
									<?php if($_SESSION['id'] == $_GET['id']) {
									$sql = connect_sql();
									$pseudo_membre = $_SESSION['pseudo'];
									$requete =  mysql_query('SELECT * FROM wa_communaute WHERE pseudo="'.$pseudo_membre.'"');
									if(mysql_num_rows($requete)>0)
									{
									$result = mysql_fetch_array ($requete);
									$adresse_image = $sexe ==1 ? '../img/upload/homme.png' : '../img/upload/femme.png';
									$filename = ''.$_SERVER["DOCUMENT_ROOT"].'/img/upload/'.$_SESSION['id'].'.png';
									if (file_exists($filename)) {
									echo '<img src="../img/upload/'.$_SESSION['id'].'.png" class="avatar" width="120" height="120" alt="" />';
									} else {
									echo '<img src="'.$adresse_image.'" class="avatar" width="120" height="120" alt="" />'; 
									} } }
									else {
									$sql = connect_sql();
									$id = intval($_GET['id']);
									$pseudo_membre = $_SESSION['pseudo'];
									$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
									if(mysql_num_rows($requete)>0) {
									$result = mysql_fetch_array ($requete);
									$nom = $result['nom'];
									$prenom = $result['prenom'];
									$adresse_image = $sexe ==1 ? '../img/upload/homme.png' : '../img/upload/femme.png';
									$filename = ''.$_SERVER["DOCUMENT_ROOT"].'/img/upload/'.$id.'.png';
									if (file_exists($filename)) {
									echo '<img src="../img/upload/'.$id.'.png" class="avatar" width="120" height="120" alt="" />';
									} else {
									echo '<img src="'.$adresse_image.'" class="avatar" width="120" height="120" alt="" />'; 
									} } mysql_close(); }
									?>
								</div>
							</div>
						<div class="bottomleft-corner"></div>
						<div class="bottomright-corner"></div>
					</div>
				</div>
			</div>
		</div>
	</div>
</body>
</html>
<?php } else { 
$sql = connect_sql();
$id = intval($_GET['id']);
$pseudo_membre = $_SESSION['pseudo'];
$requete =  mysql_query('SELECT * FROM wa_communaute WHERE pseudo="'.$pseudo_membre.'" AND id="'.$id.'"');
if(mysql_num_rows($requete)>0) {
$result = mysql_fetch_array ($requete);
$nom = $result['nom'];
$prenom = $result['prenom'];
header('Location: profil.php?id='.$_SESSION['id'].'');
} } } else { 
header('Location: profil.php?id='.$_SESSION['id'].'');
}
?>
J'ai déjà essayé avec :

Code : Tout sélectionner

RewriteEngine on Options +FollowSymlinks RewriteRule ^profil/([-A-Za-z0-9]+)$ /profil.php?pseudo=$1 [L]
Ca ne fonctionne pas puisque l'id est sélectionné en GET dans la page profil :(

Merci pour vos réponses

ViPHP
xTG
ViPHP | 7331 Messages

08 janv. 2013, 09:53

Tu veux en gros utiliser le pseudo ? Ce n'est pas génial comme méthode.
Si tu regardes la majorité des réécritures d'url tu trouveras toujours un chiffre dedans, c'est la clé primaire.
Tu peux donc faire ainsi :

Code : Tout sélectionner

RewriteRule ^profil/([-A-Za-z]+)-([0-9])+$ /profil.php?id=$2 [L]
Ainsi tu auras une jolie url avec le pseudo mais tu auras surtout l'information important : l'id