Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System logowania w php i mysql
Forum PHP.pl > Forum > Gotowe rozwiązania
kamilk00
prosze pomocy potrzebuje systemu logowania z baza danych mysql. nie dokonca rozumiem jak to zrobic, prosze o wytlumaczeie z gory dzieki!
kicaj
czego nie rozumiesz?
do ktorego momentu?
a moze chcesz gotowca?
menic
Jak nie rozumiesz to skorzystaj z magiczne różdżki w postaci wyszukiwarki i poczaruj 8)
kamilk00
sad.gif ale smieszne
a gotowca niechce! po prostu robie to w apache nawet nie moge nic do bazy dodac sad.gif niby wszystko dobrze ale jednak. popatrzcie dodaje w ten sposob z poziomu php:
[php:1:b1993ef0a3]
<html>
<head>
<title>
System newsow na podstawie bazy danych
</title>
</head>
<body>
<?php
/*ten program wpisuje wiadomość do bazy danych*/
if(isset($submit)):
$db = mysql_connect("localhost", "root");
mysql_select_db("php", $db);
$date = date("Y-m-d");
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);
print("<h2>Dane zostały wpisane</h2>n");
print("<b>Poniżej możesz dodać inną wiadomość</b>n");
endif;
?>
<p><h3>Wpisz swoją wiadomość do bazy danych</h3>
<form action="data_in.php" method="post">
Nazwisko:<br><input type="text" name="auth"><p>
E-mail:<br> <input type="text" name="auth_email"><p>
Nagłówek:<br><input type="text" name="heading"><p>
Wiadomość:<br>
<textarea cols=40 rows=20 name="body" wrap="virtual">
</textarea><p>
<input type="submit" name="submit" value=Wyślij wiadomość!">
</form>
</body>
</html>
[/php:1:b1993ef0a3]
Tak bylo napisane w ksiazce laugh.gif patrze w bazie, jak nie bylo tak i niema sad.gif baza danych nazywa sie news tabela tez winksmiley.jpg

-----------------------
[zmoderowane]
BzikOS: używaj BBCode
menic
A ja dalej twierdze, że użycie wyszukiwarki to wspaniała rzecz. A jeszcze jak byś zastosował bbcode to wogóle tongue.gif
scanner
Cytat
[php:1:f21ab296d4]<?php
mysql_select_db("php", $db);
?>[/php:1:f21ab296d4]
Cytat
baza danych nazywa sie news tabela tez winksmiley.jpg
jak to mawia It's_me: Kłamiesz.
nameless
jesli baza nazywa sie news to dlaczego piszesz mysqsl_select_db("php");
kamilk00
wcale ze nie klamie :x
a o co ci chodzi z tym:
[php:1:029843ec12]
<?php
mysql_select_db("php", $db);
?>
[/php:1:029843ec12]
przecierz jest identycznie jak i umnie...
prosze tylko zeby mi ktos powiedzial co jest zle. korzystam z kasazki "php
to jest proste" tam jest identycznie napisane, a jednak cos jest zle [-o< pomocy jesli to zkapne to i zrozumiem jak zrobic systemik logowania a przeciez wszyscy tego chcemy biggrin.gif
scanner
Cytat
[php:1:cb49549618]<?php
mysql_select_db("php", $db);
?>[/php:1:cb49549618]
Cytat
baza danych nazywa sie news tabela tez winksmiley.jpg
No przecież widać, że pracujesz na bazie danch "php" a twierdziesz, ze na "NEWS"- to jak to w końcu jest?
kubatron
Cytat
Cytat
[php:1:aea566524c]<?php
mysql_select_db("php", $db);
?>[/php:1:aea566524c]
Cytat
baza danych nazywa sie news tabela tez winksmiley.jpg
jak to mawia It's_me: Kłamiesz.

przeczytaj sobie co napisał scanner jak wiesz podobno twoja baza nazywa sie php a ty dałes php czy takie to trudne
[php:1:aea566524c]<?php
mysql_select_db("news", $db);
?>[/php:1:aea566524c]
BzikOS
Cytat
jesli baza nazywa sie news to dlaczego piszesz mysqsl_select_db("php");


@kamilk00: czytaj co Ci ludzie podpowiadają...

Jeżeli stworzyłeś bazę danych o nazwie 'news' to łącz się z bazą 'news', a nie 'php':

