-
Postów
133 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Pliki
Galeria
Blogi
Sklep
Wydarzenia
Treść opublikowana przez Bellum
-
Mało tego wchodze do PA i czytam.... Klucz był wprowadzony, czemu go nie ma? Za moment mnie szlag jasny trafi. Napisałem do supportu.
-
Cześć, wchodzę dziś do swojego client area na ipb, dostaje Wiadomość o resecie haseł, ok, zrobione. Przeglądam sobie konto, dziwne brak, historii zakupu czegokolwiek, jak gdybym nie miał zakupionego IPB, kupowałem go ponad 5 lat temu. Mam klucz, mam konto z którego dokonano zakupu i co? wychodzi na to że nic nie mam.......?
-
ROZWIĄZANY: [PHP]Logowanie wielopoziomowe
Bellum odpowiedział(a) na Bellum temat w Web & Hosting & Grafika
Już sobie poradziłem i działa tak jak sobie tego życzyłem Tak wiem o eregi . Temat można zamknąć. -
ROZWIĄZANY: [PHP]Logowanie wielopoziomowe
Bellum odpowiedział(a) na Bellum temat w Web & Hosting & Grafika
Poprawiłem wszystkie błędy logiczne ale i tak nie działa: <?php if(isset($_SESSION['user'])) { header('location: index.php'); } else { echo "<div class='h3'><h3>Logowanie</h3></div><div class='text'> <form action='' method='POST'> <table> <tr> <td>Nazwa użytkownika:</td><td><input type='text' name='user' class='input' /></td> </tr> <tr> <td>Hasło:</td><td><input type='password' name='password' class='input' /></td> </tr> <tr> <td colspan=2><input type='submit' name='zaloguj' value='Zaloguj' /></td> </tr> </table> </form> </div><div class='foot'></div>"; require_once'config_db.php'; if(isset($_POST['zaloguj'])) { $user = $_POST['user']; $password = $_POST['password']; #Sprawdzanie pól formularza if(!$_POST['user'] || !$_POST['password']) { echo "Jedno bądź więcej pól w formularzu jest puste..."; exit; } #Sprawdzanie wprowadzonych danych do usunięcia <----- if(!eregi('^[a-zA-z]+', $user)) { echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery..."; exit; } elseif(!eregi('^[a-zA-z0-9]+', $password)) { echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; exit; } #to jest niepotrzebne <--- bo i tak haslo jest md5 ############### ## LOGOWANIE ## ############### $mysqlia = "SELECT * FROM user WHERE user='".$user."'"; $mysqlib = $db->query($mysqlia); $echo = $mysqlib->fetch_object(); $wartosc = "SELECT uprawnienia FROM user WHERE=user='".$user."'"; #<---- Nie wiem jak wartosc wyciagnac if(isset($_POST['user']) && isset($_POST['password'])) { if($user == $echo->user && $password == $echo->password) { if($wartosc == 1) { $_SESSION['prawa']=1; $_SESSION['user']=$echo->user; header("Location: index.php"); } if($wartosc == 2) { $_SESSION['prawa']=2; $_SESSION['user']=$echo->user; header("Location: index.php"); } if($wartosc == 3) { $_SESSION['prawa']=3; $_SESSION['user']=$echo->user; header("Location: index.php"); } } } else { echo "user lub hasło, jest niepoprawne..."; exit; } $db->close(); } } ?> -
ROZWIĄZANY: [PHP]Logowanie wielopoziomowe
Bellum odpowiedział(a) na Bellum temat w Web & Hosting & Grafika
Coś nie bardzo chce mi działać ja mam innego rodzaju zapytania niż autor kodu w zamieszczonym linku: u mnie wygląda to tak: <?php if(isset($_SESSION['session_user'])) { header('location: index.php'); } else { echo "<div class='h3'><h3>Logowanie</h3></div><div class='text'> <form action='' method='POST'> <table> <tr> <td>Nazwa użytkownika:</td><td><input type='text' name='user' class='input' /></td> </tr> <tr> <td>Hasło:</td><td><input type='passwordwordword' name='passwordwordword' class='input' /></td> </tr> <tr> <td colspan=2><input type='submit' name='zaloguj' value='Zaloguj' /></td> </tr> </table> </form> </div><div class='foot'></div>"; require_once'config_db.php'; if(isset($_POST['zaloguj'])) { $user = $_POST['user']; $passwordwordword = $_POST['passwordwordword']; #Sprawdzanie pól formularza if(!$_POST['user'] || !$_POST['passwordwordword']) { echo "Jedno bądź więcej pól w formularzu jest puste..."; exit; } #Sprawdzanie wprowadzonych danych do usunięcia <----- if(!eregi('^[a-zA-z]+', $user)) { echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery..."; exit; } elseif(!eregi('^[a-zA-z0-9]+', $passwordwordword)) { echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; exit; } #to jest niepotrzebne <--- bo i tak haslo jest md5 ############### ## LOGOWANIE ## ############### $mysqlia = "SELECT * FROM user WHERE user='".$user."'"; $mysqlib = $db->query($mysqlia); $echo = $mysqlib->fetch_object(); $wartosc = $echo->uprawnienia; if(isset($_POST['user']) && isset($_POST['passwordwordword'])) { if($user == $echo->user && $passwordword == $echo->password ) { if($wartosc == 1) { $_SESSION['prawa']='1'; $_SESSION['user']=''.$echo->user.''; header("Location: index.php"); } if($wartosc == 2) { $_SESSION['prawa']='2'; $_SESSION['user']=''.$echo->user.''; header("Location: index.php"); } if($wartosc == 3) { $_SESSION['prawa']='3'; $_SESSION['user']=''.$echo->user.''; header("Location: index.php"); } } } else { echo "user lub hasło, jest niepoprawne..."; exit; } $db->close(); } } ?> -
ROZWIĄZANY: [PHP]Logowanie wielopoziomowe
Bellum odpowiedział(a) na Bellum temat w Web & Hosting & Grafika
Wiem o co chodzi mniej więcej a że nigdy nie bawiłem się w tak rozbudowany system logowania a jest mi niezbędny, to łażę i szukam. Natrafiłem na coś takiego nie wiem czy jest to poprawne: Logowanie wielopoziomowe, tyle o ile nie mam problemu z wkomponowaniem tego kodu do swojego skryptu, to mam problem ze zmienną $wartosc, która musi pobierać z bazy danych z rekordu uprawnienia czy jest 1, 2 lub 3. W którym miejscu mam odpytywać o to bazę? -
Pytanie dotyczy tylko sposobu rozróżniania przy logowaniu użytkownika, administratora, moderatora. Teraz skrypt pozwala logować się jedynie użytkownikom posiadającym uprawnienia 1 czyli załóżmy, że jest to Admin. Użytkownicy posiadają uprawnienia NULL zalogować się nie mogą. Proszę o porady Obecnie plik zaloguj.php wygląda tak: <?php if(isset($_SESSION['session_user'])) { header('location: index.php'); } else { echo "<div class='h3'><h3>Logowanie</h3></div><div class='text'> <form action='' method='POST'> <table> <tr> <td>Nazwa użytkownika:</td><td><input type='text' name='user' class='input' /></td> </tr> <tr> <td>Hasło:</td><td><input type='password' name='password' class='input' /></td> </tr> <tr> <td colspan=2><input type='submit' name='zaloguj' value='Zaloguj' /></td> </tr> </table> </form> </div><div class='foot'></div>"; require_once'config_db.php'; if(isset($_POST['zaloguj'])) { $user = $_POST['user']; $password = $_POST['password']; #Sprawdzanie pól formularza if(!$_POST['user'] || !$_POST['password']) { echo "Jedno bądź więcej pól w formularzu jest puste..."; exit; } #Sprawdzanie wprowadzonych danych do usunięcia <----- if(!eregi('^[a-zA-z]+', $user)) { echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery..."; exit; } elseif(!eregi('^[a-zA-z0-9]+', $password)) { echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; exit; } #to jest niepotrzebne <--- bo i tak haslo jest md5 ############### ## LOGOWANIE ## ############### if(isset($_POST['user']) && isset($_POST['password'])) { $mysqlia = "SELECT * FROM user WHERE user='".$user."' AND password='".md5($password)."' AND uprawnienia=1"; $mysqlib = $db->query($mysqlia); if($echo = $mysqlib->fetch_object()) { $id = $echo->id; $_SESSION['session_id'] = $id; $_SESSION['session_user'] = $user; header('location: index.php'); } else { echo "Login lub hasło, jest niepoprawne..."; exit; } $db->close(); } } } ?>
-
Hehe bo zmieniłem je na if, wszystkie if(is_numeric( $zmienna )) mają teraz if zamiast elseif, gdyż z elseif nie działa.
-
Uuu... jak wkleję, to nie będzie chciało się wam tego analizować..., przykro mi za spóźnioną odpowiedź ale nie siedzę i się nie modlę o pomoc a sam biorę się za robotę. Ale proszę <?php if(isset($_SESSION['session_user'])) { $userid = intval( $_GET['userid'] ); $artid = intval( $_GET['artid'] ); $editartid = intval( $_GET['editartid'] ); $edituserid = intval( $_GET['edituserid'] ); if($userid < 1 && $artid < 1 && $editartid < 1 && $edituserid < 1) { echo "<div class='h3'><h3>Lista userów</a></h3></div>"; echo "<form action='' method='POST'>"; echo "<table class='text' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td>Użytkownik</td><td>e-mail</td><td>Data rejestracji</td><td>Usuń</td><td>Edycja</td></tr>"; $mysqlia = "SELECT id, user, email, date FROM user ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&userid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a></td>"; echo "<td>".$echo->email."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='delete[]' value='".$echo->id."' /></td> <td><a href='index.php?sid=ustawienia&edituserid=".$echo->id."' title='".$echo->user."'>Edytuj</a></td></tr>"; } echo "<tr><td colspan='5'><input type='submit' value='Usuń' /></td></tr>"; echo "</table>"; echo "</div><div class='foot'></div>"; ######ART echo "<form action='' method='POST'>"; echo "<div class='h3'><h3>Lista artykułów</a></h3></div>"; echo "<div class='text'><form action='' method='POST'>"; echo "<table width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td>Autor</td><td>Tytuł</td><td>Data dodania</td><td>Usuń</td><td>Edycja</td></tr>"; $mysqlia = "SELECT id, title, autor, date FROM code ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&artid=".$echo->id."' title='".$echo->title."'>".$echo->autor."</a></td>"; echo "<td>".$echo->title."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteart[]' value='".$echo->id."' /></td> <td><a href='index.php?sid=ustawienia&editartid=".$echo->id."' title='".$echo->title."'>Edytuj</a></td></tr></tr>"; } echo "<tr><td colspan='5'><input type='submit' value='Usuń' /></td></tr>"; echo "</table></div><div class='foot'></div>"; # USOWANIE ART $delete_art=$_POST['deleteart']; $ilosc=count($delete_art); for($i=0; $i<$ilosc; $i++) { $question = "DELETE FROM code WHERE id='".$delete_art[$i]."'"; $anserwer = $db->query($question); } if($anserwer) { header('location: index.php?sid=ustawienia'); } # USOWANIE USER $delete_id=$_POST['delete']; $ilosc=count($delete_id); for($i=0; $i<$ilosc; $i++) { $question = "DELETE FROM user WHERE id='".$delete_id[$i]."'"; $anserwer = $db->query($question); } if($anserwer) { header('location: index.php?sid=ustawienia'); } } if(is_numeric( $userid )) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['userid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<div class='h3'><h3>".$echo->user."</a></h3></div>"; echo "<div class='text'>Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."</div>"; echo "</div><div class='foot'></div>"; } } if( is_numeric( $artid )) { $mysqlia = "SELECT id, autor, title, text, date FROM code WHERE id=(".intval($_GET['artid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<div class='h3'><h3>".$echo->title."</h3></div>"."<div class='date'>Autor: ".$echo->autor.", data publikacji: ".$human_date = date("Y-m-d H:i:s", $echo->date)."</div><div class='text'>".nl2br($echo->text)."</div><div class='foot'></div>"; } } ### EDYCJA TEMATU if( is_numeric( $editartid )) { $mysqlia = "SELECT id, title, text FROM code WHERE id=(".intval($_GET['editartid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<div class='h3'><h3>Edycja artykułu</h3></div><div class='text'>"; echo "<form action='user/post_update.php' method='POST'> <table> <tr> <td width='11%'>Tytuł artykułu:</td><td><input type='text' name='title' class='input' value='".$echo->title."'></input></td> </tr> <tr> <td colspan='2'><textarea name='text' class='textarea'>".$echo->text."</textarea></td> </tr> <tr> <input type='hidden' value='".$echo->id."' name='id'/> <td colspan=2><input type='submit' name='aktualizuj' value='Aktualizuj' /></td> </tr> </table> </form>"; echo "</table></div><div class='foot'></div>"; } } ### EDYCJA USERA if( is_numeric( $edituserid )) { $mysqlia = "SELECT id, user, email, uprawnienia FROM user WHERE id=(".intval($_GET['edituserid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<div class='h3'><h3>Edycja użytkownika</h3></div><div class='text'>"; echo "<form action='user/user_update.php' method='POST'> <table> <tr> <td>Pseudonim: </td><td><input type='text' name='user' class='input' value='".$echo->user."'></input></td> </tr> <tr> <td>Stare hasło:</td><td><input type='oldpassword' name='oldpassword' class='input' /></td> </tr> <tr> <td>Nowe hasło:</td><td><input type='password' name='password' class='input' /></td> </tr> <tr> <td>Adres email: </td><td><input type='text' name='email' class='input' value='".$echo->email."' /></td> </tr> <tr> <td>Uprawnienia: </td><td><input type='text' name='uprawnienia' class='input' value='".$echo->uprawnienia."' /></td> </tr> <tr> <input type='hidden' value='".$echo->id."' name='id'/> <td colspan=2><input type='submit' name='aktualizuj' value='Aktualizuj' /></td> </tr> </table> </form>"; echo "</table></div><div class='foot'></div>"; } } } #SESSION else { header('location: index.php'); } ?>
-
[PHP]Przekazywanie zmiennej id między stronami
Bellum odpowiedział(a) na Bellum temat w Web & Hosting & Grafika
Oczywiście formularz metoda POST. -
[PHP]Przekazywanie zmiennej id między stronami
Bellum opublikował(a) temat w Web & Hosting & Grafika
Kolejne z pytań niekończącej się opowieści PHP. Jak przekazać zmienną id z pliku default.php do pliku post_update.php wykonującego np zapytanie - aktualizującego rekord. $mysqlia = "SELECT id, autor, title, text, date FROM code WHERE id=(".intval($_GET['editartid']).")"; $mysqlib = $db->query($mysqlia); Czyli jak w powyższym przykładzie interesuje mnie id z SELECT by plik post_update.php wiedział jaki rekord ma zaktualizować :| @EDIT: Jedna opcja to przekazywanie zmiennej id w polu hiden działa ślicznie czy są jakieś jeszcze inne możliwości? -
U mnie niestety nie, drugi elseif jakby nie istniał a kod sprawdzałem ze 100x, gdy zastosuję 3x if, to działa perfekcyjnie.
-
Jak to jest z kolejnością warunków? Mam dwie zmienne w if, jeżeli są puste czyli false, to wyświetla zawartość if, jeżeli któraś jest, czyli true, to powinien się wykonywać odpowiedni warunek dla odpowiedniej zmiennej a tak nie jest ... pierwszy elseif wykonuje się prawidłowo, drugi zaś jakby nie istniał i nie spełnia swojej roli gdy zmienna $2 jest true, zamiast tego warunek elseif dla zmiennej $1 próbuje wykonać to zapytanie za elseif $2 ... if($1 && $2) {} elseif($1) {} elseif($2) {} @ok chyba poradziłem sobie, zrobiłem 3 ify i działa wyśmienicie ale czy poprawne to jest?
-
$fid = intval( $_GET['fid'] ); $uid = intval( $_GET['uid'] ); if( ! isset( $fid ) && isset( $uid ) || $fid < 1 && $uid < 1) text <-----TESXT { } elseif( is_numeric( $fid ) ) { text2 } } elseif( is_numeric( $uid ) ) { text3 } } Coś na tym przykładzie :|, jeżeli istnieje zmienna $fid i $uid lub są one mniejsze bądź równe 1, wyświetla klamrach text. Jeżeli którakolwiek ze zmiennych wynosi true, to kieruje zapytanie do odpowiedniego elseif $fid lub $uid i wyświetla albo text2 albo text3 i wyświetla zawartość, to co skleciłem nie działa @EDIT: Działa ale nie reaguje na zmienną $uid nie wczytuje a widzę, że id zostało przekazane do paska adresu i zmiennej $uid
-
if( ! isset( $fid ) || $fid < 1) { } No jak dodać do tego zapytania $uid jeszcze, by wyświetlał zarówno $fid jak i $uid w jednym ifie...
-
Dobrze kombinujesz ale chodzi o to by między kropkami były dwie zmienne, wyświetlam tam zarówno zapytanie z bazy dot: listy userów, jak tematów. Tytuł usera jest linkiem i tytuł tematu jest linkiem przy czym pierwszy posiada zmienną $fid a drugi $uid dlatego ten parametr poniżej musi wykonywać akcje dla jednego i drugiego a nie tylko dla $fid ponieważ oba znajdują się w zapytaniu if ale tylko dla jednej zmiennej <?php if(isset($_SESSION['session_user'])) { require_once('config_db.php'); $fid = {int) $_GET['fid']; $uid = {int) $_GET['uid']; if( isset($fid) && !empty($fid) && $fid > 1) {<...........................> } Komentarze w kodzie: if(isset($_SESSION['session_user'])) { require_once('config_db.php'); $fid = {int) $_GET['fid']; $uid = {int) $_GET['uid']; ######################################################################### TEN IF MUSI UWZGLĘDNIAĆ OBIE ZMIENNE ZARÓWNO GDY AKCJA NIE JEST WYKONYWANA DLA $fid i dla $uid jak widać uwzględnia tylko $fid ######################################################################### if( isset($fid) && !empty($fid) && $fid > 1) { ######################################################################### WCZYTUJE NEWS.php ######################################################################### switch ($_GET['said']) { case "news": include'news.php'; break; } ######################################################################### WYŚWIETLA LISTE USERÓW w linku jest zmienna $fuid ######################################################################### echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Autor</td><td class='tdborderc'>Tytuł</td><td class='tdborderr'>Data dodania</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, title, autor, date FROM code ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&uid=".$echo->uid."' title='".$echo->title."'>".$echo->autor."</a></td>"; echo "<td>".$echo->title."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } echo "<tr><td colspan='4'><input type='submit' value='Usuń' /></td></tr>"; echo "</table><br />"; ######################################################################### WYŚWIETLA LISTE USERÓW w linku jest zmienna $fid ######################################################################### echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Użytkownik</td><td class='tdborderc'>e-mail</td><td class='tdborderr'>Data rejestracji</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, user, email, date FROM user ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a></td>"; echo "<td>".$echo->email."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } echo "<tr><td colspan='4'><input type='submit' value='Usuń' /></td></tr>"; echo "</table>"; $delete_id=$_POST['deleteus']; $ilosc=count($delete_id); for($i=0; $i<$ilosc; $i++) { $question = "DELETE FROM user WHERE id='".$delete_id[$i]."'"; $anserwer = $db->query($question); } if($anserwer) { header('location: index.php?sid=ustawienia'); } ######################################################################### ######################################################################### } ######################################################################### TERAZ TEN PARAMETR WYKONUJE ZAPYTANIE WYŁĄCZNIE DLA $fid ######################################################################### elseif( is_numeric( $fid ) ) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['fid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."<br /><hr></hr><a href='javascript:history.back();'><< Wstecz</a>"; } } i Chyba wiem jak wytłumaczyć już jak krowie na granicy: Jestem programem : Wyświetlam oba zapytania do bazy danych: Wyświetlam listę userów, Wyświetlam liste tematów: W obu przypadkach zmienna $fid i $uid jest false. Następuje akcja (identyfikacja zmiennej czy został parametr przekazany $fid czy $uid) wykonywanie zapytania do bazy danych dla &fid lub $uid: Wyświetlam odpowiednie dane.
-
Dla jednego odnośnika zrób zmienną fid (co już masz), a dla drugiego, no nie wiem, uid? A teraz wkomponuj mi to w kod, wczoraj próbowałem robić tak jak potrafię i danych mi nie wczytywało po kliknięciu: $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1) { Dodawanie każdego takiego parametru mija się z celem poniżej kod: $fid = intval( $_GET['fid'] ); $uid = intval( $_GET['uid'] ); I wkomponowywanie kolejnych kodów, najlepiej jakby robił to jeden parametr ale rozróżniał czy fid czy uid. Pisałem newsa na www trochę zajęło
-
A jakiś przykład? bo tak trudno jest się mi za to zabrać, dlatego pytam na forum.
-
Wrrr... $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1 ) { switch ($_GET['said']) { case "news": include'news.php'; break; } echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Użytkownik</td><td class='tdborderc'>e-mail</td><td class='tdborderr'>Data rejestracji</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, user, email, date FROM user ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a></td>"; echo "<td>".$echo->email."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } elseif( is_numeric( $fid ) ) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['fid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."<br /><hr></hr><a href='javascript:history.back();'><< Wstecz</a>"; } } Czy muszę tłumaczyć co tu się dzieje? wyświetlam listę użytkowników, każdy nick użytkownika jest odnośnikiem klikam w niego i zostaje wykonana akcja bo parametr fid jest większy bądź równy 1 i wyświetla mi dane użytkownika Czy to jest zrozumiałe? A teraz dodałem sobie SWITCH ale to pikuś mało istotny wczytuję on news.php do pliku ustawienia.php ok cacy mało istotne, ważne jest to że news odpowiada za wyświetlanie tematów a nie userów. <?php echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Autor</td><td class='tdborderc'>Tytuł</td><td class='tdborderr'>Data dodania</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, title, autor, date FROM code ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&said=news&faid=".$echo->id."' title='".$echo->title."'>".$echo->autor."</a></td>"; echo "<td>".$echo->title."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } echo "<tr><td colspan='4'><input type='submit' value='Usuń' /></td></tr>"; echo "</table><br />"; ?> Powyższy kod: Wyświetla listę tematów super! ale co jeżeli chcę przeglądać dany temat i tak samo jak w przypadku userów do tytułu przypiszę odnośnik? elseif( is_numeric( $fid ) ) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['fid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."<br /><hr></hr><a href='javascript:history.back();'><< Wstecz</a>"; } Powyższy kod: << To zapytanie wykona akcje dla tej aukcji >> czyli userów >> poniższy kod: <a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a> Ale nie może wykonać akcji dla >> poniżej <a href='index.php?sid=ustawienia&said=news&faid=".$echo->id."' title='".$echo->title."'>".$echo->autor."</a> Bo niby jak skoro >> poniżej elseif( is_numeric( $fid ) ) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['fid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."<br /><hr></hr><a href='javascript:history.back();'><< Wstecz</a>"; } WYKONUJE TYLKO ZAPYTANIE DLA USERÓW A NIE DLA TEMATÓW. Nie dodam tam drugiego zapytania dla tematów bo jak by to miało rozróżniać czy id tyczy się tego czy tego skoro zmienna fid jest dla obydwu odnośników.
-
Tu jest pies pogrzebany, jak to wytłumaczyć by mnie zrozumiano. ustawienia.php $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1 ) { <a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a> } elseif( is_numeric( $fid ) ) { A tu zaptanie do sql dla powyższego linka } Wiadomo o co biega i jak działa. Dobrze teraz załóżmy dodaj SWITCH $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1 ) { switch ($_GET['said']) { case "news": include'news.php'; break; } <a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a> } elseif( is_numeric( $fid ) ) { A tu zaptanie do sql dla powyższego linka } SWITCH wczytuje: news.php <?php <a href='index.php?sid=ustawienia&said=news&faid=".$echo->id."' title='".$echo->title."'>".$echo->autor."</a> ?> Dla przykładu oczywiście, no i w nim również znajduję się link zapisujący id np, tematu do zmiennej. Ale jak widać w ustawienia.php, to elseif( is_numeric( $fid ) ) może wykonać zapytanie tylko dla jednego odnośnika. Przecież jeden ma wyświetlić dokładniejsze dane o userach a drugi o tematach. Nie mogę mieć dwóch odnośników do jednej tabeli bo poco mam wyświetlać dane usera dla danych tematu , ma być oddzielne zapytanie dla userów a oddzielne dla tematów problem w tym jak ma fid to rozróżniać?
-
Witam :)komentarze w kodzie. $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1 ) { DODATKOWO +SWITCH, WCZYTANA DODATKOWA ZAWARTOŚĆ BEZ PRZEŁADOWANIA STRONY JEDNAK JEŻELI DODATKOWO MA BYĆ WYKONANA AKCJA NP EDYTOWANIA NEWSÓW, TO NIE MOGĘ UŻYĆ PONIŻSZEGO KODU, GDYŻ ON WYKONUJE POLECENIE NP DLA UŻYTKOWNIKÓW A NIE DLA NEWSÓW <a href='index.php?sid=ustawienia&said=news&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a> switch ($_GET['said']) { case "news": include'news.php'; break; } TU TEKST JEŻELI FID NIE JEST WYKONYWANY <a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a> PO KLIKNIĘCIU WYKONUJE AKCJE PONIŻEJ } elseif( is_numeric( $fid ) ) { A TU IST WYKONYWANA INSTRUKCJA, JEŻELI FID JEST! } Co zrobić by elseif( is_numeric( $fid rozróżniał dwa typy odnośników i wykonał prawidłowe zapytanie dla jednego polecenia a drugie dla drugiego po kliknięciu. A tak wygląda cały kod: <?php if(isset($_SESSION['session_user'])) { require_once'config_db.php'; $fid = intval( $_GET['fid'] ); if( ! isset( $fid ) || $fid < 1 ) { switch ($_GET['said']) { case "news": include'news.php'; break; } echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Użytkownik</td><td class='tdborderc'>e-mail</td><td class='tdborderr'>Data rejestracji</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, user, email, date FROM user ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&fid=".$echo->id."' title='".$echo->user."'>".$echo->user."</a></td>"; echo "<td>".$echo->email."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } echo "<tr><td colspan='4'><input type='submit' value='Usuń' /></td></tr>"; echo "</table>"; $delete_id=$_POST['deleteus']; $ilosc=count($delete_id); for($i=0; $i<$ilosc; $i++) { $question = "DELETE FROM user WHERE id='".$delete_id[$i]."'"; $anserwer = $db->query($question); } if($anserwer) { header('location: index.php?sid=ustawienia'); } } elseif( is_numeric( $fid ) ) { $mysqlia = "SELECT id, user, date, email FROM user WHERE id=(".intval($_GET['fid']).")"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "Użytkownik: ".$echo->user."<br />mail: ".$echo->email."<br />".$human_date = date("Y-m-d H:i:s", $echo->date)."<br /><hr></hr><a href='javascript:history.back();'><< Wstecz</a>"; } } else{echo "BŁĄD";} } else { header('location: index.php'); } ?> @EDIT: A to plik news.php <?php echo "<form action='' method='POST'>"; echo "<table class='list' width='100%' cellpadding='10' cellspacing='0'>"; echo "<tr><td class='tdborderl'>Autor</td><td class='tdborderc'>Tytuł</td><td class='tdborderr'>Data dodania</td><td class='tdborderr'>Usuń</td></tr>"; $mysqlia = "SELECT id, title, autor, date FROM code ORDER BY ID DESC"; $mysqlib = $db->query($mysqlia); while($echo = $mysqlib->fetch_object()) { echo "<tr><td><a href='index.php?sid=ustawienia&said=news&fid=".$echo->id."' title='".$echo->title."'>".$echo->autor."</a></td>"; echo "<td>".$echo->title."</td>"; echo "<td>".$human_date = date("Y-m-d H:i:s", $echo->date)."</td>"; echo "<td><input type='checkbox' name='deleteus[]' value='".$echo->id."' /></td></tr>"; } echo "<tr><td colspan='4'><input type='submit' value='Usuń' /></td></tr>"; echo "</table><br />"; ?> Jak widać również zawiera polecenie przekazania parametru, by fid go wykonał, jednak fid wykonuje to tylko dla userów a nie dla newsów. Co zrobić jak poniżej: Chciałbym, już najprościej mówiąc aby z fid korzystało nawet kilkanaście akcji i aby odróżniał je od siebie i przekazywał do odpowiedniego elseif z wykonaniem zapytania.
-
Szczerze mówiąc, to wcale mi to nie pomogło, ale dzięki, poza tym udało się rozwiązać ten problem: $human_date = date("Y-m-d H:i:s", $zmienna_daty bądź na sztywno kod Unix); Mam jeszcze jedno pytanie i temat będzie można zamknąć, w jakiej konkretnie tabeli przechowywany jest Regulamin forum? Pozdrawiam
-
Czytałem o nich, kolejna dżungla po pewnym czasie rozwiążę ten problem, a teraz pytanie z innej bajki w bazie danych w tabeli posts jest post_date, przez jaką funkcję trzeba przepuścić ten wynik, gdyż wyświetla się w sposób taki: 1252258942 raczej mało kto załapie, że to data.
-
Sprawdzę, to dokładnie jak postawię forum na serwerze, na localhost mam problemy z funkcją $this, Public itp. Kod w którym jest IPB nie jest w wersji jakiej ja używam na stronie. Pozmieniałem trochę w poprzednim parse bbcode <?php //bbcode parse function parsebbcode($text) { $array=array( //Standardowe tagi '[b]' => '<b>', '[/b]' => '</b>', '[i]' => '<i>', '[/i]' => '</i>', '[u]' => '<u>', '[/u]' => '</u>', ' [center]' => '<center>', '[/center] ' => '</center>', '[big]' => '<h1>', '[/big]' => '</h1>', '[nl]' => '<br>', //Wszystkie [] zostaly zmienione na <> '[' => '<', ']' => '>', '"' => '"', ''' => "'" , //Jak zrobic kolor... '<color=(.+?)>' => '<p syle="color: \1px">', '</color>' => '</p>', //Akapit '<indent>' => '<p style="margin: 50px; margin-top: 0px; margin-bottom: 0px;">', '</indent>' => '</p>', //Stopka artykułu '<info>' => '<p style="margin: 50px; margin-top: 0px; margin-bottom: 0px;">', '</info>' => '</p>', //Lista '<list=1>' => '<ul>', '</list>' => '</ul>', '<*>' => '<li>', ); $newtext = str_replace(array_keys($array), array_values($array), $text); return $newtext; } ?> Znaki " oraz ' w artykułach są w kodowaniu ampersand, zauważyłem to w podglądzie źródła i w pliku han_parse_bbcode.php. Nadal nie mogę zrobić tagu, który odpowiada za kolor, czcionkę i wielkość. Pozamieniałem więc wszystkie znaki [] na <> wartością '[' => '<', ']' => '>' i wszystkie '"' => '"', ''' => "'" , dzięki czemu nie ma już widocznego kodowania w artykułach, jednak chciałbym zrobić chociażby ten tag koloru a wtedy z resztą już dalej na przykładzie bym sobie poradził. Znasz Dawi na, to może jakiś sposób?
-
A w jaki sposób dopisać to do skryptu, który podałem w pierwszym poście? gdyż, to co podałeś nie mówi mi przez co mam przepuścić kod. Czy kod parsujący znajduję się w bazie danych? jeżeli tak to wystarczyło by skonstruować skrypt oparty o zawarte tam parametry, czy się mylę? Oraz pytanie w skrypcie w pierwszym poście zastanawiam się w jaki sposób skonstruować tag, koloru, który jest w cudzysłowach.