PDA

Zobacz pełną wersję : Zwykły formularz - co robię żle



Grisza
04-05-2010, 15:32
Słuchajcie chciałem obsłużyć zwykły formularz. I zapisać jego dane.
Co robię żle ?
Wywala mi błędy:


<?php
if($_POST['submit']){
$list ="$_POST['imie'].", ".$_POST['nazwisko]'.", ".$_POST['instytucja']";
else
echo "Błąd z przesłaniem danych";

$fp = fopen('file.csv', 'a');

foreach ($list as $line) {
fputcsv($fp, split(',', $line), ',', '&quot;');
}

fwrite($fp, "\r\n");

fclose($fp);
echo "Dziękujemy za wypełnienie zgłoszenia";
?>

Przy czym ze zwykłą ArayListą wszystko działało poprawnie


<?php
$list = array (
'aaa,bbb,ccc,dddd',
'123,456,789',
'"aaa","bbb"'
);

$fp = fopen('file2.csv', 'a');

foreach ($list as $line) {
fputcsv($fp, split(',', $line), ',', '&quot;');
}

fwrite($fp, "\r\n");

fclose($fp);
?>

k@m!l
06-05-2010, 13:04
Błędy błędami, ale jakie to błędy ? Podałbyś komunikat chociaż, nikt tu wróżką nie jest ;)
To po pierwsze. A po drugie, jak już kopiujesz jakiś kod, to zrób to z głową, a nie na "pałe".
Masz tu kod poprawiony. Jak już tak uparcie chciałeś to zrobić z tą tablicą, to masz tu dostosowane ;)
Pisane na szybko, ale działać powinno :)


if(JRequest::getVar('submit'))
{
$list = array(JRequest::getVar('imie').', '.JRequest::getVar('nazwisko').','.JRequest::getVa r('instytucja'));
$fp = fopen('file.csv', 'a');

foreach ($list as $line)
{
fputcsv($fp, split(',', $line), ',', '&quot;');
}
fwrite($fp, "\r\n");

fclose($fp);
echo "Dziękujemy za wypełnienie zgłoszenia";
}
else
echo "Błąd z przesłaniem danych";

Grisza
06-05-2010, 14:02
Błędy błędami, ale jakie to błędy ? Podałbyś komunikat chociaż, nikt tu wróżką nie jest ;)
To po pierwsze. A po drugie, jak już kopiujesz jakiś kod, to zrób to z głową, a nie na "pałe".
Masz tu kod poprawiony. Jak już tak uparcie chciałeś to zrobić z tą tablicą, to masz tu dostosowane ;)
Pisane na szybko, ale działać powinno :)


if(JRequest::getVar('submit'))
{
$list = array(JRequest::getVar('imie').', '.JRequest::getVar('nazwisko').','.JRequest::getVa r('instytucja'));
$fp = fopen('file.csv', 'a');

foreach ($list as $line)
{
fputcsv($fp, split(',', $line), ',', '&quot;');
}
fwrite($fp, "\r\n");

fclose($fp);
echo "Dziękujemy za wypełnienie zgłoszenia";
}
else
echo "Błąd z przesłaniem danych";




Dzięki wielkie :). Musiałem jednak to zrobić w stringu, bo by chyba nie obsłużył pól wielokrotnego wyboru w formularzu. Już to obszedłem tak:



<?php
/*
echo "<pre>";
print_r($_POST);
echo "</pre>";
*/

if($_POST['submit']){
//$list =$_POST['imie'].", ".$_POST['nazwisko'].", ".$_POST['instytucja'];

//$list =$_POST['imie'].",".$_POST['nazwisko'].",".$_POST['instytucja'].",".$_POST['mail'].",".$_POST['telefon'].",".$_POST['warsztat'].",".$_POST['nocleg1'].",".$_POST['nocleg2'].",".$_POST['nocleg3'];
$list =trim($_POST['imie']).",".$_POST['nazwisko'].",".$_POST['instytucja'].",".$_POST['mail'].",".$_POST['telefon'].",".$_POST['warsztat'].",".$_POST['nocleg1'].",".$_POST['nocleg2'].",".$_POST['nocleg3'];
//$list = str_replace("&", "_", $list);
}
else{
echo "Błąd z przesłaniem danych";
}
// Tu wstawiam ważne dane do sprawdzenia przez człowieka wypełniającego formularz:
// podstawienie zmiennych
$imie=$_POST['imie'];
$nazwisko=$_POST['nazwisko'];
$instytucja=$_POST['instytucja'];
$mail=$_POST['mail'];
$telefon=$_POST['telefon'];
$warsztat=$_POST['warsztat'];
$nocleg1=$_POST['nocleg1'];
$nocleg2=$_POST['nocleg2'];
$nocleg3=$_POST['nocleg3'];
// Wyświetlanie zmiennych
echo"<div style=\"background-color: red; width: 515px; border: 2px black solid; padding: 15px; font-family: verdana, arial, sans-serif; font-size:11px; margin:auto;\">";
echo"<div style=\"background-color: white; width: 500px; border: 2px black solid; line-height:18px; padding: 5px; font-family: verdana, arial, sans-serif; font-size:11px; margin:auto;\">";
echo "<span style=\"color:blue; font-weight:bold; font-size:13px;\">Takie dane podane przez Ciebie zostały zapisane w naszej bazie. Jakbyś się gdzieś pomylił prosimy o kontakt pod nr: , to naniesiemy wtedy poprawki.<br /><hr></span>";
echo "<span style=\"color:red; font-weight:bold;\">Twoje imię to:</span><span style=\"color:green; font-weight:bold;\"> $imie</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Twoje nazwisko to: </span><span style=\"color:green; font-weight:bold;\">$nazwisko</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Twoje Instytucja to:</span><span style=\"color:green; font-weight:bold;\"> $instytucja</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Twoj mail to: </span><span style=\"color:green; font-weight:bold;\">$mail</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Twoj telefon to:</span><span style=\"color:green; font-weight:bold;\"> $telefon</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Bierzesz ucział w następującej grupie warsztatowej: </span><span style=\"color:green; font-weight:bold;\">$warsztat</span> <br />";
echo "<span style=\"color:red; font-weight:bold;\">Korzystasz z następujących noclegów:</span><span style=\"color:green; font-weight:bold;\"> $nocleg1 $nocleg2 $nocleg3</span> <br />";
echo "</div>";
echo "</div>";
$fp = fopen('file.csv', 'a');

/*foreach ($list as $line) {
fputcsv($fp, split(',', $line), ',', '&quot;');
}
*/


fputcsv($fp, split(',', $list), ',', '&quot;');

//fputcsv($fp, split(',', $line));

fwrite($fp, "\r\n");

fclose($fp);
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="Description" content="Ankieta, mająca na celu zarejestrować zgłoszenie uczestników na warsztaty">
<meta name="Keywords" content=" konferencja, warsztaty, webuzzz">
<title>Ankieta przedkonferencyjna</title>

<link rel="stylesheet" href=" style.css" type="text/css">
</head>
<body style="background-color: #C5DDC9">
<br />
<div class="content">
<div class="ankieta">
<center><span style="color:red; font-weight:bold; text-align:center; font-size:28px ">Dziękujemy za wypełnienie zgłoszenia
</span></center>
</div>
</div>
</body>
</html>
';
?>