Intereting Posts

Передача javascript в файл .txt с PHP

Хорошо, пока у меня была какая-то помощь от вас, ребята, и это последнее, что я потратил слишком много времени.

Я использую nopCart для интернет-магазина для uni. Мы не обязаны делать записи, но я сохраняю детали клиента в текстовом файле. Вначале мне удалось получить все, отправленное по электронной почте, но, поскольку я просматриваю PHP, я не знаю, как получить детали заказа. Информация о клиенте вводится в текстовые поля, а затем сохраняется в текстовом файле через PHP.

Мой код заказа

<form action="process.php" method ="post"> <script type="text/javascript"> CheckoutCart(); </script> <br /><br /> First Name: <input type="text" name="first" /><br /> Last Name: <input type="text" name="last" /><br /> Street Address: <input type="text" name="address" /><br /> Suburb: <input type="text" name="suburb" /><br /> State: <input type="text" name="state" /><br /> Postcode: <input type="text" name="postcode" /><br /> Country: <input type="text" name="country" /><br /> Phone Number: <input type="text" name="phone" /><br /> Email: <input type="text" name="email" /><br /> shop: <input type="text" name="shop" /><br /> <br /><br /> Other form data can go here when you create your prototype cart ... <br /><br /> <input type="submit" name="submitButton" value=" Submit Order " /> </form> 

Магазин ввода в настоящее время не используется, где я пытаюсь получить информацию о заказе в

Мой код process.php

 <?php // We will put the data into a file in the current directory called "data.txt" // But first of all, we need to check if the user actually pushed submit if (isset($_POST['submitButton'])) { // The user clicked submit // Put the contents of the text into the file file_put_contents('./data.txt', $_POST['shop'] . " " .$_POST['first'] . " " . $_POST['last'] . "\n" . $_POST['address'] . "\n" . $_POST['suburb'] . " " . $_POST['state'] . " " . $_POST['postcode'] . "\n" . $_POST['country'] . "\n" . "\n", FILE_APPEND); // ./data.txt: the text file in which the data will be stored // $_POST['myInputName']: What the user put in the form field named "myInputName" // FILE_APPEND: This tells the function to append to the file and not to overwrite it. } ?> 

В более ранней версии, используя этот код в checkout.html. Это пошлет мне все, что мне нужно

 <!-- Checkout Begin--> The items listed below are currently in your shopping cart: <form action="mailto:xxxxxxx@example.com" method ="post"> <script type="text/javascript"> CheckoutCart(); </script> <br /><br /> Name: <input type="text" name="b_first" /> <input type="text" name="b_last" /><br /> Email: <input type="text" name="b_email" /><br /> <br /><br /> Other form data can go here when you create your prototype cart ... <br /><br /> <input type="submit" value=" Submit Order " /> </form> <!-- Checkout End --> 

При нажатии кнопки «Отправить» я получаю этот текст в новом письме

ID_1 = ID + 000 & QUANTITY_1 = 1 & PRICE_1 = 28,99 & ИМЯ_1 = Кошка + Scratcher & SHIPPING_1 = 4,99 & ADDTLINFO_1 = & ИТОГО =% 2428,99 & доставка =% 244,99 & НАЛОГ =% 240.00 & ВСЕГО =% 2433,98 & b_first = Jonny & b_last = Смит & b_email = а% 40a.com

Я хотел бы получить эту строку здесь в .txt файл с информацией о клиенте. Есть ли простой способ получить эту информацию из CheckoutCart () и сохранить ее в текстовом поле, чтобы затем добавить ее в файл process.php и получить ее в текстовом файле?

Пока я только что использовал проб и ошибок, и я действительно не уверен, что делать дальше