[php:1:c1644ec9ec]<?php
mysql_select_db("news", $db);
?>[/php:1:c1644ec9ec]
kubatron
BzikOS byłem pierwszy biggrin.gif
kamilk00
ej sory nie zauwazylem jednej odpowiedzi jeszcze raz sorki zara przetestuje:)
kamilk00
teraz to wyglada tak:
[php:1:d4bb5d0814]
<html>
<head>
<title>
System newsow na podstawie bazy danych
</title>
</head>
<body>
<?php
/*ten program wpisuje wiadomość do bazy danych*/
if(isset($submit)):
$db = mysql_connect("localhost", "root");
mysql_select_db("news", $db);
$date = date("Y-m-d");
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);
print("<h2>Dane zostały wpisane</h2>n");
print("<b>Poniżej możesz dodać inną wiadomość</b>n");
endif;
?>
<p><h3>Wpisz swoją wiadomość do bazy danych</h3>
<form action="data_in.php" method="post">
Nazwisko:<br><input type="text" name="auth"><p>
E-mail:<br> <input type="text" name="auth_email"><p>
Nagłówek:<br><input type="text" name="heading"><p>
Wiadomość:<br>
<textarea cols=40 rows=20 name="body" wrap="virtual">
</textarea><p>
<input type="submit" name="submit" value=Wyślij wiadomość!">
</form>
</body>
</html>
[/php:1:d4bb5d0814]
i dalej nic sad.gif
ale chyba wiem czemu. jezeli w bazie danych nie jest auth i auth_email tylko author i author_email to to moze przez to ale przez to nic by sie nie dodalo?? :!: :?:
kubatron
Cytat
teraz to wyglada tak:
[php:1:8438817d25]
<html>
<head>
<title>
System newsow na podstawie bazy danych
</title>
</head>
<body>
<?php
/*ten program wpisuje wiadomość do bazy danych*/
if(isset($submit)):
$db = mysql_connect("localhost", "root");
mysql_select_db("news", $db);
$date = date("Y-m-d");
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);
print("<h2>Dane zostały wpisane</h2>n");
print("<b>Poniżej możesz dodać inną wiadomość</b>n");
endif;
?>
<p><h3>Wpisz swoją wiadomość do bazy danych</h3>
<form action="data_in.php" method="post">
Nazwisko:<br><input type="text" name="auth"><p>
E-mail:<br> <input type="text" name="auth_email"><p>
Nagłówek:<br><input type="text" name="heading"><p>
Wiadomość:<br>
<textarea cols=40 rows=20 name="body" wrap="virtual">
</textarea><p>
<input type="submit" name="submit" value=Wyślij wiadomość!">
</form>
</body>
</html>
[/php:1:8438817d25]
i dalej nic sad.gif
ale chyba wiem czemu. jezeli w bazie danych nie jest auth i auth_email tylko author i author_email to to moze przez to ale przez to nic by sie nie dodalo?? :!: :?:

jedno nierozumie w tym skrypcie czemu pierwsze masz [php:1:8438817d25]<?php
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);

?>[/php:1:8438817d25] jak nic niezostało do formularza wpisane i on praktycznie powinien dodac puste zmienne pierwsze formularz ma sie wyswietli potem wykonane zapytanie biggrin.gif
kamilk00
wiec sugerujesz ze to powinno byc tak?
[php:1:6a3a274928]
<html>
<head>
<title>
System newsow na podstawie bazy danych
</title>
</head>
<body>

