Formularz wielopolowy? i wysyłka

0

Witam was serdecznie. Potrzebuję jeden prosty skrypt. Nigdy nie miałem zdolności do php, a w dodatku ostatnio sprzedałem książkę vademecum o php koledze który wyjechał do anglii. Szukam informacji na stronach www i na jednej jest taki, a na drugiej inny kod... Strona znajduje się na darmowym hostingu.

Błędy to:

Notice: Undefined index: imie in /var/www/virtual/stronawww.cba.pl/ok.php on line 5

Notice: Undefined index: nazwisko in /var/www/virtual/stronawww.cba.pl/ok.php on line 6

Notice: Undefined index: miastoadres in /var/www/virtual/stronawww.cba.pl/ok.php on line 7

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//PL">
<head>
<title>Formularz</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="Stylesheet" type="text/css" href="formularz.css" />
</head>
<body style="font-size: 11px; font-family: arial, sans-serif; background: url(background.jpg);">
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
	for (i = 0; i < formularz.length; i++)
	{
		var pole = formularz.elements[i];
		if (!pole.disabled && !pole.readonly && (pole.type == "text") && pole.value == "")
		{
			alert("Proszę wypełnić wszystkie pola!");
			return false;
		}
	}
	return true;
}
// ]]>
</script>
<br />
<center>

<div id="stylized" class="myform">
<form method="post" action="ok.php" enctype="text/plain" onsubmit="if (sprawdz(this)) return true; return false">

<label class="font12">Imię
<span class="small">Wpisz swoje imię</span>
</label>
<input type="text" name="imie" id="imie" class="inputext" />

<label class="font12">Nazwisko
<span class="small">Wpisz swoje nazwisko</span>
</label>
<input type="text" name="nazwisko" id="nazwisko" class="inputext" />

<label class="font12">Adres
<span class="small">Adres zamieszkania</span>
</label>
<input type="text" name="adres" id="adres" class="inputext" />

<label class="font12">Miejscowość
<span class="small">Miejsce zamieszkania</span>
</label>
<input type="text" name="miejscowosc" id="miejscowosc" class="inputext" />

<label class="font12">Kod pocztowy
<span class="small">XX-XXX</span>
</label>
<input type="text" name="kod1" id="kod1" class="kod1" /><input type="text" name="kod2" id="kod2" class="kod2" />



<button type="submit" name="submit" id="submit">Potwierdzam</button>
<div class="spacer"></div>

</form>
</div>
</center>

</body>
</html>

Zaś php:

<?php
error_reporting(E_ALL); // poziom raportowania, http://pl.php.net/manual/pl/function.error-reporting.php
ini_set('display_errors', 1);

$to = $_POST['imie'];
$subject = $_POST['nazwisko'];
$message = $_POST['miasto' . 'adres'];



mail("[email protected]","strona"," ".$to." ".$subject." ".$message." ");


?>

Błagam nie zabijajcie mnie ani mojej nadziei...

0

Wywołujesz plik PHP w ten sposób ?:
ok.php?imie=MyName&nazwisko=MySurname&message=MojaWiadomosc
Oczywiście zamiast MyName, itp. to inne dane...
A tak btw.to byłem na tamtej stronie (stronaww.cba.pl) i...masz pozwolenie na muzykę, którą tam puszczasz ?

0

To nie są błędy, tylko ostrzeżenia... Powinieneś zrobić:

if(isset($_POST['imie']))$to = $_POST['imie'];
0

Strona nie jest moja, tylko dane umieściłem przykładowe akurat aby zapobiec takowej inwigilacji i zbaczania z tematu tekstami typu: zły kod, brzydka grafika :) Podałem formularz (jego kod) wam, owy formularz mam w pliku index.php. Chcę aby ten formularz a właściwie jego zawartość przychodziła mi na maila. Jak przychodzi to zawsze pusty mail.

Ale chyba się nie rozumiemy... Pokażę kod który stosuję na innej stronie (również CBA.pl) i działa mi wyśmienicie z tym, że tylko trzy pola są zadeklarowane w formularzu i nie umiem przekształcić tego skryptu na ten docelowy który podałem w pierwszej swojej wypowiedzi w tym temacie czyli zawierający więcej pól...

1.PHP

<form method="post" name="contact" action="2.php">

<label for="author">Imię:</label>
<input type="text" id="imie" name="imie" />
                      
