Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z mailingiem
Forum PHP.pl > Forum > PHP
Tygrys22
Mam do Was jescze jedno pytanie, a mianowicie, oto cały tekst z pliku konfig.ini wziety z katalogu mailing. Jest on odpowiedzailny za logowanie do pliku index.php (sluzy do zarządzania mailingiem). Jestem pewny ze hasło i login wpisuje poprawnie ale nie mogę sie zalogować wiec sadze ze brakuje coś w skrypcie.


index.php
  1. <?
  2. include("inc/konfig.inc");
  3. if($pass) $hack=1;
  4. if($l && $h)
  5. {
  6. if($main && !$hack) $h=md5($h);
  7. if($h==$haslo && $l==$login) $pass=1; }
  8. if($main && $pass && !$hack) { echo "
  9. <p>Użytkownik <font color=red><b>$login</b></font>, poprawnie zalogowany do systemu subskrypcji 
  10. <font color=red><b>$sub_name</b></font></p>"; }
  11. if($w=="lista" && $pass && !$hack) include("inc/lista.inc");
  12. if($w=="wyslij" && $pass && !$hack) include("inc/wyslij.inc");
  13. if($pass && !$hack) { echo "
  14.  
  15.  }
  16. elseif(!$pass || $hack) { ?>
  17.  
  18.  
  19. <? include("inc/footer.inc"); ?>
bim2
Na samej górze daj
  1. <?php
  2. $l = $_GET['l'];
  3. $h = $_GET['h'];
  4. $w = $_GET['w'];
  5. $main = $_GET['main'];
  6. ?>

jeśli nie zadziała to daj _POST smile.gif
Tygrys22
Alle na samej gorze w ktorym pliku konfig.ini questionmark.gif odrazu po <? questionmark.gif

$l = $_GET['l'];
$h = $_GET['h'];
$w = $_GET['w'];
$main = $_GET['main'];
bim2
Obojetne, zaraz po <?
Qleer
Cytat(Tygrys22 @ 30.06.2008, 22:46:31 ) *
Alle na samej gorze w ktorym pliku konfig.ini questionmark.gif odrazu po <? questionmark.gif

$l = $_GET['l'];
$h = $_GET['h'];
$w = $_GET['w'];
$main = $_GET['main'];

Nie konfig.ini a konfig.inc, możesz dać od razu lub po
  1. <?php
  2. include("inc/konfig.inc");
  3. ?>
bim2
Jakieś błędy czy co? Jak się logujesz? Poprzez adres czy formularz? Więcej danych prosimy, bo wróżka w grecji odpoczywa.
Tygrys22
NIe własnie żadnych błedow poprostu jak chcem sie zalogowac przez okienko po wpisaniu danych nic sie nie pojawia, sostaje tak jak było (dzieje sie tak jakbym wcisnął odśwież). Jesli komuś potrzebne moge przesłać np przez gg caly folder maling.
bim2
to nie zmieniaj tego na $_GET tylko $_POST. Albo włącz register_globals w php.ini (co jest najgłupszym wyjściem).
Tygrys22
No juz lepiej juz logowanie dzaiła smile.gif teraz mam problem :

Użytkownik XXXXX, poprawnie zalogowany do systemu subskrypcji XXXXXXXX

Kliknij na poniższe linki w zależności do chcesz robić:

  • aby przejrzeć listę lub dodać/usunąć e-mail kliknij lista
  • aby wysłać wiadomość do wszystkich subskrybentów kliknij wyślij
  • aby się wylogować kliknij log out
I teraz jest tak ze gdy klikne np lista lub wyślij wylogowywujem nie :/
Co mam zrobić ?

list.inc
  1. <?
  2. $lista = file("db/lista.xh");
  3.  
  4. if(($action=="usun") && $email)
  5. {
  6. if($email<=count($lista))
  7. {
  8. $email--;
  9. $usuniety=$lista[$email];
  10. unset($lista[$email]);
  11.  
  12. $fd = fopen ("db/lista.xh", "w+");
  13. $i=0;
  14. while ($i<=count($lista)) {
  15. fwrite($fd, $lista[$i]);
  16. $i++;
  17. }
  18. fclose($fd);
  19.  
  20. echo "Usunięto e-mail: <font color=red><b>$usuniety</b></font>";
  21. }
  22. else { echo "<font color=red><b>Nie ma takiego e-maila w bazie $sub_name</b></font>"; }
  23.  
  24. }
  25.  
  26. if(($action=="dodaj") && $email)
  27. {
  28. $lista = implode("", file("db/lista.xh"));
  29. if(preg_match("/b$emailb/i", $lista)) $jest=1;
  30.  
  31. if(!$jest)
  32. {
  33. $fd = fopen ("db/lista.xh", "a");
  34. fwrite($fd, $email."\n");
  35. fclose($fd); 
  36.  
  37. echo "Dopisano e-mail: <font color=red><b>$email</b></font>";
  38. }
  39. else { echo "<font color=red><b>$email już figuruje na twojej liście $sub_name</b></font>"; }
  40.  
  41. }
  42.  
  43. $ile=count($lista);
  44. echo "<p>Lista aktywnych e-maili subskrypcji: <font color=red><b>$ile</b></font></p>";
  45.  
  46. if($ile<>0) { echo "
  47. <table width=60% align=\"center\">
  48. <tr><td width=5% valign=\"top\"><b>nr</b></td><td width=70% valign=\"top\"><b>e-mail</b> sortuj: <a href=\"?w=lista&h=$h&l=$l&type=n\">najnowsze</a> | <a href=\"?w=lista&h=$h&l=$l&type=o\">najstarsze</a></td><td width=25% valign=\"top\"><b>akcje</b></td></tr>";
  49.  
  50. $lista = file ("db/lista.xh");
  51. # domyślny format wyświetlania
  52. # najnowsze na górze
  53. if($type<>"o" || !$type) {
  54. $num=0;
  55. $ile=count($lista);
  56. while ($ile>0) { $ile--;
  57. echo "<tr><td width=5%>".($num+1)."</td><td width=70%><a href=\"mailto:$lista[$ile]\">$lista[$ile]</a> </td><td width=25%> <a href=\"?w=lista&h=$h&l=$l&action=usun&email=".($ile+1)."\">usuń</a></td></tr>"; 
  58.  $num++; }
  59. }
  60. # najstarsze na górze
  61. if($type=="o") {
  62. $num=0;
  63. while ($num<count($lista)) {
  64. echo "<tr><td width=5%>".($num+1)."</td><td width=60%><a href=\"mailto:$lista[$num]\">$lista[$num]</a> </td><td width=25%> <a href=\"?w=lista&h=$h&l=$l&action=usun&email=".($num+1)."&type=o\">usuń</a></td></tr>"; 
  65. $num++; }
  66. }
  67. echo "</table>";
  68. }
  69. else echo "<font color=red><b>W bazie $sub_name nie ma jeszcze żadnych e-mail!</b></font>";
  70. ?>
  71. <form name="form1" method="post" action="<? if($type=="o") echo "?w=lista&h=$h&l=$l&type=o"; else echo "?w=lista&h=$h&l=$l&type=n"; ?>">
  72. dodaj nowy e-mail:  
  73. <input type="text" name="email"> 
  74. <input type="hidden" name="action" value="dodaj">
  75. <input type="submit" name="Submit" value="Dodaj">
  76. </form>
bim2
daj tak pod _POST:
  1. <?php
  2. if(!isset($_POST['l']))
  3. {
  4. $l = $_GET['l'];
  5. $h = $_GET['h'];
  6. $w = $_GET['w'];
  7. $main = $_GET['main'];
  8. }
  9. ?>

PS. Nie wiem skąd masz ten skrypt, ale jest o dupę rozstrzaść. Używa Register globals ;/
Tygrys22
Wyszło mi cos takiego, teraz znowu nie moge sie zalogować:


  1. <?
  2. if(!isset($_POST['l'])) 
  3. { 
  4. $l = $_POST['l']; 
  5. $h = $_POST['h']; 
  6. $w = $_POST['w']; 
  7. $main = $_POST['main'];
  8. }
  9.  
  10. include("inc/konfig.inc");
  11.  
  12. if($pass) $hack=1;
  13. if($l && $h)
  14. {
  15. if($main && !$hack) $h=md5($h);
  16. if($h==$haslo && $l==$login) $pass=1; }
  17. if($main && $pass && !$hack) { echo "
  18. <p>Użytkownik <font color=red><b>$login</b></font>, poprawnie zalogowany do systemu subskrypcji 
  19. <font color=red><b>$sub_name</b></font></p>"; }
  20. if($w=="lista" && $pass && !$hack) include("inc/lista.inc");
  21. if($w=="wyslij" && $pass && !$hack) include("inc/wyslij.inc");
  22. if($pass && !$hack) { echo "
  23. <p>Kliknij na poniższe linki w zależności co chcesz robić:</p>
  24. <ul>
  25. <li>aby przejrzeć listę lub dodać/usunąć e-mail kliknij <b>&raquo; 
  26. <a href=\"./?w=lista&h=$h&l=$l\">lista</a> </b></li>
  27. <li>aby wysłać wiadomość do wszystkich subskrybentów kliknij 
  28. <b>&raquo; <a href=\"./?w=wyslij&h=$h&l=$l\">wyślij</a> </b> </li>
  29. <li>aby się wylogować kliknij
  30. <b>&raquo; <a href=\"./\">log out</a> </b> </li>
  31. </ul>";
  32.  }
  33. elseif(!$pass || $hack) { ?>
  34. <p>Proszę się zalogować do systemu!</p>
  35. <form name="form" method="post" action="./">
  36. <table width="80%" border="0" align="center">
  37. <tr>
  38. <td width="10%">login</td>
  39. <td width="90%"> 
  40. <input type="text" name="l" maxlength="35">
  41. <br>
  42. </td>
  43. </tr>
  44. <tr>
  45. <td width="10%">hasło</td>
  46. <td width="90%"> 
  47. <input type="password" name="h" maxlength="35">
  48. </td>
  49. </tr>
  50. <tr>
  51. <td width="10%">&nbsp;</td>
  52. <td width="90%"> 
  53. <input type="hidden" name="main" value="1">
  54. <input type="submit" name="Submit" value="Zaloguj">
  55. </td>
  56. </tr>
  57. </table>
  58. </form>
  59. <p><font color="#FF0000"><b>Uwaga!</b></font>
  60. <br>Jeśli jesteś administratorem 
  61. tej subskrypcji wejdĽ najpierw na stronę <b>&raquo; <a href="haslo.php">haslo.php</a></b> 
  62. wygeneruj string MD5, potem przejdĽ do pliku <b>inc/konfig.inc</b> 
  63. - wpisz ten string do zmiennej <u>$haslo</u>. 
  64. <p>Zmień także pozostałe zmienne, <u>$admin</u>, <u>$login</u>, 
  65. <u>$sub_name</u>, <u>$footer</u> - opis wszystkich zmiennych 
  66. znajdziej w pliku konfiguracyjnym.</p>
  67. <? } ?>
  68. <p>&nbsp;</p>
  69. </td>
  70. </tr>
  71. <tr> 
  72. <td class="srodek" bgcolor="#eeeeee"> 
  73. <p>&nbsp;</p>
  74. </td>
  75. </tr>
  76. </table>
  77. </td>
  78. </tr>
  79. </table>
  80. </td>
  81. </tr>
  82. </table>
  83. <? include("inc/footer.inc"); ?>
Qleer
Jest też drugie rozwiązanie (Jak zwykle szukam dziury w całym guitar.gif ) - Nie wiem czy masz włączone register_globals. Jeśli nie - przed skryptem dopisz ten kod:

  1. <?php
  2. if (ini_get('register_globals') != 1) {
  3. if ((isset($_POST) == true) && (is_array($_POST) == true)) extract($_POST, EXTR_OVERWRITE);
  4. if ((isset($_GET) == true) && (is_array($_GET) == true)) extract($_GET, EXTR_OVERWRITE);
  5. }
  6. ?>


I skrypt będzie działał jak ta lala winksmiley.jpg

Pozdrawiam.

#Edit
Przynajmniej powinien ... winksmiley.jpg

@down
Tak - czy teraz możesz się zalogować ?
Tygrys22
OK wielkie dzięki jeszcze raz. DZIAŁA smile.gif Jesteście boscy smile.gif ;D

Ah kurde sprawdziłem czy dochadza wiadomosci i tez kłopot ;/ pisze niby wysłane lecz nie dochadzi wiadomosc na @.

Oto pilk wyslij.inc wiec chyba w nim jest tez jakis błąd.
  1. <?
  2. echo "<p>Roześlij wiadomości do wszystkich aktywnych e-maili subskrypcji: <font color=red><b>$sub_name</b></font></p>";
  3. if($action=="send" && $temat && $tresc) {
  4. $temat = strtr($temat, "ˇąĆćĘꣳŃńÓ󌜏ĽŻż","AaCcEeLlNnOoSsZzZz");
  5. $tresc=stripslashes($tresc);
  6. $naglowki = "From: $sub_name <$admin>";
  7. if($typ=="html") {
  8. $naglowki .= "r\nMIME-Version: 1.0r\nContent-type: text/html; charset=iso-8859-2r\n";
  9. $footer = "<font color=red>".nl2br($footer)."</font>";
  10. $tresc = "<html><head><title>$temat</title></head><body><font face=\"Verdana\" size=\"2\">".nl2br($tresc)."</font></body></html>";
  11. $powered = $powered_html; }
  12.  
  13. $fd = fopen ("db/lista.xh", "r");
  14. while (!feof ($fd)) {
  15.  $do = fgets($fd, 4096);
  16.  $do = chop($do);
  17. # link umożliwiający wypisanie się z subskrypcji
  18.  $rem= "Chcesz się wypisać z $sub_name? Nic prostrzego kliknij:";
  19.  if($typ=="html") $rem.=" <b><a href=\"".$url."subskrypcja.php?email=".$do."&action=unsubscribe\">Usuń</a></b>";
  20.  else $rem.="\n".$url."subskrypcja.php?email=".$do."&action=unsubscribe";
  21.  mail($do,$temat,$tresc.$footer.$rem.$powered,$naglowki);
  22. }
  23. fclose ($fd);
  24. if($kopia) mail($admin,$temat,$tresc.$footer,$naglowki);
  25. if(typ<>"html") { $tresc=nl2br($tresc); $footer=nl2br($footer); }
  26. echo "<p><font color=red><b>Wysłane!</b></font></p><div class=\"tlo\"><br>temat: $temat<br><br>$tresc $footer</div>";
  27.  unset($temat,$tresc,$output);
  28. }
  29. elseif($action=="send" && (!$temat || !$tresc)) echo "<p><font color=red><b>Błąd!</b></font></p><p>Wypełnij wszystkie pola formularza!</p>";
  30.  
  31. $lista = file("db/lista.xh");
  32. $ile=count($lista);
  33. if($ile<>0) { ?>
  34. <form name="form" method="post" action="./?w=wyslij&action=send&<? echo "h=$h&l=$l"; ?>">
  35. <table width="90%" border="0" align="center">
  36. <tr> 
  37. <td width="20%">temat wiadomości:</td>
  38. <td width="80%"> 
  39. <input type="text" name="temat" maxlength="50" size="50" value="<? echo $temat; ?>">
  40. </td>
  41. </tr>
  42. <tr> 
  43. <td width="20%" valign="top">treść wiadomości:</td>
  44. <td width="80%"> 
  45. <textarea name="tresc" cols="50" rows="10"><? echo $tresc; ?></textarea>
  46. </td>
  47. </tr>
  48. <tr> 
  49. <td width="20%" valign="top">format wiadomości:</td>
  50. <td width="80%">
  51. <input type="radio" checked name="typ" value="plain">
  52. czysty tekst(obsługiwany przez wszystkie programy pocztowe)<br>
  53. <input type="radio" name="typ" value="html">
  54. HTML(niedostępny na niektórych starszych lub tekstowych programach pocztowych)</td>
  55. </tr>
  56. <tr> 
  57. <td width="20%">kopia dla admina:</td>
  58. <td width="80%">
  59. <input type="checkbox" name="kopia" value="1">
  60. TAK </td>
  61. </tr>
  62. <tr>
  63. <td width="20%">&nbsp;</td>
  64. <td width="80%"><input type="reset" name="Reset" value="Reset">
  65. &nbsp; &nbsp; &nbsp; 
  66. <input type="submit" name="Submit" value="Send">
  67. </td>
  68. </tr>
  69. </table>
  70. </form>
  71. <? } 
  72. else echo "<font color=red><b>W bazie $sub_name nie ma jeszcze żadnych e-mail!</b></font>";
  73. ?>
bim2
ja dodam, że pisałem
if(!isset($_POST['l']))
{
$l = $_GET['l'];
$h = $_GET['h'];
$w = $_GET['w'];
$main = $_GET['main'];
}
a nie
if(!isset($_POST['l']))
{
$l = $_POST['l'];
$h = $_POST['h'];
$w = $_POST['w'];
$main = $_POST['main'];
}
;]

EDIT:
Żadnych błędów? Jeśli mail() się nie wykrzacza to może masz to w spamie na skrzynce pocztowej, a jak nie to po prostu twój serwer nie może wysłać wiadomości.
Qleer
Jeśli nie ma błędów to po stronie skryptu WSZYSTKO JEST OK. Reszta zależy od serwera czyli sprawdź czy na twoim serwerze jest dostępna funkcja mail(); i czy twoja skrzynka nie zablokowała nadawcy emaila jako spamera (często tak jest jeśli dany serwer wysyła duże ilości emaili).
Tygrys22
le kawałek skryptu ktory przekazał mi Qleer działa i normalnie moge przechodzic do tych 2 zakładek.

  1. <?php
  2. if (ini_get('register_globals') != 1) {
  3. if ((isset($_POST) == true) && (is_array($_POST) == true)) extract($_POST, EXTR_OVERWRITE);
  4. if ((isset($_GET) == true) && (is_array($_GET) == true)) extract($_GET, EXTR_OVERWRITE);
  5. }
  6. ?>



Ten od Ciebie cos mi szwankował i nie mogłem sie zalogować :/ A w tym u gory tylko poprostu wysyłac wiadomosci nie dochodza i nie ma ich w spamie a tak wsyztko ok.

Ale kawałek skryptu ktory przekazał mi Qleer działa i normalnie moge przechodzic do tych 2 zakładek.

  1. <?php
  2. if (ini_get('register_globals') != 1) {
  3. if ((isset($_POST) == true) && (is_array($_POST) == true)) extract($_POST, EXTR_OVERWRITE);
  4. if ((isset($_GET) == true) && (is_array($_GET) == true)) extract($_GET, EXTR_OVERWRITE);
  5. }
  6. ?>



Ten od Ciebie cos mi szwankował i nie mogłem sie zalogować :/ A w tym u gory tylko poprostu wysyłac wiadomosci nie dochodza i nie ma ich w spamie a tak wsyztko ok.
Qleer
Spróbuj wysłać wiadomość na gmail.com ponieważ z doświadczenia wiem że takie skrzynki jakie posiada np: wp.pl działają dosyć ... wolno i wiadomości mogą iść około kilku godzin a nawet 2óch dni. Myślę, że to już wina skrzynki/serwera - skrypt jest dobry.
Tygrys22
Ok rzeczywiscie wysyła bez problemu na gmail.com smile.gif
NIewiem jeszcze czemu plik db/lista.xh nie pobiera danych z bazy mysQL w ktorej zapisuja sie @ podane przez uzytkownikow w subskrpcji.

TO JEST PLIK LISTA.inc nie wiem czy to on jest za to odpowiedzialny ?

  1. <?
  2. $lista = file("db/lista.xh");
  3.  
  4. if(($action=="usun") && $email)
  5. {
  6. if($email<=count($lista))
  7. {
  8. $email--;
  9. $usuniety=$lista[$email];
  10. unset($lista[$email]);
  11.  
  12. $fd = fopen ("db/lista.xh", "w+");
  13. $i=0;
  14. while ($i<=count($lista)) {
  15. fwrite($fd, $lista[$i]);
  16. $i++;
  17. }
  18. fclose($fd);
  19.  
  20. echo "Usunięto e-mail: <font color=red><b>$usuniety</b></font>";
  21. }
  22. else { echo "<font color=red><b>Nie ma takiego e-maila w bazie $sub_name</b></font>"; }
  23.  
  24. }
  25.  
  26. if(($action=="dodaj") && $email)
  27. {
  28. $lista = implode("", file("db/lista.xh"));
  29. if(preg_match("/b$emailb/i", $lista)) $jest=1;
  30.  
  31. if(!$jest)
  32. {
  33. $fd = fopen ("db/lista.xh", "a");
  34. fwrite($fd, $email."\n");
  35. fclose($fd); 
  36.  
  37. echo "Dopisano e-mail: <font color=red><b>$email</b></font>";
  38. }
  39. else { echo "<font color=red><b>$email już figuruje na twojej liście $sub_name</b></font>"; }
  40.  
  41. }
  42.  
  43. $ile=count($lista);
  44. echo "<p>Lista aktywnych e-maili subskrypcji: <font color=red><b>$ile</b></font></p>";
  45.  
  46. if($ile<>0) { echo "
  47. <table width=60% align=\"center\">
  48. <tr><td width=5% valign=\"top\"><b>nr</b></td><td width=70% valign=\"top\"><b>e-mail</b> sortuj: <a href=\"?w=lista&h=$h&l=$l&type=n\">najnowsze</a> | <a href=\"?w=lista&h=$h&l=$l&type=o\">najstarsze</a></td><td width=25% valign=\"top\"><b>akcje</b></td></tr>";
  49.  
  50. $lista = file ("db/lista.xh");
  51. # domyślny format wyświetlania
  52. # najnowsze na górze
  53. if($type<>"o" || !$type) {
  54. $num=0;
  55. $ile=count($lista);
  56. while ($ile>0) { $ile--;
  57. echo "<tr><td width=5%>".($num+1)."</td><td width=70%><a href=\"mailto:$lista[$ile]\">$lista[$ile]</a> </td><td width=25%> <a href=\"?w=lista&h=$h&l=$l&action=usun&email=".($ile+1)."\">usuń</a></td></tr>"; 
  58.  $num++; }
  59. }
  60. # najstarsze na górze
  61. if($type=="o") {
  62. $num=0;
  63. while ($num<count($lista)) {
  64. echo "<tr><td width=5%>".($num+1)."</td><td width=60%><a href=\"mailto:$lista[$num]\">$lista[$num]</a> </td><td width=25%> <a href=\"?w=lista&h=$h&l=$l&action=usun&email=".($num+1)."&type=o\">usuń</a></td></tr>"; 
  65. $num++; }
  66. }
  67. echo "</table>";
  68. }
  69. else echo "<font color=red><b>W bazie $sub_name nie ma jeszcze żadnych e-mail!</b></font>";
  70. ?>
  71. <form name="form1" method="post" action="<? if($type=="o") echo "?w=lista&h=$h&l=$l&type=o"; else echo "?w=lista&h=$h&l=$l&type=n"; ?>">
  72. dodaj nowy e-mail:  
  73. <input type="text" name="email"> 
  74. <input type="hidden" name="action" value="dodaj">
  75. <input type="submit" name="Submit" value="Dodaj">
  76. </form>


Wie ktoś jak to wykonać questionmark.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.