<p><h3>Wpisz swoją wiadomość do bazy danych</h3>
<form action="data_in.php" method="post">
Nazwisko:<br><input type="text" name="auth"><p>
E-mail:<br> <input type="text" name="auth_email"><p>
Nagłówek:<br><input type="text" name="heading"><p>
Wiadomość:<br>
<textarea cols=40 rows=20 name="body" wrap="virtual">
</textarea><p>
<input type="submit" name="submit" value=Wyślij wiadomość!">
</form>
<?php
/*ten program wpisuje wiadomość do bazy danych*/
if(isset($submit)):
$db = mysql_connect("localhost", "root");
mysql_select_db("news", $db);
$date = date("Y-m-d");
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);
print("<h2>Dane zostały wpisane</h2>n");
print("<b>Poniżej możesz dodać inną wiadomość</b>n");
endif;
?>
</body>
</html>
[/php:1:6a3a274928]
jesli tak to jestes w bledzie
to tez nie dziala rolleyes.gif
menic
ech Kubatron...
Może sobie to wsadzić w dowolne miejsce kodu, bo i taj zawsze wywoła tylko formularz, chyba ze mu dowalicz $submit. A co do problemu to sprawdziłeś czy wogle połączył sie z bazą danych :]
kubatron
nie sugeruje zeby to było tak tylko sugeruje zrobić plik dodaj.php i tam dac zapytanie i formularz odnosic sie powinien do dodaj.php i tam jest wykonane zapytanie
kamilk00
mogli byscie to opisac dkokladniej prosil bym jak ma wygladac to wszystko...
z gory dzieki
kamilk00
za gotowca tez bym sie nie pogniewal winksmiley.jpg
kubatron
nio to niech ci bedzie strace 10 min biggrin.gif
index.php
[php:1:4aa67db0f6]<?php
<html>
<head>
<title>
System newsow na podstawie bazy danych
</title>
</head>
<body>
<?php
/*ten program wpisuje wiadomość do bazy danych*/
if(isset($submit)):
$date = date("Y-m-d");
print("<h2>Dane zostały wpisane</h2>n");
print("<b>Poniżej możesz dodać inną wiadomość</b>n");
endif;
?>
<p><h3>Wpisz swoją wiadomość do bazy danych</h3>
<form action="dodaj.php" method="post">
<input type=hidden name=dodaj>
Nazwisko:<br><input type="text" name="auth"><p>
E-mail:<br> <input type="text" name="auth_email"><p>
Nagłówek:<br><input type="text" name="heading"><p>
Wiadomość:<br>
<textarea cols=40 rows=20 name="body" wrap="virtual">
</textarea><p>
<input type="submit" name="submit" value=Wyślij wiadomość!">
</form>
</body>
</html>
?>[/php:1:4aa67db0f6]
dodaj.php
[php:1:4aa67db0f6]<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("news", $db);
if($pyt == 'dodaj') {
$sql = "INSERT INTO news
VALUES(NULL,'$heading','$body','$auth','auth_email')";
mysql_query($sql);
}
?>[/php:1:4aa67db0f6]
więc dzięki ze przypomniałeś bo pisałem na szybko biggrin.gif
menic
Napewno bedzie złe bo jak ma dodać jak sie z bazą w pliku dodaj.php nie łączy :? Przecież w pierwszym pliku potrzebny jest sam formularz i tyle. A nie wwaliłeś tam połączenie laugh.gif które powinno byc w innym pliku tongue.gif
kamilk00
mam cos zepsute dalej nie dziala sad.gif
kubatron
masz muj skrypt newsów i przetestuj i przerób
index.php
[php:1:a6090bac81]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
$pyt = ("SELECT * FROM news ORDER BY data DESC");
$result = mysql_query($pyt) or die ("Błąd zapytania: $pyt");
while($row = mysql_fetch_array($result)) {
echo "<table width="400" cellspacing="0" cellpadding="0" border="0" style="BORDER-RIGHT: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid;">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>nr." . $row[0] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $row[1] . "</div>";
echo "<a href="$row[2]" target="blank_"><img src=$row[2] width="250" height="180"></a>&nbsp;&nbsp;" . $row[3] ."";
echo "<br><div id=t1><p class=data>Data dodania:" . $row[6] ."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autor:&nbsp;&nbsp;<a href=mailto:" . $row[5] . " title="Autor newsa: $row[4]">" . $row[4] . "</a></div>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<br>";
}

