ďťż

[php i html] skrypt logowania tylko co jest w nim nie tak jak trzeba??

       

Podstrony


telcocafe

Mam sobie taki skrypcik, super działał do wczoraj. A wczoraj zmieniłem w nim pare bebechów, okey, spox mogą nie działać, mogłem porobić błędy. Tylko taki problem : wyskakuje mi, że jest bąd w lini, w której nic nie zmieniałem!!!! :excl: Co jest??? Oto plik test.php :
<?php $login = ($_POST['login']); $password = ($_POST['password']); $polaczenie = mysql_connect("db.host.sk","login","haslo") or die("Błąd 01 (według Tabeli Błędów WNM). Połączenie z bazą danych NIEUDANE"); mysql_select_db("wwwinfo",$polaczenie) or die("Błąd 02 (według Tabeli Błędów WNM). Wybranie bazy danych NIEUDANE"); $zapytanie = "SELECT haslo FROM gracze WHERE ksywa='$login';"; $zapytanie2 = "UPTADE gracze SET atywny='tak' WHERE ksywa='$login';"; $wynik2=mysql_query($zapytanie2) or die("Błąd 03 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL.") $wynik=mysql_query($zapytanie) or die("Blad"); while($rekord=mysql_fetch_array($wynik)); if ($rekord['haslo']==$password) { echo "Jesteś zalogowany"; session_start(); session_register("login"); $_SESSION['login'] = $login; echo "<html><head>"; echo "<title>..::Wielki Napad na Miasto::.. - użytkownik zalogowany</title>" echo "</head>"; echo "<body>"; echo "<a href="login.htm">Przejdź do gry</a>" echo "</body>" ; echo "</html>"; while($rekord2=mysql_fetch_array($wynik2)); } else { echo "Błąd. Prawdopodobnie podałeś złe dane."; } ?>
Dobra, nie wiem, czy jest to potrzebne, ale dam też stronę z formularzem :
<HTML> <HEAD> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>WNM - Strona gry zalogowanego użytkownika</TITLE> <LINK REL="stylesheet" HREF="style5.css" TYPE="text/css"> </HEAD> <body> <BODY bgcolor=rgb(51,51,51) background=back.jpg> <Table width=751 cellspacing=0 cellpadding=0 border=0 align=center> <tr> <td width=751 height=161 background=gora1.gif colspan=3 valign=center align=center> <b>Logo zostało zapisane w pliki gora1.gif. Radzę na jego postawie stworzyć własne logo, a następnie usunąć ten tekst. </td> </tr> <tr> <td width=751 height=71 background=gora2.gif colspan=3> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <IFRAME NAME="opis" SRC="opis.htm" WIDTH="570" HEIGHT="60" SCROLLING="NO" FRAMEBORDER="0" align=center marginheight=17></IFRAME> </td> </tr> <tr> <td width=160 height=400 background=center.jpg valign=top> <IFRAME NAME="menu" SRC="menu.htm" WIDTH="160" HEIGHT="380" SCROLLING="NO" FRAMEBORDER="0" align=center marginwidth=0 marginheight=0></IFRAME> </td> <td width=431 valign=top style="padding:10px"> <Center> <form action="test.php" method="POST"> Ksywa: <input type="text" name="login"><br /> Hasło: <input type="password" name="password"><br /> <input type="submit" value="Zaloguj" target=_parent> </form> </center> </td> <td width=160 height=400 background=center.jpg valign=top> <IFRAME NAME="menu2" SRC="menu2.htm" WIDTH="160" HEIGHT="380" SCROLLING="NO" FRAMEBORDER="0" align=center marginwidth=10 marginheight=0></IFRAME> </td> </tr> <tr> <td width=751 height=59 background=dol.jpg colspan=3> <center><Br> <b>Ten layout pochodzi ze Strefy WWW z miesięcznikia CD-Action</b> </center> </td> </tr> </table> </BODY> </HTML>
OOOPPPPPSSSS... moze pasowało by podać błąd jaki wywala? Proszę :
Parse error: parse error, unexpected T_VARIABLE in /mnt/storage/users/w/w/w/wwwinfo/test.php on line 9
Czemu mój temat tak się "ozjeżdża"???
Użytkownik MarCynks edytował ten post 23 listopad 2005, 15:29


