Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Co robię źle ? Instalowanie skryptu php - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Co robię źle ? Instalowanie skryptu php (/thread-co-robie-zle-instalowanie-skryptu-php)



Co robię źle ? Instalowanie skryptu php - milanista7 - 18-09-2009

Cześć, mam problem z instalacją skryptu kontaktu mailowego w php.
Nie wiem co robię źle że skrypt nie działa - tzn wszystko na stronie jest ok i formularz działa, potem jest komunikat że wiadomość wysłana . Ale nic nie dochodzi Sad

To umieściłem w HEAD działu kontakt.html ( czyli tam gdzie mam ten formularz)

Kod:
<style type="text/css">
body {
    margin:50px 0px; padding:0px;
    text-align:center;
    }
    
#contactarea {
    width:350px;
    margin:0px auto;
    text-align:left;
    padding:15px;
    border:1px solid #333;
    background-color:#b9e58b;
    font-weight: bold;
    font-family: Verdana, Arial;
    font-size: 12px;
}

#inputbox {
    border: 1px solid #000;
    width: 180px;
    padding: 2px;
    font-weight: bold;
    font-family: Verdana, Arial;
    font-size: 12px;
}

#inputlabel {
    font-weight: bold;
    font-family: Verdana, Arial;
    font-size: 12px;

}

#textarea {
    border: 1px solid #000;
    padding: 2px;
    font-weight: bold;
    font-family: Verdana, Arial;
    font-size: 12px;
    width: 300px;
}

</style>

<script language="javascript">

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sendemail() {
    var msg = document.contactform.msg.value;
    var name = document.contactform.name.value;
    var email = document.contactform.email.value;
    var subject = document.contactform.subject.value;
    document.contactform.send.disabled=true;
    document.contactform.send.value='Wysyłanie...';

    http.open('get', 'contact.php?msg='+msg+'&name='+name+'&subject='+subject+'&email='+email+'&action=send');
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
        
        }
    }
}
</script>

Tak jak kazał autor tego skryptu w instrukcjach.
A o to kod skryptu contact.php ( jest w osobnym pliku)
Kod PHP:
<?php
/*

Author: Andrew Walsh
Date: 30/05/2006
Codewalkers_Username: Andrew


*/

$to "TUTAJ JEST MÓJ ADRES E-MAIL"//This is the email address you want to send the email to
$subject_prefix ""//Use this if you want to have a prefix before the subject

if(!isset($_GET['action']))
{
die(
"You must not access this page directly!"); //Just to stop people from visiting contact.php normally
}

/* Now lets trim up the input before sending it */

$name trim($_GET['Imię']); //The senders name
$email trim($_GET['email']); //The senders email address
$subject trim($_GET['temat']); //The senders subject
$message trim($_GET['wiadomosc']); // Te cztery pozycje sobie skonfigurowałem, właśnie nie wiem czy można .

mail($to,$subject,$message,"From: ".$email.""); //a very simple send

echo 'contactarea|Dziękujemy '.$name.', twój e-mail został wysłany'//now lets update the "contactarea" div on the contact.html page. The contactarea| tell's the javascript which div to update.
?>
No i te dwa pliki ( kontakt.html i contact.php ) umieściłem na serwerze. Po czym ze strony próbowałem wysłać maila. Niestety bezskutecznie. Trzy razy próbowałem i nic. nie doszło.

aha jest jeszcze to. nie wiem czy to coś pomoże Tongue
Kod:
<div id="contactarea">
<div align="center"><form name="contactform" id="contactform">
<span id="inputlabel">Imię: </span> &nbsp;&nbsp;<input type="text" name="name" id="inputbox"><br /><br />
<span id="inputlabel">E-mail:</span> &nbsp;&nbsp;&nbsp;<input type="text" name="email" id="inputbox"><br /><br />
<span id="inputlabel">Temat</span> <input type="text" name="subject" id="inputbox"><br /><br />
<span id="inputlabel">Wiadomość:</span><br />
<textarea name="msg" rows="10" id="textarea"></textarea>
<br /><br />
<input type="button" a class="art-button" value="Wyślij!" name="send" onclick="sendemail();" id="submitbutton">