?>[/php:1:a6090bac81]
dodaj.php
[php:1:a6090bac81]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z baz&plusmn;");
if($pyt == 'dodaj') {
$pyt = "INSERT INTO news (idnews, naglowek, image, tresc, user, mail, data) VALUES ('$idnews', '$naglowek', '$image', '$tresc', '$user', '$mail', now());";
$wynik = mysql_query($pyt);
} else {
echo "Zapytanie zostało wykonane poprawnie wróć do panelu administracyjnego";
}
?>[/php:1:a6090bac81]
kubatron
[sql:1:f3c1e70472]CREATE TABLE `news` (
`idnews` INT( 11 ) NOT NULL ,
`naglowek` TEXT NOT NULL ,
`image` TEXT NOT NULL ,
`tresc` TEXT NOT NULL ,
`user` TEXT NOT NULL ,
`mail` TEXT NOT NULL ,
`data` DATETIME DEFAULT 'now();' NOT NULL
);[/sql:1:f3c1e70472]
potem
[sql:1:f3c1e70472]ALTER TABLE `news` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `idnews` ) [/sql:1:f3c1e70472]
i na koniec[sql:1:f3c1e70472]ALTER TABLE `news` CHANGE `idnews` `idnews` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT [/sql:1:f3c1e70472]
kamilk00
co do tej wczesniejszej wiadomosci index.php mozesz podac formularz? nie chce mi sie pisac winksmiley.jpg
kubatron
pamietaj index.php to jest wyswietlanie newsa dodaj.php wykonanie zapytania
admin.php
[php:1:b997b590ec]<?php
mysql_connect ("localhost", "root", "krasnal") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("news") or
die ("Nie można połączyć się z bazą danych.;");
echo "<table width="600" cellspacing="0" cellpadding="0" border="1">";
echo "<tr>";
echo "<td>";
echo "<div id=t2>Dodawanie newsów:</div>";
echo "<form action="dodaj.php" enctype="multipart/form-data" method="post">";
echo "<input type="hidden" name="pyt" value="dodaj"><br>";
echo "Idnews:<font color=red>Wypis samoczynny.</font><br>";
echo "Nagłówek:<input type="text" name="naglowek"><br>";
echo "Zdjecie:<input type="text" name="image" size="40"><br>";
echo "Treść:<textarea name="tresc" cols="45" rows="15"></textarea><br>";
echo "User:<input type="text" name="user"><br>";
echo "Email:<input type="text" name="mail"><br>";
echo "Data: <font color=red>Wypis samoczynny.</font><br>";
echo "<input type="submit" value="Dodaj newsa">";
echo "<input type="reset" value="Wyczyść">";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tbody>";
?>[/php:1:b997b590ec]
wchodzisz do admin.php i wpisujesz dane on cie odsyła do dodaj.php i tam zostaje wykonane zapytanie i wchodzisz do index.php i massz newsa
kubatron
reszty ci nie dam czyli edytowania usuwania i pokazywania przed usuwaniem bo jeszcze nie jest skonczone i musze system autoryzacji zrobić :wink:
kamilk00
JESTES WIELKI, JESTES WIELKI, JESTES WIELKI, JESTES WIELKI ..........
JEST UDALO SIE smile.gif WYPASISCIE YEACH DZIEKI DZIEKI I JASZCZE RAZ DZIEKI tera przestudjuje kodzik i sie skapne w czym tkwil moj blad. odezwe sie aby inni sie tak nie meczyli winksmiley.jpg
kubatron
Cytat
JESTES WIELKI, JESTES WIELKI, JESTES WIELKI, JESTES WIELKI ..........
JEST UDALO SIE smile.gif WYPASISCIE YEACH DZIEKI DZIEKI I JASZCZE RAZ DZIEKI tera przestudjuje kodzik i sie skapne w czym tkwil moj blad. odezwe sie aby inni sie tak nie meczyli winksmiley.jpg

buhehehehehehehehehehehehehehehehehehehehe rolleyes.gif czy ja wiem - nie
kamilk00
niestety ksiazke zgubilem prosze o jeszcze jedno snitch.gif jak zrobic system logowania z haslem bez dodawania uzytkownikow tylko login i haslo po poprawnym wpisaniu hasla pokazuje sie strona ukryta a na tej stronie jest cos w stylu menu i jak sie kliknie w cos to sie jest dalej zalogowanym winksmiley.jpg wiecie o co chodzi acha i jeszcze jedno, jak sie tylko wpisze adresik ukrytej stronki ona wymaga logowania inaczej klapa smile.gif
kubatron
to się nazwywa system uwierzytelniania ja tez teraz nad tym pracuje zeby dopiero po zalogowaniu można było zajrzec do dodaj.php itp.itd.
kubatron
a po drugie co to za system newsów bez edycji newsa- usuwania- i przedewszystkim w panelu admina przed usunięciem pokazanie newsa biggrin.gif
Ive
żeby zrobić taki system uwierzytelniania na jedno hasło i jeden logi to:
1. stwórz plik index.php i zrób w nim funkcję if() (jeśli $x jest puste wyświetlaj formularz z parametrem action=?x=confirm i polami o nazwach login i hasło )
2. wklej pod forma taki kodzik:
[php:1:54d8257443]<?php
if(isset($x) && $x=="confirm") {
if($login=="twoj_login" && $haslo=="twoje_haslo") {
$xhaslo = md5($haslo);
setcookie("login", $login, time()+3600);
setcookie("xhaslo", $xhaslo, time()+3600);
header("Location: admin.php");
} else {
echo"błędne hasło/login";
}
}

?>[/php:1:54d8257443]
3. w pliku admin.php dopisz na początku:
[php:1:54d8257443]<?php

$haslo_con = "twoje_haslo";
$login_con = "twoj_login";
$xhaslo_con = md5($haslo_con);
if(!($login!=$login_con || $xhaslo!=$xhaslo_con)) {
header("Location: index.php");
}

