Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Funkcje nie działają na darmowym serwerze
badowl
post 9.02.2013, 19:32:54
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Witam, przez jakiś czas pisałem strone na localhost u siebie na komputerze. Chcialem przetestować skrypt na jakims darmowym hostingu. Najpierw friko, potem cba i inne. Na żadnym skrypt nie funkcjonował jak powinien...

strona logowania

  1. include 'funkcje.php';
  2. <div id="login">
  3. <?php
  4. if(isset($_POST['submit_log'])) {
  5. $nazwa = mysql_real_escape_string(htmlspecialchars($_POST['nazwa']));
  6. $haslo = mysql_real_escape_string(htmlspecialchars($_POST['haslo']));
  7. $kom = logoj($nazwa, $haslo);
  8. if($kom[1]==1) {
  9. header("Refresh: 3; url=index.php");
  10. }
  11. }
  12.  
  13. ?>
  14. <form name="logowanie" action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
  15. Podaj nazwę uzytkownika:<br />
  16. <input type="text" name="nazwa" /><br />
  17. Podaj hasło:<br />
  18. <input type="password" name="haslo" /><br />
  19. <input type="submit" name="submit_log" value="Zaloguj" />
  20. </form><br />
  21. <?php
  22. if (isset($kom[0])){
  23. print $kom[0];
  24. }
  25. ?>
  26. </div>


Podczas proby logowania ciągle pojawia się komunikat błędne dane.
Przy formularzu rejestracyjnym jest podobnie. Jakby pola wysłanego formularza były puste

Ten post edytował badowl 9.02.2013, 20:29:36
Go to the top of the page
+Quote Post
teez
post 9.02.2013, 19:38:31
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 6
Dołączył: 20.12.2010

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


Po co w <input action=" "> kod php? Logujesz się przecież w tym samym pliku więc możesz zostawić albo puste albo ="nazwategosamegopliku.php">

Go to the top of the page
+Quote Post
Michasko
post 9.02.2013, 19:43:29
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Co znaczy "nie funkcjonował jak powinien" ?
Spróbuj wypluć mysql_error().

Ten post edytował Michasko 9.02.2013, 19:44:54


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
badowl
post 9.02.2013, 19:51:22
Post #4





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Miałem tak, zmieniłem zeby sprawdzić czy tak będzie działać. Obojętne co jest w action komunikat jest ten sam.

Znaczy to że kiedy logowałem się na localhost skrypt działał. Logował użytkownika po czym przechodził do strony glównej. Na serwerze pojawia się komunikat "błędne dane"

mysql_error() nie wywala żadnych błędów

Kiedy dla testu zamieszczę na serwerze plik:
  1.  
  2. mysql_connect('sql.serv.com', 'user', 'pass') or die(mysql_error());
  3. $sql = "select * from uzytkownicy;
  4. $query = mysql_query($sql);
  5. while ($row = mysql_fetch_array($query)) {
  6. print $row['user'];
  7. }


Poprawnie wyświetla nazwy użytkowników

Ten post edytował badowl 9.02.2013, 19:48:07
Go to the top of the page
+Quote Post
Michasko
post 9.02.2013, 19:55:04
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Wyświetl sobie dane, które są przekazywane.
  1. echo $nazwa.'<br/>'.$haslo;

Przy czym umieść to po 6. linijce (po mysql_real_escape_string i htmlspecialchars).

PS. 'Uje' się nie kreskuje ;P

Ten post edytował Michasko 9.02.2013, 20:00:25


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
badowl
post 9.02.2013, 20:05:10
Post #6





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Przy sprawdzeniu isset'em zwraca ze istnieje jednak przy probie wyświetlenia nie pojawia się nic

po usunięciu mysql_real_escape_string i htmlspecialchars wyświetla nazwę użytkownika i hasło
Go to the top of the page
+Quote Post
Michasko
post 9.02.2013, 20:14:16
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Niektóre serwery wymagają, aby przed użyciem mysql_real_escape_string() było otwarte połączenie z bazą danych. Ty otwierasz połączenie po tej funkcji. Spróbuj to zmienić, umieszczając mysql_real_escape_string bezpośrednio w funkcji "loguj()" :)

Zastanów się też nad stosowaniem biblioteki PDO - w nowszych wersjach PHP funkcje mysql_* nie będą już obsługiwane.

Ten post edytował Michasko 9.02.2013, 20:16:13


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
badowl
post 9.02.2013, 20:18:02
Post #8





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Działa, wielkie dzięki smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 03:32