2013-03-01 5 views
1

Привет, переполнение стека в настоящее время. Я как бы застрял с моим user_profile/username_here. Проблема в том, что вы можете заполнить каждое имя пользователя, которое вы хотите, и оно все равно покажет сделанное имя пользователя, если вы поместите его за «/», я получил этот отфильтрованный файл, но теперь, как я могу допустить отображение имени пользователя который зашел за URL-адрес? Я также использую переписывание URL. Htaccess:Имя пользователя по адресу URL

RewriteEngine on 
RewriteBase/

RewriteRule ^profile/([a-zA-Z0-9-\._]+)(\/)?     /profile.php?username=$1 [L,QSA] 

Вот код, я использую для user_profile.php:

<?php 
    require_once('db.php'); 
    session_start(); 

    if(!isset($_SESSION['id'])) { 
     header("location: access_denied.php"); 
    } else {  

    $username = $_SESSION['username']; 
    $firstname = $_SESSION['firstname']; 
    $lastname = $_SESSION['lastname']; 
    $result3 = mysql_query("SELECT * FROM tab where username='$username' AND firstname='$firstname' AND lastname='$lastname'"); 


    if($row3 = mysql_fetch_array($result3)) { 
     $username = $row3['username']; 
     $firstname = $row3['firstname']; 
     $lastname = $row3['lastname']; 
    } 



?> 
<html> 
    <body> 
     <table width="398" border="0" align ="center" cellpadding="0"> 
      <tr> 
      <td height ="26" colspan="2">Profile info</td> 
       <td><div align="right"><a href="log_out.php">Logout</a></div></td> 
      </tr> 
      <tr> 
       <td width="129" rowspan="5"><img src="<?php echo $picture?>" width="129" height="129" alt="no image found"/></td> 
       <td width="82" valign="top"><div align="left">Username:</div></td> 
       <td width="165" valign="top"><?php echo $username ?></td> 
      </tr> 
      <tr> 
       <td width="82" valign="top"><div align="left">Firstname:</div></td> 
       <td width="165" valign="top"><?php echo $firstname ?></td> 
      </tr> 
      <tr> 
       <td width="82" valign="top"><div align="left">lastname:</div></td> 
       <td width="165" valign="top"><?php echo $lastname ?></td> 
      </tr> 
     </table> 
     <p align="center"><a href="index.php"></a></p> 
    </body> 
</html> 
<?php 
    } 
?> 

Где мне нужно поставить код так, что имя пользователя, который в данный момент находится в системе за адресом? Объяснение приветствуется, поскольку я довольно новичок в PHP. Также, если вы видите какие-либо ошибки, скажите об этом.

+0

Добавление его к каждому URL вы генерировать может быть хорошей идеей – AmazingDreams

+0

как вы генерировать URL ?? – Johny

ответ

1

НЕ ИСПОЛЬЗОВАТЬ mysql_ * - Он устарел в PHP 5.5. Используйте вместо этого MySQLi или PDO.

Ваш код можно разместить куда угодно. Поскольку у вас есть переменные, все, что вам нужно сделать, это построить свою ссылку.

<a href="profile/<?php echo $username; ?>"> 

Это создаст ссылку как таковой: http://domain.tld/profile/username

+0

Спасибо человеку. Есть ли способ преобразовать все MySQL_ * в PDO или MySQLi без проблем? Я думаю, что это будет очень сложно, так как я умножаю файлы с MySQL_ * и ни один PDO или MySQLi. В любом случае, я могу без проблем конвертировать их? –

+0

Это как любая программа, которая переключает API, на это потребуется время, чтобы учиться и реализовывать. В конце концов, это будет лучше, так как вы будете в курсе последних событий и теоретически более безопасны. Возможно, посмотрите на класс, который кто-то сделал для одного, и это может помочь. – UnholyRanger

+0

Aahh okay Я действительно надеялся, что есть простой способ, но я думаю, нет. Пора начать учиться снова. спасибо за предоставленную помощь. –

-1

попробовать это:

<p align="center"><a href="index.php?name=<?php echo $username; ?>"></a></p> 

но вам нужно установить ваше htacces рассматривать его как index.php, whitout дополнительных паров

+0

Зачем вам это делать, если OP уже разработал «красивые» URL-адреса? У него также есть 'profile.php' для его обработки. – Havelock