Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Skrypt logowania
K4mil94
post
Post #1





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Witam.. Po przeczytaniu pewnego poradnika wziałem się za napisanie skryptu. Ma on pewien błąd otóż:
W każdej podstronie jest błąd
Kod
[b]Warning[/b]:  session_start() [[url="http://simsnews.pl/test/function.session-start"]function.session-start[/url]]: Cannot send session cookie - headers already sent by (output started at /home/ibanez/domains/simsnews.pl/public_html/test/funkcje.php:160) in [b]/home/ibanez/domains/simsnews.pl/public_html/test/omnie.php[/b] on line [b]5[/b]

[b]Warning[/b]:  session_start() [[url="http://simsnews.pl/test/function.session-start"]function.session-start[/url]]: Cannot send session cache limiter - headers already sent (output started at /home/ibanez/domains/simsnews.pl/public_html/test/funkcje.php:160) in [b]/home/ibanez/domains/simsnews.pl/public_html/test/omnie.php[/b] on line [b]5
[/b]I taki sam do plików: index.php, uzytkownicy.php, omnie.php, rejestracja.php.

A tutaj kody:

Index.php
Kod
<?php
//wczytanie pliku z funkcjami
  require_once ("funkcje.php");
  //rozpoczęcie sesji
session_start();
  //formularz logowania
  wy_form_logo();
?>

Funkcje.php
Kod
<?php

function pol_mysql()
{


//ustawiamy teraz dane naszej bazy
$db_host = 'localhost';
$db_user = 'ibanez_simsnews';
$db_pass = '********';
$db_name = 'ibanez_simsnews';

//ustawiamy polączenie z bazą danych
$lacz = mysql_pconnect($db_host, $db_user, $db_pass);
    if(!$lacz)
    {
     echo "Wystąpił błąd: Połączenie z bazą nie powiodło się.";
     exit;  }

//wybieramy bazę
if(!@mysql_select_db($db_name, $lacz)) {
echo '<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>';
exit;   }

}

function wynik_db_do_tablicy($wynik)
{
  $tablica_wyn=array();

  for($licznik=0; $rzad=@mysql_fetch_array($wynik); $licznik++)
    $tablica_wyn[$licznik]=$rzad;

  return $tablica_wyn;
}

function html_url($url, $nazwa)
{
  // wyświetlenie URL-a jako łącza
?>
  <P align="center">
  <a href="<?=$url?>"><?=$nazwa?></a>
  </P>
<?
}

//wyswietla nam pole do zalogowania się, bądź rejestracji;)
function wy_form_logo()
{
?>
  <form method=post action="uzytkownicy.php?m=log">
  <TABLE ALIGN="center">
   <tr>
   <td><b>Login:</b></td>
     <td><input type=text name="login"></td>
     <td><b>Hasło:</b></td>
     <td><INPUT type=password name="haslo"></td>
     <td align=center colspan=2>
     <INPUT TYPE="SUBMIT" VALUE="Zaloguj"></td>
     <td><a href="uzytkownicy.php?m=rejestracja">Rejestracja</a></td>
     </tr>
</table></form>

<?
}
// formularz rejestracji
function dodaj_form()
{
?>
  <form method=post action="rejestracja.php">
  <TABLE ALIGN="center">
   <tr>
     <td colspan=2><H1>Dodanie nowego użytkownika</H1><TD></TD></td>
   <tr>
     <td>Login:</td>
     <td><input type=text name=login></td></tr>
   <tr>
     <td>Numer Gadu-Gadu:</td>
     <td><input type=text name=gg></td></tr>
   <tr>
     <td>Skšd jesteœ:</td>
     <td><input type=tekst name=skad></td></tr>
   <tr>
     <td>Płeć:</td>
     <td>Mężczyzna: <input type="radio" value="m" checked name="plec"> Kobieta: <input type="radio" name="plec" value="k"></td></tr>
   <tr>
     <td>Hasło:</td>
     <td><input type=password name=haslo></td></tr>
   <tr>
     <td>Powtórz hasło:</td>
        <td><input type=password name=haslo2></td></tr>
   <tr><td colspan=2><h4>Hasło powinno składać się z  nie więcej niż 12 znaków.</H4></td></TR>
   <tr>
     <td align=center colspan=2>
     <input type=submit value="Zapisz"></td></TABLE></form>
<?
      html_url("index.php", "Logowanie");
}
//dodajemy użytkownika do bazy danych
function dodaj_usera($login, $gg, $skad, $plec, $haslo, $haslo2)
{
    if ($haslo != $haslo2)
    {
        echo "<H3 ALIGN=center>Hasła nie są takie same.</h3>";
        dodaj_form();
        exit;
    }
  $polaczenie= pol_mysql();
  // sprawdzenie, czy login nie powtarza się
  $wynik = mysql_query("select * from users where login='$login'");
  if(!$wynik)
    return "Problem: zapytanie z bazy nieudane";
  if (mysql_num_rows($wynik)>0)
    {
    echo "<H3 ALIGN=center>Użytkownik o takiej nazwie jest już zarejestrowany, spróbuj inny login</h3>";
    dodaj_form();
    }
  $czas = date("j-m-Y-G:i:s");
  // umieszczenie usera w bazie danych
  $zapytanie = "insert into users values
                 ('', '$login', '$gg', '$skad', '$plec', '$haslo', '$czas')";
  $wynik=mysql_query($zapytanie);
if($wynik)
    {
    echo "<H3 ALIGN=center>Rejestracja zakończona pomyœlnie</h3>";
    echo "<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>";
    exit;
    }
  return true;
}

