Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Kilka drobnych pytań
BugsBunny
post
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 4
Dołączył: 2.04.2005

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


Witam,
od dawna mnie nurtuje pare problemów, które za każdym pisaniem skryptów powracają.



  1. <?php
  2. if(isset($_GET['sprawdz']))  {
  3.  $db = new db();
  4.  $db->fetcharray("SELECT users_pass FROM users WHERE users_login ='".$_POST['nick33']."' ");
  5.  if(!empty($db->rekordy)){
  6.  
  7.  
  8. if($db->rekordy[0]['users_pass'] == (md5($_POST['pass33']))){
  9.  
  10.  $_SESSION['osoba']=$_POST['nick33'];
  11. header('Location: index.php');
  12. }
  13.  else { echo "podales nieprawidlowe dane";}
  14.  
  15. }
  16. }
  17. ?>


1. Estetyka

To jest moja metoda werfikacji usera.

Jak w smarty zrobić żęby mi estetycznie pokazywało np. na czerwono informacje nad logwaniem o błednych danych a nie jak teraz pod całym szablonem. Wiązało by się to z osdświeżeniem całego szablonu.

2. Do tego samego kodu.

Jak przekierować żeby zmienił się też adres, bo np. tutaj zmienia się środek a adres pozostaje stary co powoduje wiele problemów.

3.BAZA DANYCH

Używam tutaj klasy DB więc czy mam za kazdym zapytaniem zamykać połączenie czy po wylgoowaniu?

4. Dwa przyciski

Jak zrobić w formularzu dwa przyciski. Bo submit możę być jeden a drugi musiałby się odnosić do jakiejś Funkcji JS. Można odnieść drugi button do funkcji php, np. żeby zrobić pogdląd posta i zatwierdzanie?

Jak mi się coś jeszcze przypomni to dopiszę.

Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KG-
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.05.2006

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


Cytat
To jest moja metoda werfikacji usera.

Jak w smarty zrobić żęby mi estetycznie pokazywało np. na czerwono informacje nad logwaniem o błednych danych a nie jak teraz pod całym szablonem. Wiązało by się to z osdświeżeniem całego szablonu.


Przecież tworzenie szablonu polega na tym, że (w większości przypadków) najpierw przechodzisz przez cały lub część skryptu podstawiając wartości do szablonu a potem go generujesz. Co za problem zrobić np zmienną errtxt do której przekazujesz komunikat o błędzie.

  1. <?php
  2. $smarty->assign('errtxt', '');
  3.  
  4. if (jakis_warunek) {
  5. $smarty->assign('errtxt', 'Błędny login');
  6. } else {
  7. // reszta kodu
  8. }
  9.  
  10. $smarty->display('index.tpl');
  11. ?>


a w pliku szablonu coś w stylu:
Kod
(...)
<span class="error">{$errtxt}</span>
<p class="costam">Zawartość strony</p>
(...)

i będziesz miał wyświetlany błąd na górze strony, jeśli tylko zmienna $errtxt będzie coś zawierała.
Linijkę
  1. <?php
  2. $smarty->assign('errtxt', '');
  3. ?>
możesz pominąć jeśli masz error reporting wyższy niż E_NOTICE i/lub jeśli jesteś bałaganiarzem i lubisz zostawiać niezainicjalizowane zmienne.

Aha, i tak jak pisał SongoQ, kwestie obliczenia sumy md5 hasła i sprawdzenia czy taki user i hasło figurują w bazie pozostaw samej bazie, w skrypcie tylko sprawdzaj czy baza zwróciła 0 rekordow czy 1.
  1. SELECT `id`,`login`,`costam_innego` FROM `users` WHERE `login`='$login' AND `pass`=MD5($pass) LIMIT 1;


Ad2. Nie do końca rozumiem co masz na myśli, jeśli chodzi o przekierowanie na inny adres to po prostu go podaj w całości header('Location: http://jakis.adres.pl/index.php'). Druga sprawa - po header zawsze dawaj die, bo inaczej skrypt w pewnych warunkach może się wykonywać dalej niejako w tle mimo przekierowania.

Ad4. No tu możliwości jest wiele, możesz zrobić zwykły
Kod
<input type="button" onClick="document.location='adres_gdzie_ma_prowadzić_przycisk';">

możesz zrobić tak aby taki przycisk robił submit formularza przy pomocy JS, wcześniej ustawijąc np jakąś zmienną która zostanie wysłana z formularzem. Najlepiej poczytaj jakiś dobry tutorial do js a tam znajdziesz mnóstwo przykładów.

Ten post edytował KG- 29.07.2006, 11:52:54
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 20:52