Я прочитал ряд подобных вопросов, поэтому я знаю, что на это был дан ответ раньше, но теперь мой вопрос: почему я не работаю?
Я новичок в веб-разработке, создавая веб-форму, которая передает представленные данные в файл CSV. То, что я сейчас делаю, в конце концов, проверка формы выполняется на странице формы «form.php», она отправляет пользователя на другую страницу «submittedApplication.php», и в этом же заявлении весь мой код выводит данные в CSV.
То, что мне нужно, – передать одну конкретную переменную из «form.php», до «submittedApplication.php». Это ссылочный номер, на котором у меня есть случайный генератор, на form.php.
В моем коде я использую функцию для создания ссылочного номера, я храню его в переменной с именем $ result. В нижней части проверки я использую
header('Location: submittedApplication.php?result={$result}');
попытаться передать его, а затем на второй странице, которую я использую
echo $_GET['result'];
попытаться захватить переменную.
Если вы заметили это в моем коде, я также попробовал метод скрытого ввода, но безуспешно.
Вот моя основная страница form.php
<!DOCTYPE html> <html> <?php //Define variables and set to empty values //###CUSTOMER DATA### //Name $custName= ""; $custNameError = ""; //Reference Number $result = gen_uid(); //Error holders $errors = ""; //Generic Error list at top of form, can be appended to $error = 0; //Error Tally, If 0 = good. If 1 = error. //Generates a 10 character random string with a prefix and current date attached function gen_uid($l=10){ $prefix = "BLANK DATA#"; $str = ""; date_default_timezone_set('America/New_York'); $date = date("Ymd"); for ($x=0;$x<$l;$x++) $str .= substr(str_shuffle("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 1); echo $prefix . $str . "<br/>" . "Generated On: " . $date; } //for testing echo $result; if($_SERVER["REQUEST_METHOD"] == "GET"){ $custName = ""; $custAddress = ""; } else if ($_SERVER["REQUEST_METHOD"] == "POST") { // Checking null values in message. $custName = $_POST['customername']; $custAddress = $_POST['CustomerMailingAddress']; $passedResult = $_POST['result']; //################################## Form Validation ##################################### //CUSTOMER NAME if(!isset($custName) || $custName == "") { $custNameError = "Name required"; $errors .= "Customer contact information required, Contractor optional.<br/>"; $custName = ""; $error = 1; } else{ $custName = $_POST['customername']; } if($error == 0) { echo "<input type='hidden' name='result' value='{$result}'/>"; //this is where the creating of the csv takes place $cvsData = $custName . "," . $custAddress . "," . $custPhone . "," . $custMobile . "," . $custFax . "," . $custEmail . "," . $conName . "," . $conAddress . "," . $custPhone . "," . $conPhone . "," . $custMobile . "," . $conMobile . "," . $custEmail . "," . $conEmail . "," . $accNum ."\n"; $fp = fopen("formTest.csv","a"); // $fp is now the file pointer to file $filename if($fp){ fwrite($fp,$cvsData); // Write information to the file fclose($fp); // Close the file } header('Location: submittedApplication.php?result={$result}'); } } ?> <body> <h2 align="center"><u>Service Request Application Form</u></h2> <hr> <h4>NOTES:</h4> <div id="wrapper"> <br/> <h3 class="error"><?php echo $errors; ?></h3> <form method="post" align="center" name="applicationform" id="applicationform" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <!--###################################### CONTACT INFORMATION FIELDSET ######################################--> <fieldset style="border: 1px black solid" align="center"> <legend style="font-weight:bold"><u>Contact Information</u></legend> <table> <tr> <th></th> <th><u>Customer</u></th> <th title="Electrician"><u>Consultant/Contractor</u></th> </tr> <tr> <td> <tr> <td align="right" id="namelabel">Contact Name:</td> <td><input type="text" id="customername" name="customername" value="<?php echo $custName;?>" title="Name of contact on account"/></td> <td><input type="text" id="contractorname" name="contractorname" title="Name of contractor or consultant" /></td> </tr> <tr> <td></td> <td><div class="error"><?php echo $custNameError;?></div></td> <td></td> </tr> </td> </tr> </table> </table> </form> </div> </body> </html>
И вот моя вторая страница, представленнаяApplication.php
<!DOCTYPE html> <html> <body> <h2 align="center"><u>Service Request Application Form</u></h2> <hr> <h4>NOTES:</h4> <hr> <div align="center"><h3>Application Submitted Successfully!</h3> </div> <?php echo $_GET['result']; ?> </body> </html>
Все советы приветствуются!
То, как я обычно занимаюсь передачей значений между страницами, это использовать переменные сеанса.
Вы можете сделать это на своей странице form.php
session_start(); $SESSION_["result"] = $result;
Затем сделайте следующее на своей другой странице
session_start(); if(isset($SESSION_["result"]) { $result = $SESSION_["result"]; }
Просто убедитесь, что вы уничтожили или отключили любые переменные сеанса, когда закончите с ними.