function logowanie($login, $haslo)
{
  $polaczenie= pol_mysql();
  // sprawdzenie, czy login nie powtarza się
  $wynik = mysql_query("select * from users where login='$login'");
  if(!$wynik)
    return "Problem: zapytanie z bazy nieudane";
  if (mysql_num_rows($wynik)== 0)
    {
    echo "<H3 ALIGN=center>Niema takiego użytkownika w bazie danych</h3>";
    wy_form_logo();
    exit;
    }
  $tab_user = wynik_db_do_tablicy($wynik);
  if ($tab_user[0]['haslo'] != $haslo)
    {
      echo "<H3 ALIGN=center>Niepoprawne hasło</h3>";
    wy_form_logo();
    exit;
    }
   $user = $login;
   //rejestrowanie danych sesji
   session_register("user");
   echo "zalogowany jako: <b>" .$user."</b>, jesteœ z <b>".$tab_user[0]['skad']."</b>, data twojej rejestracji to: <b>".$tab_user[0]['data']."</b><br>";
   echo "<a href=omnie.php>Strona o mnie</a>";

}
?>

uzytkownicy.php
Kod
<?
//wczytanie pliku z funkcjami
  require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
//kod PHP
  if ($_GET['m'] == 'rejestracja')
  dodaj_form();
  if ($_GET['m'] == 'log')
  logowanie($login, $haslo);
  ?>

omnie.php
Kod
<?php
//wczytanie pliku z funkcjami
  require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
//kod PHP
if (session_is_registered("user"))
{
echo "Może posłużyć jako menu, czy coś innego;)";
echo "<br><A HREF=wyloguj.php>Wyloguj</a>";
}
else
{
echo "<H3 ALIGN=center>Nie masz uprawnień do korzystania z tej strony! Wróc i się zaloguj</h3>";
html_url("index.php", "Logowanie");
exit;
}
?>

PS. Jak wchodze w omnie.php to mi niszczy sesje nie wiem dlaczego ;/
Go to the top of the page
+Quote Post
byqu
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 5
Dołączył: 24.08.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. ?>

Musisz tę funkcję wykonywać tuż po "<?php", gdyż nic nie może zostać wysłane do przeglądarki, przed jej wywołaniem.


--------------------
Pozdrawiam,
Łukasz "Rutek" Rutkowski
Eazu.pl, WebDay.pl
Go to the top of the page
+Quote Post
K4mil94
post
Post #3





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Dzięki pomogło winksmiley.jpg) A to ? Jak wchodze w omnie.php to mi niszczy sesje nie wiem dlaczego ;/

EDIT: Już to zrobiłem ;P Ale jeszcze jedno.. nie bede pisał nowego tematu to pisze tu:

Szukam poradnika dzięki któremu zrobię coś takiego że każdy użytkownik ma swój profil i inni użytkownicy moga go oglądać np przez adres: www.simsnews.pl/profile/00001

Ten post edytował K4mil94 3.10.2008, 17:44:35
Go to the top of the page
+Quote Post
Lejto
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


użyj mod_rewrite


--------------------
Go to the top of the page
+Quote Post
K4mil94
post
Post #5





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Ale chodzi mi o zrobienie w ogóle czegoś takiego.. Wiem że trzeba sie bawić z mod_rewita dla adresu. Ale jak w ogóle zrobić to że mają swój profil z avarem itp. i inni widzą profil.. najlepiej żeby był jakiś poradnik

Ten post edytował K4mil94 3.10.2008, 18:04:02
Go to the top of the page
+Quote Post
Piniek
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


w bazie danych trzymasz dane do profilu, potem dynamicznie za pomocą id usera z adresu www pobierasz dane i je odpowiednio formatujesz.


--------------------
Go to the top of the page
+Quote Post
K4mil94
post
Post #7





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Z tego co rozumiem to każdy user ma mieć swoją tabele w bazie ? Ale jak zrobić zeby inni widzieli jego profil.
Go to the top of the page
+Quote Post
Piniek
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


nie kazdy osobną tabelę a osobny "rekord" w bazie danych tj unikalne dla niego id oraz inne dane ;]
Pobierasz je za pomocą protego zapytania SELECT

  1. SELECT * FROM users WHERE id = $_GET['id']