//dalsza część strony (menu, funkcje, swich itp.)

?>[/php:1:54d8257443]
pod tym kodem wstaw se menu i w swichu zmieniaj strony ;]

to samo dodaj w pliku dodaj.php

to powinno być to o co ci chodzi ;]

PS mam nadzieję że pomogłem ;]

[EDIT]
były drobne pomyłki w kodzie ale poprawilem ;]
[/EDIT]
kamilk00
nie do konca mi o to chodzilo.... chodzi o systemik logowania za pomoca mysql i to niema byc jedno chaslo ale system bez dodawania userow
Ive
no to zrób nową tabele w phpmyadmin (lub zrób skrypt tworzący tą tabele) wstaw tam loginy i hasła i wczytuj while'm, przedtem walnij
[sql:1:0088786560]
SELECT * FROM 'twoja_tabela_userow' WHERE login='$login'
[/sql:1:0088786560]
i masz z głowy ;]

[EDIT]
aha dostaw funkcję żeby jeśli odnajdzie jush taki login to niech sprawdzi czy hasło poprawne i jeśli tak to niech wyśle cookie/sesje
[/EDIT]
kamilk00
nie kapuje do konca jak to ma w koncu wygladac?
kamilk00
nie kapuje do konca jak to ma w koncu wygladac?
kubatron
Cytat
nie kapuje do konca jak to ma w koncu wygladac?

bez obrazy ale ze mną tez tak było p[oczytaj troche o mysql i o zapytaniach to lepiej bedzie ci to przysfajać :wink:
kamilk00
nie kamuje tylko w jakim miejscu umiescic kod sql
pomocy
Ive
musisz zrobić zapytanie:
[php:1:f0ebcd98df]<?php
$sql = "SELECT * FROM 'twoja_tabela_userow' WHERE login='$login'";
$query = mysql_query($sql);
// i dalsze wypisywanie dantych czy tam sprawdzanie czy login jush jest (zastosuj mysql_num_rows )
?>[/php:1:f0ebcd98df]
hm
naprawde nie wiem jak to prościej napisać...

PS Poczytaj manuala/kursy to od razu zaczniesz wszystko z mysql'a czaić. polecam także książki - w szczególności "PHP4 od podstaw" (nie jestem pewien czy reklama jest dozwolona na forum więc jakby co to na PW prosze o wiadomość i zaraz zmienię ). Ja w 2 dni po przeczytaniu materialu zawartego w książce na temat MySQL znałem całe podstawy i od razu napisałem swój panel admina oparty na tej bazie ;]
kamilk00
ZABIJE SIE do jakiego pliku to wsadzic... a nie co to jest!!!!!
kubatron
wchodzisz do phpmyadmin-> potem wybierasz baze w moim przypadku to news i tabele w moim przypadku to też news i masz zakładke na górze SQL i wciskasz i tam dajesz kod sql te co ci podałem boże innaczej nieumie wytłumaczyć sad.gif sad.gif sad.gif
kamilk00
udalo sie moj kod wyglada tak:
[php:1:e2799c8602]<html>
<head>
</head>
<body>
<?php
mysql_connect ("localhost", "root", "") or
die ("Niema połączenia z mysql'em");
mysql_select_db ("log") or
die ("Niemożna połączyć z bazą danych");
$wynik = mysql_query ("SELECT * FROM lih;") or
die ("Błąd w pytaniu");
while ($rekord = mysql_fetch_array ($wynik)) {
$haslo = $rekord[0];
$log = $rekord[1];
if ("$login" == "$log") {
if ("$pass" == "$haslo") {
} else {
print("BŁĄD");
}
} else {
print("blad");
}
}
?>
<form action="logowanie.php" method="post">
<input type="text" name="login">
<input type="password" name="pass">
<input type="submit" value="slij">
</body>
[/php:1:e2799c8602]
sam napisalem i dziala winksmiley.jpg
scanner
Cytat
udalo sie moj kod wyglada tak:
Brawo.
[sql:1:05dd8a9e3d]SELECT COUNT(*) FROM lih WHERE login=$login AND password=$password[/sql:1:05dd8a9e3d] Przerzuć na engine bazy sprawdzenie czy user istnieje i czy hasło się zgadza. Baza to zrobi szybciej niż kod php - bardzo nieefektywny w tym przypadku.
kubatron
Widzisz wystarczy się troche wysylić i pomyśleć, i wszystko wychodzi.
:wink:
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.