Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co może być nie tak w tym skrypcie ?
Forum PHP.pl > Forum > PHP
artur81
Witam !
Mam prośbę o zlokalizowanie błędu (Nie można się zalogować, jeśli nawet uzupełnię tylko jedno z pół powinno wyświetlić komunikat a tego również nie robi), próbuję znaleźć ale już nie daję rady, wg mnie wszystko powinno być ok ale niestety nie jest. mad.gif
  1. <?php
  2. if (isset ($_POST['submit']  )) {
  3.         mysql_connect (&#092;"localhost\", \"root\", \"\") or
  4.         die (&#092;"Nie można nawiązać połączenia z MySql\");
  5.         mysql_select_db (&#092;"artur81\") or
  6.         die (&#092;"Nie można nawiązać połącznia z bazą artur81\");
  7.         $wiadomosc = NULL;
  8.  
  9.         if (empty($_POST['uzytkownik'])) {
  10.                 $u=false;
  11.                 $wiadomosc.='<p>Wprowadź nazwę użytkownika</p>';
  12.         } else {
  13.                 $u=($_POST['uzytkownik']);
  14.         }
  15.  
  16.         if (empty($_POST['haslo'])) {
  17.                 $p=false;
  18.                 $wiadomosc.='<p>Wprowadź hasło</p>';
  19.         } else {
  20.                 $p=($_POST['haslo']);
  21.         }
  22.  
  23.         if ($u && $p) {//Nazwa użytkownika i hasło są podane
  24.  
  25.  
  26.             $zapytanie = &#092;"SELECT nr, uzytkownik  FROM uzytkownicy WHERE uzytkownik = '$u' AND haslo = '$p'\";
  27.             $wynik = mysql_query ($zapytanie);
  28.             $wiersz = mysql_fetch_array ($wynik, MYSQL_NUM);
  29.             if ($wiersz) {
  30.                     //Rejestruję sesję i przekierowuję użytkownika do egzaminu.
  31.                     session_start ();
  32.                     $_SESSION['uzytkownik'] =$wiersz[1];
  33. $_SESSION['nr'] =$wiersz[0];
  34.  
  35.                    header (&#092;"Location: http://localhost/sesje/plik1.php\");
  36.             } else {
  37.                     $wiadomosc ='<p>Błedny login lub hasło</p>';
  38.                     }
  39.            // mysql_close();
  40.             } else {
  41.                     $wiadomosc.='<p>Spróbuj ponownie.</p>';
  42.                     }
  43.             }
  44.             if (isset($wiadomosc)) {
  45.                     echo '<font color =\"red\">', $wiadomosc , '</font>';
  46.                     }
  47.                     ?>
  48. <form action = \"logowanie.php\" method=\"post\">
  49. <fieldset><legend>Wprowadź nazwę użytkownika i hasło:</legend>
  50. <p><b>Nazwa użytkownika:</b><input type=\"text\" name=\"uzytkownik\" size=\"10\" maxlenght=\"30\"
  51. value=\"<?php if (isset($_POST['uzytkownik'])) echo $_POST['uzytkownik']; ?>\" /></p>
  52. <p><b>Hasło:</b><input type=\"password\" name=\"haslo\" size=\"20\" maxlenght=\"30\" /></p>
  53. <div align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Zaloguj\" /></div>
  54. </form>
kszychu
$_POST a nie $POST.
artur81
Kszychu poprawiłem to tak jak pisałeś, ale niesty dalej nie działa sad.gif
crash
Może spróbuj użyć zamiast session_register tablicy superglobalnej _SESSION.
artur81
Obecnie wygląda to tak jak widać wyżej ale niestety nadal nie działa, ale zauważyłem ze na pasku (statusu - nie wiem czy tak sie nazywa, w kazdym razie chodzi mi o ten na samym dole w przegladarce biggrin.gif ) pojawia sie napis "Found:0" wczesniej go nie było...
carman
first think first.
uniwersalane narzedzie debuggowania w php:
Kod
print_r($nazwa_zmiennej)

w Twoim przypadku:
Kod
print_r($_POST)

zobaczysz co takiego przechowuje Twoja rzeczona zmienna...

abstrahujac:
1. Twoja logowanie jest podatne na SQL INJECTION.
2. Nie zamykasz fieldseta w html'u...(oczywiscie to nie ma zadnego znaczenia na dzialanie)
scanner
Cytat(carman @ 2005-01-14 13:39:55)
uniwersalane narzedzie debuggowania w php:
Kod
print_r($nazwa_zmiennej)

A moze lepiej: var_dump" title="Zobacz w manualu PHP" target="_manual() i var_export" title="Zobacz w manualu PHP" target="_manual() ?
squid
daj sobie spokuj z reczna obsluga formularzy
PEAR robi to wysmienicie:
roboczy przyklad mojego logowania przy uzyciu samego kodu
  1. <?php
  2. require_once 'HTML/QuickForm.php';
  3.  
  4. $form = new HTML_QuickForm('loginForm', 'post', basename($PHP_SELF).'?'.$_SERVER['QUERY_STRING']);
  5.  
  6. $form->addElement('header', null, 'Wypelnienie tego formularza da ci dostep do zgromadzonych plikow');
  7. $form->addElement('text', 'code', 'Podaj kod', array('size' => 10, 'maxlength' => 30));
  8. $form->addElement('submit', null, 'Sprawdz');
  9.  
  10. $form->addRule('code', REQUIRED_MSG, 'required');
  11. $form->addRule('code', REQUIRED_ALPHANUMERIC_MSG, 'alphanumeric');
  12.  
  13. if ($form->validate())
  14. {
  15. //echo '<h1>Kod przyjety!</h1>';
  16. $acces = new acces($form->exportValue('code'));
  17.  
  18. if (!$acces->error)
  19. {
  20.  
  21. if ($acces->checkPermission())
  22. {
  23. header ('Location: list.php');
  24. }
  25. else
  26. {
  27. echo EXPIRATION_MSG;
  28. }
  29. }
  30.  
  31. //$admin->addCodes($form->exportValue('separator'), $form->exportValue('validityLenght'), $form->exportValue('codes'));
  32. }
  33.  
  34. // Output the form
  35. $form->display();
  36. ?>
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.