dareckiphp
16.07.2003, 21:45:00
:?: 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]
KaMeLeOn
16.07.2003, 21:51:50
[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]
dareckiphp
16.07.2003, 21:59:55
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
KaMeLeOn
16.07.2003, 22:06:40
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...
kossa
16.07.2003, 22:07:03
$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
KaMeLeOn
16.07.2003, 22:11:24
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...
dareckiphp
16.07.2003, 22:16:03
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.
spenalzo
16.07.2003, 22:17:42
[php:1:d2a8f3e6ca]<?php
$_POST['$uzytkownik'];
?>[/php:1:d2a8f3e6ca]
a nie czasem tak?
[php:1:d2a8f3e6ca]<?php
$_POST['uzytkownik'];
?>[/php:1:d2a8f3e6ca]
KaMeLeOn
16.07.2003, 22:19:32
[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
kossa
16.07.2003, 22:22:08
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 :*
dareckiphp
16.07.2003, 22:36:33
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]
spenalzo
16.07.2003, 22:41:07
Musisz jeszcze dać w definicji funkcji:
[php:1:52a7a1b8b9]<?php
global $_POST;
?>[/php:1:52a7a1b8b9]
KaMeLeOn
16.07.2003, 22:44:12
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?
dareckiphp
16.07.2003, 22:45:20
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.
KaMeLeOn
16.07.2003, 22:59:05
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]
dareckiphp
16.07.2003, 23:09:36
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?
spenalzo
16.07.2003, 23:43:03
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?
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.