Marcin Antosik

Marcin Antosik Lean 6Sigma Black
Belt, Faurecia S.A

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Pytanie jak w temacie

Stworzyłem formularz, dzięki któremu pewne dane zapisywane są do bazy, ale nie wiem czy jest możliwość jednoczesnego wysłania tych danych na maila. Jeżeli istnieje taka możliwość to w jaki sposób powinniem zmodyfikować kod i móc użyć funkcji mail??

Z góry dzięki za pomoc w temacie

Skrócona wersja moich skryptów

formularz dodaj-dane.php

<form id="addForm" name="addForm" method="post" action="dodaj-dane-exec.php">
<table width="400" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<th>Data </th>
<td><input name="date" type="text" class="textfield" id="adate" /></td>
</tr>
<tr>
Pola formularza
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Zapisz" /></td>
</tr>
</table>
</form>
</fieldset>
</body>
</html>

skrypt dodaj-dane-exec.php
<?php
//Start sesji
session_start();
//z uwzględnieniem danych do połaczenia, ktore znajduja sie w pliku config.php
require_once('config.php');
//Tablica do przechowywania błędów kontroli poprawności
$errmsg_arr = array();
//Flaga błędu walidacji
$errflag = false;
//Łączenie z MySQL
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
die('Nieudana proba polaczenia z serwerem: ' . mysql_error());
}
//Wybór bazy danych
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
//Funkcja czyści wartości otrzymane z formularza. Ochrona przeciw luce Sql injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//"Czysczenie" danych z tablicy superglobalnej $_POST
//Walidacja danych wejściowych formularza rejestracyjnego

//Jeśli nie nastąpiła walidacja wprowadzonych danych pokaż błędy i przekieruj spowrotem do formularza wprowadzania danych
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: dodaj-dane.php");
exit();
}

//Dodawanie danych z formularza do bazy danych
$qry = "INSERT INTO tabela(dane) VALUES (odpowiednie zmienne);
$result = @mysql_query($qry);
//Kontrola zapytania SQL
if($result) {
header("location: adddata-success.php");
exit();
}else {
die("Problem z dodaniem danych do bazy");
}
?>Marcin Antosik edytował(a) ten post dnia 01.02.11 o godzinie 20:22

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Marcin Antosik:


if($result) {
-----------tu?----------------
header("location: adddata-success.php");
exit();
}else {

Bartek Sadkowski edytował(a) ten post dnia 01.02.11 o godzinie 20:31
Dominik Marczuk

Dominik Marczuk Remote Team Lead w
Sonalake

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Bartek Sadkowski:
Marcin Antosik:


if($result) {
-----------tu?----------------
header("location: adddata-success.php");
exit();
}else {

Bartek Sadkowski edytował(a) ten post dnia 01.02.11 o godzinie 20:31

Popieram, znakomite miejsce na wstawienie wysyłki maila :D
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

http://pl2.php.net/manual/en/function.mail.php

Na dole jest przykład wysyłania treści html.
btw. google nie boli ;)

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Od biedy można dodać jeszcze przed zapisem do DB - tak jak by się z jakichś durnych powodów nie zapisało.

Swoją drogą - jedna zmienna wywołała uśmiech na mej twarzy:

$qry = "INSERT INTO tabela(dane) VALUES (odpowiednie zmienne);
$result = @mysql_query($qry);


przy mysql_query($qry), $result powinien ZAWSZE zawierać 'kokoko' :DMichał Wachowski edytował(a) ten post dnia 02.02.11 o godzinie 00:19
Marcin Antosik

Marcin Antosik Lean 6Sigma Black
Belt, Faurecia S.A

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Google nie pomagało zbyt bardzo bo większość postów na takie tematy były podobne do tekstów "poszukaj w google", lub "było milion razy"... :/

Sprawdze dzisiaj czy działa. Dzieki za pomoc

@Michał - :D
Wojciech J.

Wojciech J. mistrz wwwujitsu

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Michał Wachowski:
Od biedy można dodać jeszcze przed zapisem do DB - tak jak by się z jakichś durnych powodów nie zapisało.

A czy jak się nie zapisze i użytkownik dostanie "problem", to będzie mógł cofnąć się mając zapamiętane w sesji dane i ponownie kliknąć w "send"? Czy od nowa musi wklepywać wszystko ?

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

W podanym kodzie jest die().
Więc... heh.
Wojciech J.

Wojciech J. mistrz wwwujitsu

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Michał Wachowski:
W podanym kodzie jest die().
Więc... heh.

Otóż właśnie. Dlatego nie wiem czy nie lepszym jest dodanie nowej rejestracji do "pending" - a tym samym wrzucenie informacji o rejestracji usera do bazy z odpowiednią flagą - i rozsyłanie maili rejestracyjnych co 1-5 min. przy użyciu crona.

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Pewnie jest, tylko nad czym tu się rozwodzimy?

Powinna być walidacja, jeśli nie przeszło walidacji - formularz do poprawy.
Zapis - jeśli nie wyszło - komunikat i ponowna próba.
Po zapisie wysyłanie maila.
Po wysłaniu - zmiana flagi rejestracji z pending na sent i tyle.
Zaś jak nie wyszedł mail (w sensie nie wyszedł z serwera, bo czy doszedł to inna sprawa) - tak jak piszesz cronem ponowna próba za kilka minut.
Marcin Antosik

Marcin Antosik Lean 6Sigma Black
Belt, Faurecia S.A

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Wow nie wiedziałem że ten temat jeszcze żyje :)
Wszystko odbywa się tak jak napisał Michał więc nie będę sie powtarzał. Dzięki za pomoc i mam jeszcze jedno pytanie. Mam problem z wyświetlaniem rekordów w tabeli html. Tabelka jest tylko jedna więc nie robiłem tego w css bo jeszcze się tego uczę i poszedłem na skróty. Mój problem polega na tym, że podczas wyświetlania tabeli w "kochanym" internet expolorerze nie wyświetla mi poprawnie tabeli kiedy w którejś z jej komórek nie ma rekordu. Firefox wyświetla tabele poprawnie, ale w pracy gdzie ma to mi działać używamy tylko IE :/
Oto zdjęcie problemu:
http://img511.imageshack.us/i/internetexpolerlipa.jpg