Вот функция checkoutCart от nopcart.js

 //---------------------------------------------------------------------|| // FUNCTION: CheckoutCart || // PARAMETERS: Null || // RETURNS: Product Table Written to Document || // PURPOSE: Draws current cart product table on HTML page for || // checkout. || //---------------------------------------------------------------------|| function CheckoutCart( ) { var iNumberOrdered = 0; //Number of products ordered var fTotal = 0; //Total cost of order var fTax = 0; //Tax amount var fShipping = 0; //Shipping amount var strTotal = ""; //Total cost formatted as money var strTax = ""; //Total tax formatted as money var strShipping = ""; //Total shipping formatted as money var strOutput = ""; //String to be written to page var bDisplay = true; //Whether to write string to the page (here for programmers) var strPP = ""; //Payment Processor Description Field iNumberOrdered = GetCookie("NumberOrdered"); if ( iNumberOrdered == null ) iNumberOrdered = 0; if ( TaxByRegion ) { QueryString_Parse(); fTax = parseFloat( QueryString( OutputOrderTax ) ); strTax = moneyFormat(fTax); } if ( bDisplay ) strOutput = "<TABLE CLASS=\"nopcart\"><TR>" + "<TD CLASS=\"nopheader\"><B>"+strILabel+"</B></TD>" + "<TD CLASS=\"nopheader\"><B>"+strDLabel+"</B></TD>" + "<TD CLASS=\"nopheader\"><B>"+strQLabel+"</B></TD>" + "<TD CLASS=\"nopheader\"><B>"+strPLabel+"</B></TD>" + (DisplayShippingColumn?"<TD CLASS=\"nopheader\"><B>"+strSLabel+"</B></TD>":"") + "</TR>"; for ( i = 1; i <= iNumberOrdered; i++ ) { NewOrder = "Order." + i; database = ""; database = GetCookie(NewOrder); Token0 = database.indexOf("|", 0); Token1 = database.indexOf("|", Token0+1); Token2 = database.indexOf("|", Token1+1); Token3 = database.indexOf("|", Token2+1); Token4 = database.indexOf("|", Token3+1); fields = new Array; fields[0] = database.substring( 0, Token0 ); // Product ID fields[1] = database.substring( Token0+1, Token1 ); // Quantity fields[2] = database.substring( Token1+1, Token2 ); // Price fields[3] = database.substring( Token2+1, Token3 ); // Product Name/Description fields[4] = database.substring( Token3+1, Token4 ); // Shipping Cost fields[5] = database.substring( Token4+1, database.length ); //Additional Information fTotal += (parseInt(fields[1]) * parseFloat(fields[2]) ); fShipping += (parseInt(fields[1]) * parseFloat(fields[4]) ); if ( !TaxByRegion ) fTax = (fTotal * TaxRate); strTotal = moneyFormat(fTotal); if ( !TaxByRegion ) strTax = moneyFormat(fTax); strShipping = moneyFormat(fShipping); if ( bDisplay ) { strOutput += "<TR><TD CLASS=\"nopentry\">" + fields[0] + "</TD>"; if ( fields[5] == "" ) strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + "</TD>"; else strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>"; strOutput += "<TD CLASS=\"nopentry\">" + fields[1] + "</TD>"; strOutput += "<TD CLASS=\"nopentry\">"+ MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>"; if ( DisplayShippingColumn ) { if ( parseFloat(fields[4]) > 0 ) strOutput += "<TD CLASS=\"nopentry\">"+ MonetarySymbol + moneyFormat(fields[4]) + "/ea</TD>"; else strOutput += "<TD CLASS=\"nopentry\">N/A</TD>"; } strOutput += "</TR>"; } if ( AppendItemNumToOutput ) { strFooter = i; } else { strFooter = ""; } if ( PaymentProcessor != '' ) { //Process description field for payment processors instead of hidden values. //Format Description of product as: // ID, Name, Qty X strPP += fields[0] + ", " + fields[3]; if ( fields[5] != "" ) strPP += " - " + fields[5]; strPP += ", Qty. " + fields[1] + "\n"; } else { strOutput += "<input type=hidden name=\"" + OutputItemId + strFooter + "\" value=\"" + fields[0] + "\">"; strOutput += "<input type=hidden name=\"" + OutputItemQuantity + strFooter + "\" value=\"" + fields[1] + "\">"; strOutput += "<input type=hidden name=\"" + OutputItemPrice + strFooter + "\" value=\"" + fields[2] + "\">"; strOutput += "<input type=hidden name=\"" + OutputItemName + strFooter + "\" value=\"" + fields[3] + "\">"; strOutput += "<input type=hidden name=\"" + OutputItemShipping + strFooter + "\" value=\"" + fields[4] + "\">"; strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">"; } } if ( bDisplay ) { strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strSUB+"</B></TD>"; strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strTotal + "</B></TD>"; strOutput += "</TR>"; if ( DisplayShippingRow ) { strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strSHIP+"</B></TD>"; strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strShipping + "</B></TD>"; strOutput += "</TR>"; } if ( DisplayTaxRow || TaxByRegion ) { strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strTAX+"</B></TD>"; strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strTax + "</B></TD>"; strOutput += "</TR>"; } strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strTOT+"</B></TD>"; strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "</B></TD>"; strOutput += "</TR>"; strOutput += "</TABLE>"; if ( PaymentProcessor == 'an') { //Process this for Authorize.net WebConnect strOutput += "<input type=hidden name=\"x_Version\" value=\"3.0\">"; strOutput += "<input type=hidden name=\"x_Show_Form\" value=\"PAYMENT_FORM\">"; strOutput += "<input type=hidden name=\"x_Description\" value=\""+ strPP + "\">"; strOutput += "<input type=hidden name=\"x_Amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">"; } else if ( PaymentProcessor == 'wp') { //Process this for WorldPay strOutput += "<input type=hidden name=\"desc\" value=\""+ strPP + "\">"; strOutput += "<input type=hidden name=\"amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">"; } else if ( PaymentProcessor == 'lp') { //Process this for LinkPoint strOutput += "<input type=hidden name=\"mode\" value=\"fullpay\">"; strOutput += "<input type=hidden name=\"chargetotal\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">"; strOutput += "<input type=hidden name=\"tax\" value=\""+ MonetarySymbol + strTax + "\">"; strOutput += "<input type=hidden name=\"subtotal\" value=\""+ MonetarySymbol + strTotal + "\">"; strOutput += "<input type=hidden name=\"shipping\" value=\""+ MonetarySymbol + strShipping + "\">"; strOutput += "<input type=hidden name=\"desc\" value=\""+ strPP + "\">"; } else { strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">"; strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">"; strOutput += "<input type=hidden name=\""+OutputOrderTax+"\" value=\""+ MonetarySymbol + strTax + "\">"; strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\" value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">"; } } document.write(strOutput); document.close(); } //=====================================================================|| // END NOP Design SmartPost Shopping Cart || //=====================================================================|| 

Я знаю, что это много текста и кода, но я не думаю, что будет слишком сложно найти решение, это только первый углубленный HTML-объект в моем курсе, и я надеюсь, что это сработает.

Вы могли бы сделать что-то вроде

 file_put_contents('data.txt', var_export($_POST, true), FILE_APPEND); 

Это сохранит все поля в параметре $ _POST в файл.

Альтернативой var_export ($ _ POST, true) является json_encode ($ _ POST), который может быть прочитан Javascript позже, или вы можете отформатировать некоторый текст, читаемый человеком.

Например, поставьте это в свой process.php .

 <?php // submitButton was sent. if(isset($_POST['submitButton'])) { // Build a string with all fields that was submitted. $str = "--- BEGIN ORDER ---\n" // For each field in the $_POST variable, iterate and add them to the string. foreach($_POST as $k => $v) { $str .= "$k: $v\n"; } $str .= "--- END ORDER ---\n"; // Show the user the result echo $str; // Also save it to data.txt file_put_contents('data.txt', $str, FILE_APPEND); } else { // submitButton was not sent, show some error. echo "Please submit something"; }