<label for="email">Nazwisko:</label> 
<input type="text" id="nazwisko" name="nazwisko" />
                        
<label for="adres">Adres:</label> 
<input type="text" id="adres" name="adres" />

<label for="miasto">Miasto:</label> <input type="text" id="miasto" name="miasto" />
                        
<input type="submit" class="submit_btn" name="submit" id="submit" value="Wyślij" />
<input type="reset" class="submit_btn" name="reset" id="reset" value="Usuń" />
</form>

2.PHP

<?php
error_reporting(E_ALL); // poziom raportowania, http://pl.php.net/manual/pl/function.error-reporting.php
ini_set('display_errors', 1);

$to = $_POST['imie'];
$subject = $_POST['nazwisko'];
$message = $_POST['miasto'];

mail("[email protected]","temat"," ".$to." ".$subject." ".$message." ");

?>

W takiej konfiguracji mi to działa.

Jeżeli jednak robię tak, że daję tamten formularz z pierwszego mojego postu i robię coś takiego:

<?php
error_reporting(E_ALL); // poziom raportowania, http://pl.php.net/manual/pl/function.error-reporting.php
ini_set('display_errors', 1);

$to = $_POST['imie'];
$subject = $_POST['nazwisko'];
$message = $_POST['miasto'];
$adres = $_POST['adres'];

mail("[email protected]","temat"," ".$to." ".$subject." ".$message." ".$adres." ");

?>

To wtedy nie działa.

O co proszę? Niech ktoś mi napisze taki skrypt do tego formularza z wieloma polami skrypt php aby się to dobrze słało. Jak zadziała to przelać mogę 20 zł na pizze na konto bankowe z dobrego serca jak trzeba.

0

co, nikt nie umie??

0

Nikomu się nie chce za 20 złotych. Naprawdę, wystarczy że się lekko wysilisz, a sam na to wpadniesz...

0

mam takie coś teraz:

<?php

$to = $_POST['imie'];
$subject = $_POST['nazwisko'];
$adres = $_POST['adres'];
$miasto = $_POST['miejscowosc'];
$kod1 = $_POST['kod1'];
$kod2 = $_POST['kod2'];

$message = "<br /> ".$to."<br />".$subject."<br /> ".$adres."<br /> ".$miasto."<br /> ".$kod1."-".$kod2."<br />";


mail("[email protected]","strona",$message);


?>

i wywala:

Notice: Undefined index: imie in /var/www/virtual/strona.cba.pl/ok.php on line 5

Notice: Undefined index: nazwisko in /var/www/virtual/strona.cba.pl/ok.php on line6

Notice: Undefined index: miastoadres in /var/www/virtual/strona.cba.pl/ok.php on line 7

i otrzymuję pustego maila... Dziwi mnie trochę wasze podejście i fakt faktem domyśliłem się że "uraziło was" wspomniane 20 zł i wielu z was czytając mój problem dziwi mi się czemu sam nie kupię sobie książki i tego nie wykonam, bo to pewnie proste jak barszcz. Proszę zrozumieć że nie każdy musi być specem w każdej dziedzinie. Ktoś jest dobrym sportowcem, ktoś baletnicą, a ktoś programistą. I nawet 20 zł ja szanuję i to dla mnie pieniądz. Tyle

0

Undefined index wyskakuje, bo odwołujesz się do nieistniejącego indeksu w tablicy. W tym wypadku chcesz się odwołać dodanych przesłanych POSTem, ale takie dane nie zostały wysłane.

if (!isset($_POST['imie']) || !isset($_POST['nazwisko']) || !isset($_POST['adres']) || !isset($_POST['miejscowosc']) || !isset($_POST['kod1']) || !isset($_POST['kod2'])) {
   exit('Wypelnij formularz!');
}

Taki warunek powinien załatwić sprawę.

0

Wypelnij formularz! się pokazuje. w sumie to przepraszam że zawracam du*e ale zwyczajnie nie działa mi to i rozkładam ręce, w dodatku poświęciłeś swój czas na mnie. Powinno działać i nie działa - tak jakby formularz się nie przesyłał. trzeci dzień siedzę i zabrzmi to dziwnie ale jest mi smutno jakkolwiek to brzmi.

0

Taka informacja na zakończenie gydby ktoś szukał rozwiązania w przyszłości... Każdy skrypt działał. Kwestia hostingu. Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1