Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Bledy przy wysylaniu maila
dareckiphp
post
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]
Go to the top of the page
+Quote Post
KaMeLeOn
post
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
Go to the top of the page
+Quote Post
dareckiphp
post
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
Go to the top of the page
+Quote Post
KaMeLeOn
post
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... smile.gif


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
kossa
post
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
Go to the top of the page
+Quote Post
KaMeLeOn
post
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
Go to the top of the page
+Quote Post
dareckiphp
post
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.
Go to the top of the page
+Quote Post
spenalzo
post
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]


--------------------

Go to the top of the page
+Quote Post
KaMeLeOn
post
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
Go to the top of the page
+Quote Post
kossa
post
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 :*
Go to the top of the page
+Quote Post
dareckiphp
post
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]
Go to the top of the page
+Quote Post
spenalzo
post
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]


--------------------

Go to the top of the page
+Quote Post
KaMeLeOn
post
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
Go to the top of the page
+Quote Post
dareckiphp
post
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.
Go to the top of the page
+Quote Post
KaMeLeOn
post
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
Go to the top of the page
+Quote Post
dareckiphp
post
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?
Go to the top of the page
+Quote Post
spenalzo
post
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?


--------------------

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:16