Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]ksiazka PHP 5, Apache i Mysql - znak \ w adresie
Forum PHP.pl > Forum > Przedszkole
share
witam, ucze sie PHP z ksiazki PHP 5, Apache i Mysql. Jestem w 13 rozdziale i tam sie tworzy cms, ale mam problem juz na poczatku, bo gdy wchodze w przegladarce na localhost, wybieram logowanie i wpisuje poprawne dane to do adresu dolacza sie mi znak "\" i wyglada to tak: http://localhost\/index.php


przyklady mozna sciagnac stad: ftp://ftp.helion.pl/przyklady/phappo.zip

a to chyba chodzi o te fragmenty kodu:
  1. <h1>Logowanie członka stowarzyszenia</h1>
  2.  
  3. <p>
  4. Adres email:<br>
  5. <input type="text" name="email" maxlength="255" value="">
  6. </p>
  7. <p>
  8. Hasło:<br>
  9. <input type="password" name="passwd" maxlength="50">
  10. </p>
  11. <p>
  12. <input type="submit" class="submit" name="action" value="Zaloguj">
  13. </p>

  1. case 'Zaloguj':
  2. if (isset($_POST['email'])
  3. and isset($_POST['passwd']))
  4. {
  5. $sql = "SELECT user_id, access_lvl,name " .
  6. "FROM cms_users " .
  7. "WHERE email='" . $_POST['email'] . "' " .
  8. "AND passwd='" . $_POST['passwd'] . "'";
  9. $result = mysql_query($sql, $conn)
  10. or die('Nie potrafię odnaleĽć informacji o użytkowniku: ' .
  11.  
  12. if ($row = mysql_fetch_array($result)) {
  13. $_SESSION['user_id'] = $row['user_id'];
  14. $_SESSION['access_lvl'] = $row['access_lvl'];
  15. $_SESSION['name'] = $row['name'];
  16. }
  17. }
  18. redirect('index.php');
  19. break;


po zalogowaniu powinien przenosic na index.php ale wlasnie dokleja sie znak "\" i nie wyswietla strony.
to samo jest z wylogowaniem
  1. case 'Wyloguj':
  2.  
  3. redirect('index.php');
  4. break;



Co z tym zrobic? prosze o pomoc


pozdrawiam!!!
iVorIus
Pokaż jak wygląda funkcja redirect.
Wydaje mi się, że ma ona postać:
  1. function redirect($a)
  2. {
  3. header('Location: ' . $a . '\');
  4. }


Plik http.php
  1. function redirect($url) {
  2. if (!headers_sent()) {
  3. header('Location: http://' . $_SERVER['HTTP_HOST'] .
  4. dirname($_SERVER['PHP_SELF']) . '/' . $url);
  5. } else {
  6. die('Nie mogę przekierować. Wysłano już nagłówki (wyjście).');
  7. }
  8. }


Więc tak jak myślałem.
Możesz zrobić goły header, lub stworzyć nową funkcję, która nie będzie dodawała '/'.
share
tzn jak to zrobic, bo nie kapuje. Czemu ten znak sie dodaje?

pozdrawiam!!!
potreb
Pokaż swoją funkcję redirect, to zakapujesz.
iVorIus
Cytat(potreb @ 14.11.2009, 11:23:57 ) *
Pokaż swoją funkcję redirect, to zakapujesz.


Czytanie ze zrozumieniem == FALSE ?

Zobacz mój post wyżej..

Myślę, że to powinno pomóc:
Zmień zawartość funkcji redirect na:
  1. header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);


Lub zamien w kodzie redirecty na kod podany wyżej.
share
zamienilem to w pliku http.php i juz nie dodaje tego \, ale teraz przenosi na strone transact-user.php i zostaje biale pole, a powinno wrocic do index.php sad.gif

nikt nie korzystal z tej ksiazki i nie mial takiego problemu? te przyklady sa z oficjalnej strony heliona, wiec chyba powinny dzialac normalnie...

pozdrawiam!!!
iVorIus
Wybacz, podałem funkcje bez zmiennej..
  1. function redirect($url)
  2. {
  3. header('Location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['REDIRECT_URL'] . $url);
  4. }


I możesz dodać to sprawdzanie nagłówków itp.
share
dziala smile.gif WIELKI THX smile.gif

trzeba tylko jeszcze dodac przed $url . '/' . bo w tym co podales nie dodaje /, ale z tym sobie poradzilem

jeszcze raz thx

pozdrawiam!!!
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-2024 Invision Power Services, Inc.