$wynik2=mysql_query($zapytanie2) or die("Błąd 03 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL.")
Brakuje znaku końca instrukcji. Dodaj go.
Użytkownik Ferrari edytował ten post 23 listopad 2005, 15:32
dobra, zaraz sprawdzę czy działa. Ale wyświetla ze jest bład w 9 lini (czyli w
$wynik=mysql_query($zapytanie) or die("Blad");).
Dobra spox. Przy okazji odkryłem jeszcze 3 błędy :D W tym dwa ze średnikami :D dzięki, za szybką reakcję :D
Użytkownik MarCynks edytował ten post 23 listopad 2005, 15:47

dobra, zaraz sprawdzę czy działa. Ale wyświetla ze jest bład w 9 lini (czyli w
$wynik=mysql_query($zapytanie) or die("Blad");).
Dobra spox. Przy okazji odkryłem jeszcze 3 błędy :D W tym dwa ze średnikami :D dzięki, za szybką reakcję :D



virus_jc: dlaczego? KSE 7-8/2005, tam jest tak samo :P Popatrz sobie na 4 linijkę kodu. CZym się różni Twoje rozwiązanie?


virus_jc: dlaczego? KSE 7-8/2005, tam jest tak samo :P  Popatrz sobie na 4 linijkę kodu. CZym się różni Twoje rozwiązanie?

A co ma wspolnego czy MarCynks ma te logowanie na txt czy na mysql. Oddzielne funkcje są do MySql inne do txt. Więc nie widze sensu nie potrzebniego wstawiania postów.
Virusek wydaje mi się że specjalnie nabijasz sobie posty.
Użytkownik ursus6 edytował ten post 24 listopad 2005, 19:42
Tak, było a txt. Ale otwórz KSE 7-8/2005 na str. 78 :P Co prawda nie ma tam o logowaniu, ale popatrz na ósmą linijkę :P tam w nawiasie jest tylko zmienna z zapytaniem :P


A co ma wspolnego czy MarCynks ma te logowanie na txt czy na mysql. Oddzielne funkcje są do MySql inne do txt. Więc nie widze sensu nie potrzebniego wstawiania postów.

i znów mam problem :D skrypt chciałem jeszzcze bardziej rozbudować, no mi nie wyszło :(
7 linijka pliku test.php:
$zapytanie2 = "UPDATE gracze SET aktywny="tak" WHERE ksywa="$login";"; Ja trzeba, to mogę znów podać cały plik :D Dodam, że próbowałem już chyba ze wszystkim, dawałem / ' " . i nigdy nie wychodziło. Aha, taki błąd się pojawia:

Parse error: parse error, unexpected T_STRING in /mnt/storage/users/w/w/w/wwwinfo/new/test.php on line 7 Aha, błąd jest chyba przy zmienej login.

sprawdz tak:

$zapytanie2 = "UPDATE gracze SET aktywny="tak" WHERE ksywa="$login";

moze zadziala ;)


moze zadziala ;)

Ufff... i ten, i ten sposób działa(nie pokazuje tamtego błędu). Za to pokazuje zdefiniowany przeze mnie komunikat o błędnych danych. Podaje cały plik test.php:
<?php $login = ($_POST['login']); $password = ($_POST['haslo']); $polaczenie = mysql_connect("db.host.sk","wwwinfo","info113max") or die("Błąd 01 (według Tabeli Błędów WNM). Połączenie z bazą danych NIEUDANE"); mysql_select_db("wwwinfo",$polaczenie) or die("Błąd 02 (według Tabeli Błędów WNM). Wybranie bazy danych NIEUDANE"); $zapytanie = "SELECT haslo FROM gracze WHERE ksywa='$login';"; $zapytanie2 = "UPDATE gracze SET aktywny='tak' WHERE ksywa='$login';"; $zapytanie3 = "SELECT zycie AND kasa FROM gracze WHERE ksywa='$login'"; $wynik3=mysql_query($zapytanie3) or die("Błąd 033 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL."); $wynik2=mysql_query($zapytanie2) or die("Błąd 032 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL."); $wynik=mysql_query($zapytanie) or die("Blad"); while($rekord=mysql_fetch_array($wynik)); if ($rekord['haslo']==$password) { echo "Jesteś zalogowany"; while($rekord2=mysql_fetch_array($wynik2)); mysql_free_result($wynik); while($rekord3=mysql_fetch_array($wynik3)); session_start(); session_register("login"); session_register("zycie"); session_register("kasa"); $_SESSION['login'] = $login; $_SESSION['zycie'] = $rekord['zycie']; $_SESSION['kasa'] = $rekord['kasa']; echo "<html><head>"; echo "<title>..::Wielki Napad na Miasto::.. - użytkownik zalogowany</title>"; echo "</head>"; echo "<body>"; echo "<a href=\"login.htm\">Przejdź do gry</a>"; echo "</body>"; echo "</html>"; include(index.html); } else { echo "Błąd. Prawdopodobnie podałeś złe dane."; } ?>