To taki przykład


--------------------
Go to the top of the page
+Quote Post
K4mil94
post
Post #9





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Byłby do tego poradnik jakiś ? bo nie zabardzo to kapuje ;p
Go to the top of the page
+Quote Post
Piniek
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


wątpię, jak chcesz to zrobić pożądanie to naucz sie PHP czytaj książki , manuala itp...


--------------------
Go to the top of the page
+Quote Post
K4mil94
post
Post #11





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Uczyłem się PHP i już coś umiem ale nie znam wszystkich jego możliwości. Większość nauczyłem się właśnie z przerabiania takich skryptów. Dlatego szukam tak owego poradnika.. Nie wiem czy dobrze myślę ale mam taki skrypt downloadu... Można by go przerobić tak aby dodawać swój profil na podstawie dodawania plików ? biggrin.gif Jeszcze interesuje mnie coś z innej paki.. Jak zrobić aby załadować do Textarea Plik php. Czyli coś jak w WebText Evolution. Potrzebuję bo chce napisać panel zarządzania stroną
Go to the top of the page
+Quote Post
Lion_87
post
Post #12





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat
Nie wiem czy dobrze myślę ale mam taki skrypt downloadu... Można by go przerobić tak aby dodawać swój profil na podstawie dodawania plików ?


A jak chcesz to zrobic?
Ne mozesz przerobic innego skryotu rejestracji?
Go to the top of the page
+Quote Post
K4mil94
post
Post #13





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Dobra. Pomyślałem nad tym i wywnioskowałem żeby do pokazania profilu użytkownika użyć $_GET. W bazie każdy ma swoje id, i teraz pytanie: Jak zrobić aby po wpisaniu www.simsnews.pl/profiles.php?id=33. To że to przez użycie get to sam wiem ale jak zdefiniować żeby po napisaniu w id= numerku dalo info o id 33 z bazy ?
Go to the top of the page
+Quote Post
Piniek
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


podałem ci zapytanie do bazy kilka postów wyżej. Pamiętaj tylko o przefiltrowaniu zmiennej GET


--------------------
Go to the top of the page
+Quote Post
K4mil94
post
Post #15





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


Właśnie napisałem sobie listę użytkowników :
Kod
<?

$polacz = mysql_connect ("localhost", "ibanez_simsnews", "******") or die (mysql_error());;
mysql_select_db ("ibanez_simsnews", $polacz) or die (mysql_error());

$pliki = mysql_query(" SELECT * FROM `users` LIMIT 0 , 100 ");

while ($dane = mysql_fetch_array($pliki))

{


$login = $dane[login];
$skad = $dane[skad];

print "Nick: $login -> Skąd: $skad <br> ";



}

?>

Ale dalej nie rozumiem jak wyświetlić sam profil o id 33 za pomocą get;(

Ten post edytował K4mil94 4.10.2008, 07:51:55
Go to the top of the page
+Quote Post
Lion_87
post
Post #16





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Ale Piniek napisal CI jak ma wygladac zapytanie ?!

Cytat
nie kazdy osobną tabelę a osobny "rekord" w bazie danych tj unikalne dla niego id oraz inne dane ;]
Pobierasz je za pomocą protego zapytania SELECT

SQL
SELECT * FROM users WHERE id = $_GET['id']
To taki przykład


Zrob tak jak CI napisal i bedziesz mial to co chcesz.
Go to the top of the page
+Quote Post
K4mil94
post
Post #17





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


A jak definiować id każdego usera ?
Go to the top of the page
+Quote Post
Lion_87
post
Post #18





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


no np przez mała zmiane w Twoim skrypcie wyzej

  1. <?
  2.  
  3. $polacz = mysql_connect ("localhost", "ibanez_simsnews", "******") or die (mysql_error());;
  4. mysql_select_db ("ibanez_simsnews", $polacz) or die (mysql_error());
  5.  
  6. $pliki = mysql_query(" SELECT * FROM `users` LIMIT 0 , 100 ");
  7.  
  8. while ($dane = mysql_fetch_array($pliki))
  9.  
  10. {
  11.  
  12. $login_id = $dane[id];
  13. $login = $dane[login];
  14. $skad = $dane[skad];
  15.  
  16. print "Nick: <a href=www.simsnews.pl/profiles.php?id=$login_id>$login</a> -> Skąd: $skad <br> ";
  17.  
  18.  
  19.  
  20. }
  21.  
  22. ?>


login -----> jako odsylacz do profilu
Go to the top of the page
+Quote Post
K4mil94
post
Post #19





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

Ostrzeżenie: (0%)
-----


A jak zrobić zeby samo czytało z bazy id i odrazu było w linku ze id 33 bo nie mam zrobionego pliku profiles
Go to the top of the page
+Quote Post
Lion_87
post
Post #20





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


O co Ci kaman bo juz nie wiem?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:23