Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bledy przy wysylaniu maila
Forum PHP.pl > Forum > PHP
dareckiphp
:?: 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
[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
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
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
kossa
$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
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
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
[php:1:d2a8f3e6ca]<?php
$_POST['$uzytkownik'];
?>[/php:1:d2a8f3e6ca]

a nie czasem tak?

[php:1:d2a8f3e6ca]<?php
$_POST['uzytkownik'];
?>[/php:1:d2a8f3e6ca]
KaMeLeOn
[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
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
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
Musisz jeszcze dać w definicji funkcji:
[php:1:52a7a1b8b9]<?php
global $_POST;
?>[/php:1:52a7a1b8b9]
KaMeLeOn
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
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
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.