![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
:?: Witam, mam prosbe o pomoc.
Funkcja ponizej ma wysylac e-mail do uzytkownika ktory podal swoj login i adres e-mailowy. Niestety tego nie robi. W tej chwili wyrzuca blad "Undefined index: $uzytkownik on line -> $_POST['$uzytkownik'] = addslashes($_POST['$uzytkownik']);". Problem w tym ze nawet jakby go poprawic to i tak mail nie idzie nigdzie na skrzynke, choc dane oczywiscie podczas tworzenia nowego klienta sa wpisywane do bazy. Pomozcie, bo leb mi juz peka od moich beznadziejnych pomyslow rozwiazania tego wezla. [php:1:d0fa1a9d90]<?php function wyslij_haslo($uzytkownik, $haslo) { $pass = rand(); $hash = base64_encode($pass); $query = mysql_query ("SELECT email FROM osoba WHERE login='$uzytkownik'"); $wynik = mysql_query("$query"); $pass = addslashes($pass); $_POST['$uzytkownik'] = addslashes($_POST['$uzytkownik']); $from = 'Test <xxx@xxx.pl>'; $subject = "Potwierdzenie rejestracji"; $body ="Zarejestrowales sie.<br> Twoj login: ".$_POST['$uzytkownik']." <br> Haslo: $haslo <br>"; if ($wynik and email($_POST[email],$subject,$body,"From: xxx")) return 1; else return 0; } ?>[/php:1:d0fa1a9d90] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:999a5b324a]<?php
// ... if ($wynik and email($_POST[email],$subject,$body,"From: xxx")) return 1; else return 0; } // ... ?>[/php:1:999a5b324a] Nie ma funkcji email(), jest [manual:999a5b324a]mail()[/manual:999a5b324a] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
No niezle, zlepy jestem albo co? Bardzo dziekuje. Gdybyscie mogli mnie jeszcze oswiecic dlaczego wyskakuje ten blad w linii
[php:1:b45d0d3468]<?php $_POST['$uzytkownik'] = addslashes($_POST['$uzytkownik']); ?>[/php:1:b45d0d3468] Moglbym oczywiscie zrezygnowac ze wszystkich $pass ale nie wiem czy to dobry pomysl. Dzieki za pomoc |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat [...] Gdybyscie mogli mnie jeszcze oswiecic dlaczego wyskakuje ten blad w linii [...]
Bo $_POST['uzytkownik'] zostanie utworzony dopiero po submicie formularza, w innym wypadku nie istnieje... Pocztaj na forum php Pro o wykorzystywaniu funkcji isset()... A w kodzie zrób tak... [php:1:98d3de0031]<?php $_POST['uzytkownik'] = isset($_POST['uzytkownik']) ? addslashes($_POST['uzytkownik']) : ''; ?>[/php:1:98d3de0031] + dla spenalzo za spostrzegawczość... literówka... ![]() -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
$user = $_POST['$uzytkownik'];
$user = addslashes($user); bo tam masz zmienna z formularza ($_POST) i nie mozesz do niej przypisac w ten sposob nowej wartosci, tak jak napisalem powyzej powinno byc oki |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat bo tam masz zmienna z formularza ($_POST) i nie mozesz do niej przypisac w ten sposob nowej wartosci
Co ty za bzdury nabijasz chłopakowi do głowy, możesz przypisywać bez problemu... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Znowu pomoglo, ale maile i tak sie nie wysylaja.
[php:1:0b2ca807a8]<?php if ($wynik and mail($email,$subject,$body,"From: xxx")) ?>[/php:1:0b2ca807a8] Dane zapisywane sa w bazie ale mail nie dochodzi. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
[php:1:d2a8f3e6ca]<?php
$_POST['$uzytkownik']; ?>[/php:1:d2a8f3e6ca] a nie czasem tak? [php:1:d2a8f3e6ca]<?php $_POST['uzytkownik']; ?>[/php:1:d2a8f3e6ca] -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:30b6dcab79]<?php
$query = mysql_query ("SELECT email FROM osoba WHERE login='$uzytkownik'"); $wynik = mysql_query("$query"); ?>[/php:1:30b6dcab79] A co to ma znaczyć? Podwójne użycie mysql_query()? Wynik zczytuj funkcjami typu mysql_fetch_array(), mysql_num_rows() itd, itp -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:d7b86376ff]<?php
$_POST['$uzytkownik']; ?>[/php:1:d7b86376ff] a nie czasem tak? [php:1:d7b86376ff]<?php $_POST['uzytkownik']; ?>[/php:1:d7b86376ff] pewnie ze tak, nie zauwazylem "$" - dzieki :* |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Kod wyglada pieknie i ukazuje w calosci moje braki.
Efekt -> mail nadal sie nie wysyla choc nie ma bledow. [php:1:d71e0a6598]<?php function wyslij_haslo($uzytkownik, $haslo) { $pass = rand(); $hash = base64_encode($pass); $query = mysql_query ("SELECT email FROM osoba WHERE login='$uzytkownik'"); $wynik = mysql_num_rows($query); $pass = addslashes($pass); $_POST['uzytkownik'] = isset($_POST['uzytkownik']) ? addslashes($_POST['uzytkownik']) : ''; $from = 'Test<xxx@xxx.pl>'; $subject = "Potwierdzenie rejestracji"; $body ="Zarejestrowales sie.<br> Haslo: $haslo <br>"; if ($wynik and mail($_POST[email],$subject,$body,"From: xxx")) return 1; else return 0; } ?>[/php:1:d71e0a6598] |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Musisz jeszcze dać w definicji funkcji:
[php:1:52a7a1b8b9]<?php global $_POST; ?>[/php:1:52a7a1b8b9] -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Musisz jeszcze dać w definicji funkcji:
[php:1:9598bb24ed]<?php global $_POST; ?>[/php:1:9598bb24ed] Nie musisz... Kontroluj zmienna $wynik, zobacz co zwraca. Czy na pewno uzytkownik którego podajesz jest w bazie? -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
no way! Globalne mam wlaczone, poza tym nawet z deklaracja
Kod global $_POST nic sie nie zmienia, czego sie spodziewalem.
Jesli chodzi o uzytkownika to jest on wpisywany wlasnie z formularza do bazy. Potem wywolywana jest funkcja. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To po co używasz tablicy $_POST skoro dane masz podane na tacy...
[php:1:e0ed1a0bc5]<?php function wyslij_haslo($uzytkownik) { $pass = rand(); $hash = base64_encode($pass); $query = mysql_query ("SELECT email FROM osoba WHERE login='$uzytkownik'"); if( $wynik = mysql_fetch_assoc($query) ) { $pass = addslashes($pass); $from = 'Test<xxx@xxx.pl>'; $subject = "Potwierdzenie rejestracji"; $body ="Zarejestrowales sie.<br /> Login: $uzytkownik<br /> Haslo: $haslo <br />"; if( mail($wynik['email'], $subject, $body, "From: xxx") ) { return 1; } } return 0; } ?>[/php:1:e0ed1a0bc5] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Na poczatku robilem bez POSTA.
Po twoich sugestiach nadal nie wysyla sie e-mail. Czy moze cos dodatkowo trzeba powlaczac? Jestem juz tym zmeczony i chyba przestawie sie na ASP albo zaczne lepic z gliny. Masz jeszcze jakies pomysly? |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
To ja proponuję zrobić coś takiego:
[php:1:41aa623ed4]<?php mail("moj@email","test","test"); ?>[/php:1:41aa623ed4] i wstaw swój email. Jeżeli nie otrzymasz maila, to znaczy, że serwer ma zablokowane wysyłanie emaili. A może wysyłasz te maile z localhosta bez serwera pocztowego? -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:16 |