Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Wylogowanie przy przeładowaniu strony :/
Forum PHP.pl > Forum > Przedszkole
in5ane
Witam,
zrobiłem edycję ogłoszenia po zalogowaniu (to jest ten skrypt logowania: )Temat: phpmysql Logowanie i sesje jak wziasc id) i mam taki problem, że jak klikne na "Popraw" to mi się wylogowuje, a nie poprawia.

  1. <?php
  2. include_once('logowanie.php');
  3. mysql_query('SET CHARSET LATIN2');
  4. ?>
  5. <?php
  6.  
  7. if($_SESSION['logowanko'] == 'poprawne') {
  8.  
  9. if ($co == 'popraw') {
  10. echo 'Zeedytowano poprawnie!'; // tutaj bedzie jeszcze zapytania do edycji, ale to sie wogole nie wyswietla
  11. }
  12.  
  13. $query = mysql_query ("SELECT * FROM ogloszenia WHERE id = $_POST[login] ORDER BY id ASC;");
  14. $row = mysql_fetch_array ($query);
  15. echo '
  16. <div align="center">
  17.  <form method="post">
  18.  <input type="hidden" name="co" value="popraw">
  19.  <font color="red">W tym miejscu możesz edytować swoje ogłoszenie!<br /><br /><blink>UWAGA POLA OZNACZONE CZERWONĄ GWIAZDKĄ MUSZĄ ZOSTAĆ WYPEŁNIONE.</blink><br /><br /></font>
  20.  
  21. <table border="0" style="border-collapse: collapse">
  22.  
  23.  <tr>
  24. <td width="50%"><font face="Verdana" size="2">
  25. <u>Typ ogłoszenia</u>:<font color="red">*</font></font></td>
  26. <td width="50%">
  27. <select name="typ" style="font-family: Verdana; font-size: 10px">
  28. <option value="">----</option>
  29. <option value="1"'; if($row[oferta] == '1') echo " selected"; echo '>max (wyróżnienie na stronie głównej, opis, do 6 zdjęć, koszt 100 zł + VAT</option>
  30. <option value="2"'; if($row[oferta] == '2') echo " selected"; echo '>maxi (opis, do 2 zdjęć, koszt 80 zł + VAT rocznie)</option>
  31. <option value="3"'; if($row[oferta] == '3') echo " selected"; echo '>mini (opis, 1 zdjęcie, koszt 60 zł + VAT rocznie)</option>
  32. </td>
  33.  </tr>
  34.  
  35.  <tr>
  36. <td width="50%"><font face="Verdana" size="2">
  37. <u>Nazwa obiektu</u>:<font color="red">*</font></font></td>
  38. <td width="50%">
  39. <input type="text" name="nazwa" value="'.$row[nazwa].'" style="font-family: Verdana; font-size: 10px"></td>
  40.  </tr>
  41.  
  42. TUTAJ USUNALEM CALY FORMULARZ BO BYL BARDZO DLUGI
  43.  
  44.  <tr>
  45. <td width="50%">&nbsp;</td>
  46. <td width="50%">
  47. <input type="submit" value="Popraw" style="font-family: Verdana; font-size: 10px"></td>
  48.  </tr>
  49. </table>
  50.  
  51. </form>
  52. </div>
  53. ';
  54.  
  55. } else {
  56. }
  57. echo logowanko();
  58.  
  59. ?>



Z góry dziękuję za pomoc smile.gif
www0_0
spróbuj w 8 linii z tego :
  1. <?php
  2. if($_SESSION['logowanko'] == 'poprawne') {
  3. ?>

Zmienić na:
  1. <?php
  2. if($_SESSION['logowanko'] === 'poprawne') {
  3. ?>


Bo o ile pamiętam to:
= oznacza przypisz
== oznacza podobne
=== a to identyczne

może się mylę, ale warto spróbować.
---------------------------------------------------
A tak jeszcze teraz zauważyłem:
że masz zmienną $co sprawdzasz czy ona coś ma, ale wcześniej nigdzie jej nie zdeklarowałeś.
Amorph
Cytat(www0_0 @ 22.05.2007, 18:25:15 ) *
Bo o ile pamiętam to:
= oznacza przypisz
== oznacza podobne
=== a to identyczne

może się mylę, ale warto spróbować.

Ekhm....
Dając rady najlepiej poczytać samemu, potem pisać na forum:
Operatory w php
Pozdrawiam...
www0_0
Użytkowniku: Amorph
Przepraszam że chciałem pomóc, również przepraszam że dodałem informacje iż nie jestem tego pewien, a nawet przepraszam za to że potem edytowałem posta żeby się poprawić, i dodać drugą bardziej prawdopodobną przyczynę usterki. Ale ja coś próbowałem, a ty napisałeś tylko po to aby mnie skrytykować, no cóż, ale i tak dziękuje ci że odświeżyłeś moją wiedzę o operatorach.

A na dole, moja propozycja rozwiązania problemu.

Raz jeszcze przepraszam jeśli i tym razem znajdziesz jakiś oczywisty błąd.

  1. <?php
  2. include_once('logowanie.php');
  3. mysql_query('SET CHARSET LATIN2');
  4. ?>
  5. <?php
  6.  
  7. if($_SESSION['logowanko'] == 'poprawne') {
  8. // Ta linijka została dodana.
  9. // tu powinna być zapewne jakaś zmienna z forlularza.
  10. // ta zmienna to zapewne get lub post a strzeliłem na post.
  11. // wątpie abyś miał włączone Register Globals.
  12. $co = $_POST['co'];
  13. if ($co == 'popraw') {
  14. echo 'Zeedytowano poprawnie!'; // tutaj bedzie jeszcze zapytania do edycji, ale to sie wogole nie wyswietla
  15. }
  16. $login = $_POST['login'];
  17. $query = mysql_query ("SELECT * FROM ogloszenia WHERE id = $login ORDER BY id ASC");
  18. $row = mysql_fetch_array ($query);
  19. echo '
  20. <div align="center">
  21.  <form method="post">
  22.  <input type="hidden" name="co" value="popraw">
  23.  <font color="red">W tym miejscu możesz edytować swoje ogłoszenie!<br /><br /><blink>UWAGA POLA OZNACZONE CZERWONĄ GWIAZDKĄ MUSZĄ ZOSTAĆ WYPEŁNIONE.</blink><br /><br /></font>
  24.  
  25. <table border="0" style="border-collapse: collapse">
  26.  
  27.  <tr>
  28. <td width="50%"><font face="Verdana" size="2">
  29. <u>Typ ogłoszenia</u>:<font color="red">*</font></font></td>
  30. <td width="50%">
  31. <select name="typ" style="font-family: Verdana; font-size: 10px">
  32. <option value="">----</option>
  33. <option value="1"'; if($row['oferta'] == '1') echo " selected"; echo '>max (wyróżnienie na stronie głównej, opis, do 6 zdjęć, koszt 100 zł + VAT</option>
  34. <option value="2"'; if($row['oferta'] == '2') echo " selected"; echo '>maxi (opis, do 2 zdjęć, koszt 80 zł + VAT rocznie)</option>
  35. <option value="3"'; if($row['oferta'] == '3') echo " selected"; echo '>mini (opis, 1 zdjęcie, koszt 60 zł + VAT rocznie)</option>
  36. </td>
  37.  </tr>
  38.  
  39.  <tr>
  40. <td width="50%"><font face="Verdana" size="2">
  41. <u>Nazwa obiektu</u>:<font color="red">*</font></font></td>
  42. <td width="50%">
  43. <input type="text" name="nazwa" value="'.$row['nazwa'].'" style="font-family: Verdana; font-size: 10px"></td>
  44.  </tr>
  45.  
  46. TUTAJ USUNALEM CALY FORMULARZ BO BYL BARDZO DLUGI
  47.  
  48.  <tr>
  49. <td width="50%">&nbsp;</td>
  50. <td width="50%">
  51. <input type="submit" value="Popraw" style="font-family: Verdana; font-size: 10px"></td>
  52.  </tr>
  53. </table>
  54.  
  55. </form>
  56. </div>
  57. ';
  58.  
  59. } else {
  60. }
  61. echo logowanko();
  62.  
  63. ?>
in5ane
No i nie działa nadal a włączyłem Register Globals. Proszę o pomoc .
Amorph
@www0_0: Nie rób z siebie poszkodowanego... każdy się myli, jak starasz sie pomóc pprzetestuj jakieś rozwiązanie u siebie i wtedy podsyłaj...

@in5ane: Pokaż co masz w pliku logowanie.php, czy przypadkiem nie nadpisujesz sesji or something....
Wyświetl sobie do testów co zawiera tablica $_SESSION.
in5ane
  1. <?php
  2.  
  3. if(isset($_POST['logowanko'])) {
  4.  
  5. $dane = @mysql_query('SELECT id, haslo FROM hasla WHERE id = "'.$_POST['login'].'" AND haslo = "'.$_POST['haslo'].'"') or die(mysql_error());
  6.  
  7.  
  8. if(mysql_num_rows($dane) == 1) {
  9. $_SESSION['logowanko'] = 'poprawne';
  10. $_SESSION['user_login'] = $_POST['login'];
  11. } else {
  12. $_SESSION['logowanko'] = 'Błędny login lub hasło!';
  13. }
  14.  
  15. unset($_POST['logowanko']);
  16. }
  17.  
  18. if(isset($_POST['wylogowanko'])) {
  19.  
  20. unset($_SESSION['logowanko']);
  21. }
  22.  
  23.  
  24. function logowanko() {
  25.  
  26. if($_SESSION['logowanko'] == 'poprawne') {
  27.  $string = '<form action="'.getenv(REQUEST_URI).'" method="post"><input type="submit" name="wylogowanko" value="Wyloguj" style="font-family: Verdana; font-size: 10px"></form>';
  28. } else {
  29. $string = '<form action="'.getenv(REQUEST_URI).'" method="post"><ul style="list-style-type: none; margin: 0; padding: 0;">';
  30.  
  31.  if(isset($_SESSION['logowanko'])) $string .= '<li>'.$_SESSION['logowanko'].'</li>';
  32.  
  33.  $string .= '<div align="center">
  34.  
  35.  <font face="Verdana" size="2"><b>Aby zalogować się wpisz dane:</b></font>
  36.  
  37.  <table border="0" width="21%" style="border-collapse: collapse" id="table1">
  38. <tr>
  39. <td width="16%"><font face="Verdana" size="2">
  40. <u>ID:</u></font></td>
  41. <td width="74%">
  42. <input type="text" name="login" size="28" style="font-family: Verdana; font-size: 10px"></td>
  43. </tr>
  44.  
  45. <tr>
  46. <td width="16%"><font face="Verdana" size="2">
  47. <u>Hasło:</u></font></td>
  48. <td width="74%">
  49. <input type="password" name="haslo" size="28" style="font-family: Verdana; font-size: 10px"></td>
  50. </tr>
  51. <tr>
  52. <td width="16%">&nbsp;</td>
  53.  
  54. <td width="74%">
  55. <input type="submit" value="OK" name="logowanko" style="font-family: Verdana; font-size: 10px"></td>
  56. </tr>
  57.  </table>
  58.  
  59.  </div>
  60. ';
  61.  
  62. }
  63.  
  64. return $string;
  65.  
  66. }
  67.  
  68. ?>


A jak dopisałem (dla testów) echo $_SESSION['logowanie']; to wyświetla się napis "poprawne".

A może ten przycisk działa jako wylogowanie, jakiś błąd czy coś?

Zajebiście!!..

Brakowało:
  1. <?php
  2. ?>
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.