Ja zawsze zapytania robie w formie:
$zapytanie = 'select costam from cos where klucz="'.$wartosc.'"';
i zawsze dziala :)
Btw MarCynks od razu moge ci powiedziec ze twoj kod jest wybitnie nieefektywny i nieuzyteczny - jakies zapytanie2, zapytanie3 ... laczenie z baza na kazdym kroku?
Czemu nie zrobisz osobnych plikow np includes/mysql.php i plikow klas [te ostatnie sa wspaniale uzyteczne! Polecam! np jesli chcesz odczytywac w paru miejscach ilosc zycia nie robisz
$zapytanie = 'select life from tabela where uzytkownik="Test"'; $wynik = mysql_query($zapytanie); $rec = mysql_fetch_array($wynik); echo $rec['life'];
Tylko o wiele prosciej -
echo users::GetLife($nazwa_uzytkownika);
Oczywiscie zeby takie cos dzialalo trzeba zrobic te klasy. Ja swoja gre przez tydzien przepisywalem zeby jakos wygladala i korzystala z klas. Efekt? ok 2 kb mniej i o wiele czytelniejszy kod. I jeszcze jedna uwaga - uwazasz ze gra bedzie ladna szybka i czytelna jesli bedziesz robil ciagle echo '<costam=ble>sdfsdf</costam>'; itp? Ja ci moge powiedziec - gra bedzie niesamowicie trudna do napisania a przede wszystkim niewygodnie bedzie sie ja tak tworzylo. Zrob zwykly dokument html, o rozszerzeniu php, a tam gdzie ma sie cos pojawiac z php - rob <? include('plik.php'); ?> dzieki temu tworzenie szablonow bedzie o wiele szybsze i latwiejsze.

Niby działa, ale pisze, że podałem złe dane. To już przesada, bo są poprawne!!! Mogę jeszcze raz podać test.php :
<?php $login = ($_POST['login']); $password = ($_POST['haslo']); $polaczenie = mysql_connect("db.host.sk","wwwinfo","info113max") or die("Błąd 01 (według Tabeli Błędów WNM). Połączenie z bazą danych NIEUDANE"); mysql_select_db("wwwinfo",$polaczenie) or die("Błąd 02 (według Tabeli Błędów WNM). Wybranie bazy danych NIEUDANE"); $zapytanie = "SELECT haslo FROM gracze WHERE ksywa='$login';"; $zapytanie2 = "UPDATE gracze SET aktywny='tak' WHERE ksywa='$login';"; $zapytanie3 = "SELECT kasa AND zycie FROM gracze WHERE ksywa='$login';"; $wynik3=mysql_query($zapytanie3) or die("Błąd 033 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL."); $wynik2=mysql_query($zapytanie2) or die("Błąd 032 (według Tabeli Błędów WNM). Błąd w zapytaniu MySQL."); $wynik=mysql_query($zapytanie) or die("Blad"); while($rekord=mysql_fetch_array($wynik)); if ($rekord['haslo']==$password) { echo "Jesteś zalogowany"; while($rekord2=mysql_fetch_array($wynik2)); mysql_free_result($wynik); while($rekord3=mysql_fetch_array($wynik3)); session_start(); session_register("login"); session_register("zycie"); session_register("kasa"); $_SESSION['login'] = $login; $_SESSION['zycie'] = $rekord['zycie']; $_SESSION['kasa'] = $rekord['kasa']; echo "<html><head>"; echo "<title>..::Wielki Napad na Miasto::.. - użytkownik zalogowany</title>"; echo "</head>"; echo "<body>"; echo "<a href=\"login.htm\">Przejdź do gry</a>"; echo "</body>"; echo "</html>"; include(index.html); } else { echo "Błąd. Prawdopodobnie podałeś złe dane."; } ?>
ps ale mi dojechałes... :D no to opisz mi na czym polega to GetLife <_<

Poczytaj sobie o TYM
Funkcję GetLife musisz sam napisać ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.