I część listingu tej strony:
<table border="1" width="100%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
<tr>
<td width="100%" colspan="17" bgcolor="#C0C0C0">
<p align="center"><b><font size="3">Historia zmian</font></b></td>
</tr>
<tr>
<td width="5%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2"> Data</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">Godzina</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Linia</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Referencja</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Ic1</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Przeplyw 1</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Masa 1</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Ic2</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Przeplyw 2</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Masa 2</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Ic3</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Przeplyw 3</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Masa 3</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Ic4</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Przeplyw 4</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Masa 4</font></td>
<td width="5%" align="center" bgcolor="#E0E0E0"><font size="2">Komentarz</font></td>
</tr>
<?php
$zapytanie = "SELECT * FROM dane ORDER BY date";
$wykonaj = mysql_query ($zapytanie);
while($wiersz=mysql_fetch_array ($wykonaj)) {
echo " <tr>
<td width=\"6%\" align=center>".$wiersz['date']."</td>
<td width=\"6%\" align=center>".$wiersz['hour']."</td>
<td width=\"2%\" align=center>".$wiersz['line']."</td>
<td width=\"6%\" align=center>".$wiersz['reference']."</td>
<td width=\"2%\" align=center>".$wiersz['firstIc']."</td>
<td width=\"6%\" align=center>".$wiersz['firstflow']."</td>
<td width=\"6%\" align=center>".$wiersz['firstmass']."</td>
<td width=\"2%\" align=center>".$wiersz['secondIc']."</td>
<td width=\"6%\" align=center>".$wiersz['secondflow']."</td>
<td width=\"6%\" align=center>".$wiersz['secondmass']."</td>
<td width=\"2%\" align=center>".$wiersz['thirdIc']."</td>
<td width=\"6%\" align=center>".$wiersz['thirdflow']."</td>
<td width=\"6%\" align=center>".$wiersz['thirdmass']."</td>
<td width=\"2%\" align=center>".$wiersz['fourthIc']."</td>
<td width=\"6%\" align=center>".$wiersz['fourthflow']."</td>
<td width=\"6%\" align=center>".$wiersz['fourthmass']."
<td width=\"6%\" align=center>".$wiersz['comment']."</td>
</tr>";

}
?>
</table>



Wiecie może co musze poprawic bądź dodać żeby to hulało pod IE ??Marcin Antosik edytował(a) ten post dnia 19.02.11 o godzinie 16:01

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Marcin Antosik:

& nbsp -tam gdzie się nie pokazuje?

usuń spację co jest pomiędzy, bo jak wstawiłem razem to się nie wyświetla.Bartek Sadkowski edytował(a) ten post dnia 19.02.11 o godzinie 17:36

konto usunięte

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Komórka tabeli, w której nic nie ma.
Wrzuć coś do niej - tak jak pisze Bartek "& nbsp ;" (bez " i spacji), będzie wyświetlana tzw. twarda spacja.

Ewentualnie zamiast

<td width=\"6%\" align=center>".$wiersz['x']."</td>


pisz


<td width=\"6%\" align=center>".(strlen($wiersz['x']) ? $wiersz['x'] : '-')."</td>


Co daje minusik jeśli wartość jest pusta.
(można by zamiast strlen($wiersz['x']) użyć !empty($wiersz['x']) ale nie wiem jakie dane są w odpowiednich polach)
Marcin Antosik

Marcin Antosik Lean 6Sigma Black
Belt, Faurecia S.A

Temat: [HTML][PHP] Jak jednoczesnie wysłać dane z formularza do...

Dziękuje Panowie za pomoc. Użyłem Twojej propozycji Michale, bo chciałem żeby w tej pustej komórce wyświetlała się jakaś kreseczka właśnie. Dzięki wielkie za pomysł. Wszystko teraz hula :)



Wyślij zaproszenie do