Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt nie łaczy sie z baza i nie wysyla maila
Forum PHP.pl > Forum > Przedszkole
peklo
Witam
Mam skrypt , który odpowiada za wygenerowanie i wyłanie hasła na maila. Na komputerze lokalnym skrypt działa normalnie ale jak go wrzuciłem na az.pl to podczas wysyłania maila pojawia sie błąd wykonania skryptu.
Wyświetla sie cos takiego:
"blad w get single shot
w zapytaniu: SELECT username FROM USERS WHERE mail='qweqw@op.pl'"

plik function.php

  1. <?php
  2. class funkcje{
  3. function connect_bd(){
  4. $result= new mysqli('localhost', 'root', 'peklo11', 'tmpraca');
  5. if (mysqli_connect_errno() === 0){
  6. $result -> query("SET NAMES 'utf8'");
  7. if (!$result) return false;
  8. else { return $result; }
  9. }
  10. }
  11.  
  12. public function get_single_shot($quest){
  13. $connect=$this->connect_bd();
  14. $result=$connect->query($quest);
  15. if (!$result){echo "blad w get single shot <br> w zapytaniu: ".$quest."<br>"; return false;}
  16. if ($result->num_rows>0)
  17. {
  18. $result_array=@$result->fetch_assoc();
  19. return $result_array;
  20. }
  21. else {
  22. return 0;
  23. }
  24. }
  25.  
  26. }
  27. ?>


i skrypt resetpasswd.php

  1. <?php
  2. include_once 'function.php';
  3. if (isset($_POST["wyslane"]))
  4. {
  5. $mail = htmlspecialchars(stripslashes(strip_tags(trim($_POST["mail"]))), ENT_QUOTES);
  6. $get=new funkcje();
  7. if (!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $mail)) {
  8. $blad=1;
  9. echo '<span class="style11">Proszę wprowadzic poprawnie adres mail.</span>';
  10. } else {
  11. $sql1="SELECT username FROM USERS WHERE mail='$mail'";
  12. $result1=$get->get_single_shot($sql1);
  13.  
  14. if (isset($result1['username'])) {
  15. $blad=0;
  16.  
  17. }else {
  18. echo '<span class="style11">Konto o podanym adresie e-mail nie istnieje!</span>';
  19. $blad=1;
  20. }
  21. }
  22. if ($blad == 0) {
  23. $sql2="select active_key, username from USERS where mail='$mail'";
  24. $result=$get->get_single_shot($sql2);
  25.  
  26. if ($result) {
  27. $list = "Witaj! <br>
  28. <a href='http://aa.pl/kod/veryfication.php?resetpaswd=yes&amp;user=".$result['username']."&amp;active_key=".$result['active_key']."' target='_blank'>http://aa.pl/kod/veryfication.php?resetpaswd=yes&amp;user=".$result['username']."&amp;active_key=".$result['active_key']."</a>";
  29. $headers="From: <m.aa@op.pl>".PHP_EOL;
  30. $headers.= 'MIME-Version: 1.0' .PHP_EOL;
  31. $headers.="Content-type: text/html; charset=utf-8".PHP_EOL;
  32. $headers.="X-Mailer: PHP/". phpversion();
  33. if(mail($mail, "Ustawianie nowego hasla", $list,$headers)){
  34. header('Location: <a href="http://aa.pl/index.php?wyslane=1&#39%3b%29;" target="_blank">http://aa.pl/index.php?wyslane=1');</a>
  35. $ok=1;
  36. }
  37. else {
  38. echo'<span class="style11">Blad!! - skontaktuj sie z administratorami serwisu.</span>';
  39. }}}}
  40. if($ok!=1){
  41. ?>
  42. <form class="cmxform" id="signupForm" method="post" action="nowe_haslo.php" style='display: inline'>
  43. <input type="hidden" name="wyslane" value="TRUE" />
  44. <input type="text" class='style7' id="mail" maxlength="30" required name="mail" />
  45. <input type="submit" class="przycisk" value="Wyślij" />
  46. </form>
  47. <?php
  48. }
  49. ?>
nospor
No ale wyswietlaj blad bazy a nie nic nie mowiac tekst.....

Poza tym nadawaj normalne tytuly. Bo kazdy tutaj ma problem ze skryptem
Kshyhoo
Jak poprawnie zatytułować wątek - dostosuj, inaczej zamknę.
peklo
nie wiem czy dobrze myśle ale chodzi może o połączenie poprzez mysqli?

chodzi o to że jak w bazie nie ma maila którego wpisujemy i probujemy wysłać to wyskakuje komunikat z email nie istnieje. Natomiast jak mail jest w bazie to skrypt powinien wysłać maila ale tego nie robi. Tak jakby nie łączył sie z bazą - ale na lokalnym komputerze działa ok

KTOS POMOŻE!!!!!!!!!
Turson
Już nospor dał podpowiedź, żebyś wyświetlił błąd mysqli. Spróbuj i wróć na forum z błędem
peklo
Nie wiem czy pisze jasno czy NIE ale juz napisałem wcześniej jaki mi wyskakuje błąd w formularzu, więc napisze jeszcze raz.
"blad w get single shot w zapytaniu: SELECT username FROM USERS WHERE mail='qweqw@op.pl'"

To mi się wyświetla jak wpiszę maila który jest w bazie. Skrypt powinien wysłać na ten adres maila a wywala taki błąd
markuz
"błąd mysqli" != "blad w get single shot w zapytaniu: SELECT username FROM USERS WHERE mail='qweqw@op.pl"

Użyj mysqli_error po wykonaniu zapytania i wyświetl jego zawartość.
peklo
za tym zapytaniem

$sql1="SELECT username FROM USERS WHERE mail='$mail'";

$result1=$get->get_single_shot($sql1);

dałem cos takiego nie wiem czy dobrze zresztą i nic. Wyświetla to co wczesniej

if (!$result1) {
printf("Errormessage: %s\n", $get->error);
}
Turson
Wrzuć to do klasy, dokładniej metody komunikującej się z bazą
markuz
Zamiast:
  1. if (!$result){echo "blad w get single shot <br> w zapytaniu: ".$quest."<br>"; return false;}

Daj:
  1. if(!$result)
  2. {
  3. echo "Error: ".$connect->error;
  4. return false;
  5. }
peklo
oooo wreszcie wyskoczył błąd z tabeląsmile.gif

Error: Table 'cxr86679_tmpraca.USERS' doesn't exist

tylko terza nie mogę dojść coo i jak bo tabele users mam i baza danych to :cxr86679_tmpraca
Turson
Bo masz tabelę users a w zapytaniu piszesz USERS?
peklo
wiem juz do tego doszedłem:)
Dzięki za pomoc
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.