Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcje nie działają na darmowym serwerze
Forum PHP.pl > Forum > Przedszkole
badowl
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
teez
Po co w <input action=" "> kod php? Logujesz się przecież w tym samym pliku więc możesz zostawić albo puste albo ="nazwategosamegopliku.php">

Michasko
Co znaczy "nie funkcjonował jak powinien" ?
Spróbuj wypluć mysql_error().
badowl
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
Michasko
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
badowl
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
Michasko
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.
badowl
Działa, wielkie dzięki smile.gif
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.