RE: Co robię źle ? Instalowanie skryptu php - DoGeR - 18-09-2009

Kod PHP:
$name trim($_GET['name']); //The senders name
$email trim($_GET['email']); //The senders email address
$subject trim($_GET['subject']); //The senders subject
$message trim($_GET['msg']); // Te cztery pozycje sobie skonfigurowałem, właśnie nie wiem czy można . 

Sprawdź w SPAMie, może tam trafiła wiadomość, lub też poczekaj, już na forum była jedna osoba której wiadomość na drugi dzień doszła.


RE: Co robię źle ? Instalowanie skryptu php - milanista7 - 18-09-2009

no niestety nic nie doszło. spamu w ogóle nie mam. ktoś ma jakiś pomysł? może sugestie ? ; d


RE: Co robię źle ? Instalowanie skryptu php - Labsta.com - 18-09-2009

Tak jak mówi DoGeR było to wałkowane, np. w tym temacie:
http://www.webmastertalk.pl/jak-zrobic-formularz-kontaktowy-na-stronie-t-260.html
Po drugie to kod, który napisał DoGeR.
Po trzecie jeśli wkleiłeś wszytko to forma nie jest zamknięta.
Po czwarte wypadałoby dać akcje do formy
Kod:
<form name="contactform" id="contactform" action="GET" >



RE: Co robię źle ? Instalowanie skryptu php - milanista7 - 18-09-2009

No niby wszystko jest ok, teraz nawet po wysłaniu w komunikacie "Dziękujemy..." pojawia się imię z formularza, ale maile ciągle nie dochodzą Sad
Czy może mieć to jakiś związek z polem "Email" ?
Bo w końcu jak można wysłać e-mail podając swój, z innej strony ? Nie znam się na php Sad


RE: Co robię źle ? Instalowanie skryptu php - Labsta.com - 18-09-2009

Zrób sobie plik test.php
Kod:
<?php
mail("[email protected]", "temat", "wiadomosc", "From: [email protected]\r\n");
?>
I odpal z przeglądarki oczywiście w nobody... daj sówj mail.
Sprawdzisz czy działa ci fukcja mail, bo jeśli to darmowy hosting to może nie działać.
Skrypt którego używasz nie sprawdza czy mail został wsyłany, lecz tak czy siak daje komunikat, że wsyłano.
Spróbuj podmienić odpowidni fragment na to:
Kod:
if (mail($to, $subject, $message, "From: ".$email."\r\n")){
echo 'contactarea|Dziękujemy '.$name.', twój e-mail został wysłany';
//now lets update the "contactarea" div on the contact.html page. The contactarea| tell's the javascript which div to update.
}



RE: Co robię źle ? Instalowanie skryptu php - milanista7 - 18-09-2009

zrobiłem test.php , zmieniłem example na swój adres mailowy i odpaliłem przez przeglądarke. i nic pusta strona.

a po dodaniu if ten komunikat o dziękowaniu sie nie wczytuje.


RE: Co robię źle ? Instalowanie skryptu php - Labsta.com - 19-09-2009

Jak masz darmowy hosting to sprawdź czy nie ma zablokowanej opcji mail, bo na 95% jest zablokowana i nie da rady nic zrobić.
No to poszukaj tam odpowiedzi ja w minutę znalazłem temat: http://www.000webhost.com/forum/web-programming/11393-php-mail-not-sending.html. Znajdziesz tam mase tematów o formularzach kontaktu.


RE: Co robię źle ? Instalowanie skryptu php - milanista7 - 14-10-2009

Ok. Zaczęło działać . Chcę tam mieć jeszcze coś takiego:
<select name="rodzaj">
<option>Wybór 1</option>
<option>Wybór 2</option>
</select>
Jak to wplecić w kod ?