Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pytanie
#1
Witam

Mam skrypt (bardzo ubogi ale chodzi tylko o przykład)
form.php - zawiera formularz do rejestracji
submit_account - przetwarza formularz i wstawia dane do BD
Kod PHP:
<?php  // submit_account
 
require_once('dbinfo.inc');
  
 function 
super_escape_string($in_string$in_conn)
  {
    
$str $in_conn->real_escape_string($in_string);
    return 
ereg_replace('([%;])''\\\1',$in_string);
  }

$uname = isset($_POST['UserName']) ? $_POST['UserName'] : '';
$fname = isset($_POST['fullName']) ? $_POST['fullName'] : '';
$pw1 = isset($_POST['password1']) ? $_POST['password2'] : '';
$pw2 = isset($_POST['password2']) ? $_POST['password2'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
if (
$pw1 != $pw2)
 echo 
"Hasla sie roznia ";

// czy przeslanie pliku jest ok

 
if($_FILES['avatarfile']['error'] == UPLOAD_ERR_OK)
 {
   
$ext strtolower(pathinfo($_FILES['avatarfile']['name'], PATHINFO_EXTENSION));
   switch(
$ext)
   {
     case 
'jpg': case 'jpeg':
       
$fileType 'image/jpeg';
       break;
      
     case 
'gif':
       
$fileType 'image/gif';
       break;
   
   
     case 
'png':
       
$fileType 'image/png';
       break;

     case 
'bmp':
       
$fileType 'image/bmp';
       break;
   
     default:
      echo 
"Zly typ pliku";
   
   }

   
$f = @fopen($_FILES['avatarfile']['tmp_name'], 'r');
    if(
$f === NULL)
      echo 
"Nie mozna otworzyc obrazka";
      
   
$fsize = @filesize($_FILES['avatarfile']['tmp_name']);
    
var_dump($fsize);
    
   
$fileData addslashes(fread($f,$fsize));
   
$fileSize intval($_FILES['avatarfile']['size']);

   if(
intval($_FILES['avatarfile']['size']) > 50000)
      echo 
"Za duzy rozmiar pliku ";

 }
  else
  {
    echo 
"Problem z uploadem pliku";
  }
  
  
$conn = @new mysqli(DB_SERVER,DB_USERNAME,DB_PW,DB_DB);
    if(
mysqli_connect_errno() !== 0)
       echo 
"Nie mozna polaczyc sie z baza danych ";

   
$uname super_escape_string($uname,$conn);
   
$fname super_escape_string($fname,$conn);
   
$pw md5($pw1);
   
$email super_escape_string($email,$conn);
   
   
$query = <<<EOQUERY
INSERT INTO AvatarSample
    (user_name, full_name, password, email,
     avatar_image, file_type, file_size)
    VALUES('
$uname', '$fname', '$pw', '$email',
           '
$fileData', '$fileType', $fileSize)
EOQUERY;

   
$results = @$conn->query($query);
    if(
$results === FALSE)
     {
      
$msg $conn->error;
      
$conn->close();
      echo 
"Blad w zapytaniu";
     }

    
$userid $conn->insert_id;
    
$conn->close();
    
// zobacz uzytkownika
    
    
echo <<<EOM
<a href='view_user.php?uid=$userid'>Zobacz dane uzytkownika</a>
EOM;
?>

następnie
view_user.php[/quote] - pokazuje użytkownika
Kod PHP:
<?php
require_once('dbinfo.inc');

function 
emitUserInfo($in_dbrow)
{
  echo <<<EOINFO
<b>Nazwa uzytkownika:</b> {$in_dbrow['user_name']}<br/>
<b>Nazwisko i imie:</b> 
{$in_dbrow['full_name']}<br/>
<b>E-mail:</b> 
{$in_dbrow['email']}<br/>

<img border='0' src='get_img.php?uid=
{$in_dbrow['user_id']}'/>
<br/>
EOINFO;
}

if (!isset(
$_GET) and !isset($_GET['uid']))
  die(
'potrzebny identyfikator użytkownika');
$uid intval($_GET['uid']);

// połączenie z bazą danych.
$conn = @new mysqli(DB_SERVERDB_USERNAMEDB_PWDB_DB);
if (
mysqli_connect_errno() !== 0)
  echo 
"Blad polaczenia";

// pobranie rekordu.
$query = <<<EOQUERY
SELECT user_id, user_name, full_name, email FROM AvatarSample
  WHERE user_id = 
$uid
EOQUERY;

$results = @$conn->query($query);
if (
$results === FALSE)
{
  
$msg $conn->error;
  
$conn->close();
  echo 
"Blad z baza danych";
}

while ((
$row = @$results->fetch_assoc()) !== NULL)
{
  if (
$row['user_id'] == $uid)
  {
    
emitUserInfo($row);
    break;
  }
}

$results->close();
$conn->close();

?>

no i get_img.php - do wczytania emblematu - kodu już nie będę przytaczał


wszystko ładnie chodzi i tu pojawia się moje pytanie
bo za pomocą powyższego skryptu w pasku adresu pojawia się
Kod PHP:
http://localhost//view_user.php?uid=1 

i wyświetla się się prowizoryczny profil użytkownika a
chciałbym otrzymać coś takiego
Kod PHP:
http://localhost//profil/zoom24 

gdzie po wpisaniu czegoś takiego pojawił by się profil użytkownika zoom24


Byłbym wdzięczny za wszystkie sugestie jak to osiągnąć.
Odpowiedz
#2
Tworzysz plik .htaccess
Kod:
Options FollowSymLinks
RewriteEngine On

RewriteRule ^profil/([a-zA-z1-9]+)/$ view_user.php?uid=$1 [L]

Tyle, że w zmiennej uid będzie teraz nazwa usera, musisz po nazwie wybrać z bazy id użytkownika Smile
Odpowiedz
#3
OK Wielkie dzięki zaraz zacznę działaś Smile
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Pytanie w mysl zktórym nie moge sobie poradzić Monaco 1 2,867 14-08-2013, 19:57
Ostatni post: mateo
  Formularz kontaktowy pytanie z PHP Matissen 10 7,345 10-01-2012, 20:44
Ostatni post: Matissen
  [PHP] pytanie o include. cryptarithm 4 3,537 15-11-2011, 03:52
Ostatni post: cryptarithm
  [pytanie z Yii] jak edytować layout z poziomu kontrolera? R_Rafalsky 4 4,060 26-10-2011, 01:59
Ostatni post: R_Rafalsky
  Pytanie do webmasterów Kalek 5 3,559 17-10-2011, 23:39
Ostatni post: Pedro84

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl