Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w kodzie newslettera
Forum PHP.pl > Forum > Przedszkole
neneth
Witam, mam problem z kodem newslettera. Kod znalazłem w Internecie, ale okazało się, że wyświetla się błąd kiedy próbuję się zapisać do subskrybcji. Proszę o pomoc. O to ten kod:
<?php
include('Mail.php');
function sendmail($mail,$first) {
$res = mysql_query("SELECT token FROM newsletter where adres = \"".$mail."\" ");
$token = mysql_result($res,0);

$msgBody = "Witaj w systemie newsletter portalu ......................................pl! Wysyłamy do Ciebie ten e-mail, ponieważ wyraziłeś zainteresowanie naszym portalem oraz informacjami w nim zawartymi. Życzymy przyjemnej lektury portalu.
<br>
Redakcja portalu www.............................pl
<br>
Aby potwierdzić swój adres email kliknij w poniższy link do przeglądarki:
http://www...................................ken=$token
\n
\n
Jeśli to nie Ty zapisywałeś się w systemie newsletter po prostu zignotuj tą wiadomość.
\n
\n
";
$msgBody.="Prosimy nie odpowiadać na tą wiadomość, ponieważ została ona wygenerowana automatycznie";
$msgBody = wordwrap($msgBody, 70);
$headers['From'] = 'newsletter@..............................a.com.pl';
$headers['To'] = $mail;
$headers['Subject'] = "System newsletter serwisu www....................................................pl";
$headers['Content-type'] = "text/plain; charset=utf-8";

$params = array(
"host"=>"localhost",
"port"=>25,
"auth"=>true,
"username"=>".....................",
"password"=>".............................",
);


$mail_object =& Mail::factory('smtp', $params);
$mail_object->send($mail, $headers, $msgBody);

if (PEAR::isError($mail_object)) {
die($mail_object->getMessage());
}
else {
echo "<hr><br>Potwierdzenie mailowe zostało przesłane";
if ($first ===false)
echo " ponownie";
echo ".";
}

}

if (!isset($_POST['mail'])){
echo ("Brak maila!");
exit;
}
$normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$";
if (!eregi($normal, $_POST['mail'])) {
echo("Niepoprawny adres email");
exit;
}
$mail = $_POST['mail'];
if ($_POST['akcja']=='add')
$akcja = 'add';
else if ($_POST['akcja']=='del')
$akcja = 'del';
else{
echo ("błąd");
exit;
}

$sql = mysql_connect [localhost] , [..........................] , [....................] ; /*tu gdzieś pokazuje błąd*/
mysql_select_db [....................................] ;


if ($akcja == 'del') {
$res = mysql_query("DELETE FROM newsletter WHERE adres='".$mail."'");
if (mysql_affected_rows($sql)=='1') {
echo ("adres usunięty");
exit;
}
else {
echo ("Brak adresu w bazie");
exit;
}
}

if ($akcja == 'add') {
$token = sha1(time());
$res = @mysql_query("INSERT INTO newsletter(adres,token) VALUES (\"".$mail."\", \"".$token."\") ");
if ($res) {
sendmail($mail,true);
}
else {
$res = mysql_query("SELECT potwierdzony FROM newsletter where adres = \"".$mail."\" ");
$potw = mysql_result($res,0);
if ($potw == "t") {
echo("Adres już istnieje w bazie i jest powierdzony");
}
else if ($potw == "n") {
sendmail($mail,false);
}
}
}

?>
nospor
1) Zanim napiszesz kolejny post, zastosuj sie do podanych tu porad:
Temat: Jak poprawnie zada pytanie
2) Uzywaj BBCODE
3)
Cytat
ale okazało się, że wyświetla się błąd
Czyli co się wyswietla?
neneth
Pojawia się następujący błąd

Parse error: syntax error, unexpected '[' in /zapisz.php on line 69

Prosiłbym o naprawienie tego błędu. Z góry dziękuję za odpowiedź.
Kojak
Zobacz w manualu php jak wygląda funkcja mysql_connect i jak przekazuje się argumenty do funkcji (nawiasy zwykłe a nie kwadratowe).
nospor
$sql = mysql_connect [localhost] , [..........................] , [....................] ;
Yyyy.... nie ma czegos takiego, jest:
$sql = mysql_connect('twojhost','twojuser','twojehaslo');

Analogicznie to:
mysql_select_db [....................................] ;
neneth
Znów mam ten sam błąd, a zastosowałam poprawki:


$sql = mysql_connect ['localhost','smuklasylwetka','5maj1982'];
mysql_select_db ['smuklasylwetka'];
nospor
nie odrozniasz nawiasu kwadratowego [ od normalnego ( ?
Jaki my ci pisalismy? Kwadratowy czy normalny.....
neneth
Przepraszam za kłopot, to moje niedopatrzenie. Już wszystko działa. Mam tylko jeszcze pytanie, co trzeba dopisać, żeby komunikat: Potwierdzenie mailowe zostaĹ? przesĹ?ne ponownie. po potwierdzeniu subskrybcji ukazywał się w divie (teraz komunikat ukazuje się w nowym oknie, a to źle wygląda), w którym mam formularz newslettera? Proszę o jakie wskazówki, to dla mnie bardzo ważne.
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.