Code below works fine without PRG, BUT i want PRG because i really hate refresh-repost. Though, i did not foresee that problem: i assume that if i dont upload my images immediately with post, get wont find any files to move from temp folder to server folder (they are deleted immediately after post i guess?).
Now, since images should be uploaded before filtered anyway (using server sided languages), i had an idea of uploading without using PRG, and then using a session state like a temp file that will include all the submit info in order just to destroy it and get refresh-repost free... well, its not working. I know it uploads only the correct files, BUT i cant get any $vars out of it, resulting in being unable to show my $error variables / warnings for users.
So... how do i get two birds with one shot php gurus?
trying to figure out if 'fake' sessions can work:
<?php
session_start();
include_once('../includes/connection.php');
if (isset($_SESSION['logged_in'])) {
if (isset($_POST['submit_pic'])) {
$countfiles = count($_FILES['image']['name']);
$target_dir = "../images/";
$error_array = array();
$upload_array = array();
$eupload_array = array();
for($i=0;$i<$countfiles;$i++) {
$filename = $_FILES['image']['name'][$i];
$target_file = $target_dir.$filename;
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$check = getimagesize($_FILES["image"]["tmp_name"][$i]);
if($check !== false) {
$uploadOk = 1;
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
array_unshift($error_array, "Image $filename is not JPG, JPEG, PNG or GIF.");
$uploadOk = 0;
}
} else {
array_unshift($error_array, "File $filename is not an image.");
$uploadOk = 0;
}
if (file_exists($target_file)) {
array_unshift($error_array, "Image $filename already exists.");
$uploadOk = 0;
}
if ($_FILES["image"]["size"][$i] > 500000) {
$u = 1;
array_unshift($error_array, "Image $filename is too large.");
$uploadOk = 0;
}
if ($uploadOk == 0) {
array_unshift($eupload_array, "Sorry, image $filename was not uploaded.");
} else {
if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $target_file)) {
array_unshift($upload_array, "Image $filename has been uploaded.");
} else {
array_unshift($eupload_array, "Sorry, $filename there was an error uploading your file.");
}
}
}
}
if(strcasecmp($_SERVER['REQUEST_METHOD'],"POST") === 0) {
$_SESSION['postdata'] = $_FILES;
header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
exit;
}
if( isset($_SESSION['postdata'])) {
$_FILES = $_SESSION['postdata'];
unset($_SESSION['postdata']);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel='stylesheet' href='../assets/style.css'/>
<title>CMS TEST</title>
</head>
<body>
<div class='container'>
<a href='add_picture.php' id='logo'><h2>Add Picture</h2></a>
<br/>
<small class='test_warning' style='color:#B83333'>
❶ Images should be JPG, JPEG, PNG or GIF format extentions. <br/>
❷ Images should not be above 500KB size.<br/>
❸ Please try to rename images before uploading for easier use.
</small> <br/><br/>
<form action='add_picture.php' method="post" enctype="multipart/form-data">
<input type="file" name="image[]" id="image" class="custom-file-input" multiple required/><br/><br/><br/>
<input type="submit" value="Upload" name="submit_pic"/>
</form>
<?php if (!empty($upload_array)) { ?>
<small style='color:#00FF00'>
<?php echo '<br/><br/>', implode("<br/>",$upload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($eupload_array)) { ?>
<small style='color:#aa0000'>
<?php echo '<br/><br/>', implode("<br/>",$eupload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($error_array)) { ?>
<small style='color:#aa0000'>
<?php echo implode("<br/>",$error_array), '<br/>'; ?>
</small>
<?php }?>
<br/><br/>
<a href='index.php'>← Back</a>
<br/>
</div>
<a class='logout' href='logout.php'>Logout</a>
</body>
</html>
<?php
} else {
header('Location:index.php');
}
?>
'proper one':
<?php
session_start();
include_once('../includes/connection.php');
if (isset($_SESSION['logged_in'])) {
if( strcasecmp($_SERVER['REQUEST_METHOD'],"POST") === 0) {
$_SESSION['postdata'] = $_FILES;
header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
exit;
}
if( isset($_SESSION['postdata'])) {
$_FILES = $_SESSION['postdata'];
$countfiles = count($_FILES['image']['name']);
$target_dir = "../images/";
$error_array = array();
$upload_array = array();
$eupload_array = array();
for($i=0;$i<$countfiles;$i++) {
$filename = $_FILES['image']['name'][$i];
$target_file = $target_dir.$filename;
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$check = getimagesize($_FILES["image"]["tmp_name"][$i]);
if($check !== false) {
$uploadOk = 1;
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
array_unshift($error_array, "Image $filename is not JPG, JPEG, PNG or GIF.");
$uploadOk = 0;
}
} else {
array_unshift($error_array, "File $filename is not an image.");
$uploadOk = 0;
}
if (file_exists($target_file)) {
array_unshift($error_array, "Image $filename already exists.");
$uploadOk = 0;
}
if ($_FILES["image"]["size"][$i] > 500000) {
$u = 1;
array_unshift($error_array, "Image $filename is too large.");
$uploadOk = 0;
}
if ($uploadOk == 0) {
array_unshift($eupload_array, "Sorry, image $filename was not uploaded.");
} else {
if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $target_file)) {
array_unshift($upload_array, "Image $filename has been uploaded.");
} else {
array_unshift($eupload_array, "Sorry, $filename there was an error uploading your file.");
}
}
}
unset($_SESSION['postdata']);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel='stylesheet' href='../assets/style.css'/>
<title>CMS TEST</title>
</head>
<body>
<div class='container'>
<a href='add_picture.php' id='logo'><h2>Add Picture</h2></a>
<br/>
<small class='test_warning' style='color:#B83333'>
❶ Images should be JPG, JPEG, PNG or GIF format extentions. <br/>
❷ Images should not be above 500KB size.<br/>
❸ Please try to rename images before uploading for easier use.
</small> <br/><br/>
<form action='add_picture.php' method="post" enctype="multipart/form-data">
<input type="file" name="image[]" id="image" class="custom-file-input" multiple required/><br/><br/><br/>
<input type="submit" value="Upload" name="submit_pic"/>
</form>
<?php if (!empty($upload_array)) { ?>
<small style='color:#00FF00'>
<?php echo '<br/><br/>', implode("<br/>",$upload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($eupload_array)) { ?>
<small style='color:#aa0000'>
<?php echo '<br/><br/>', implode("<br/>",$eupload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($error_array)) { ?>
<small style='color:#aa0000'>
<?php echo implode("<br/>",$error_array), '<br/>'; ?>
</small>
<?php }?>
<br/><br/>
<a href='index.php'>← Back</a>
<br/>
</div>
<a class='logout' href='logout.php'>Logout</a>
</body>
</html>
<?php
} else {
header('Location:index.php');
}
?>
Besides temp pictures not existing between post get requests, also the variables are deleted from refreshing and i could not use them inside my html to show errors.
So i tried to play around with sessions even more, i moved the pic upload code to post, created some sessions to store my error arrays, and then at get i recreated my error arrays from the sessions i created for them.
Problem solved, pics are filtered, errors displaying, PRG is working.
Gosh... i just started with php there are soooo many things i dont understand D:
<?php
session_start();
include_once('../includes/connection.php');
if (isset($_SESSION['logged_in'])) {
if( strcasecmp($_SERVER['REQUEST_METHOD'],"POST") === 0) {
$_SESSION['postdata'] = $_FILES;
$error_array = array();
$upload_array = array();
$eupload_array = array();
$countfiles = count($_FILES['image']['name']);
$target_dir = "../images/";
for($i=0;$i<$countfiles;$i++) {
$filename = $_FILES['image']['name'][$i];
$target_file = $target_dir.$filename;
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
$check = getimagesize($_FILES["image"]["tmp_name"][$i]);
echo $_FILES["image"]["tmp_name"][$i];
if($check !== false) {
$uploadOk = 1;
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
array_unshift($error_array, "Image $filename is not JPG, JPEG, PNG or GIF.");
$uploadOk = 0;
}
} else {
array_unshift($error_array, "File $filename is not an image.");
$uploadOk = 0;
}
if (file_exists($target_file)) {
array_unshift($error_array, "Image $filename already exists.");
$uploadOk = 0;
}
if ($_FILES["image"]["size"][$i] > 500000) {
$u = 1;
array_unshift($error_array, "Image $filename is too large.");
$uploadOk = 0;
}
if ($uploadOk == 0) {
array_unshift($eupload_array, "Sorry, image $filename was not uploaded.");
} else {
if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $target_file)) {
array_unshift($upload_array, "Image $filename has been uploaded.");
} else {
array_unshift($eupload_array, "Sorry, $filename there was an error uploading your file.");
}
}
}
$_SESSION['error_array'] = $error_array;
$_SESSION['upload_array'] = $upload_array;
$_SESSION['eupload_array'] = $eupload_array;
header("Location:add_picture.php");
exit;
}
if( isset($_SESSION['postdata'])) {
$error_array = $_SESSION['error_array'];
$upload_array = $_SESSION['upload_array'];
$eupload_array = $_SESSION['eupload_array'];
unset($_SESSION['postdata']);
unset($_SESSION['error_array']);
unset($_SESSION['upload_array']);
unset($_SESSION['eupload_array']);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel='stylesheet' href='../assets/style.css'/>
<title>CMS TEST</title>
</head>
<body>
<div class='container'>
<a href='add_picture.php' id='logo'><h2>Add Picture</h2></a>
<br/>
<small class='test_warning' style='color:#B83333'>
❶ Images should be JPG, JPEG, PNG or GIF format extentions. <br/>
❷ Images should not be above 500KB size.<br/>
❸ Please try to rename images before uploading for easier use.
</small> <br/><br/>
<form action='add_picture.php' method="post" enctype="multipart/form-data">
<input type="file" name="image[]" id="image" class="custom-file-input" multiple required/><br/><br/>
<input type="submit" value="Upload" name="submit_pic"/>
</form>
<?php if (!empty($upload_array)) { ?>
<small style='color:#00FF00'>
<?php echo '<br/><br/>', implode("<br/>",$upload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($eupload_array)) { ?>
<small style='color:#aa0000'>
<?php echo '<br/><br/>', implode("<br/>",$eupload_array), '<br/>'; ?>
</small>
<?php }?>
<?php if (!empty($error_array)) { ?>
<small style='color:#aa0000'>
<?php echo implode("<br/>",$error_array), '<br/>'; ?>
</small>
<?php }?>
<br/><br/>
<a href='index.php'>← Back</a>
<br/>
</div>
<a class='logout' href='logout.php'>Logout</a>
</body>
</html>
<?php
} else {
header('Location:index.php');
}
?>
I write a code to upload a image in specific location and display a number of uploaded image count. It will work perfectly when I select below 8 images. But this same code does not worked when if I select 10 to 20 images. I really don't have any idea why it would work when selecting minimum number of images and not working if I select a larger number of images. Please find my below code
storeimage.php
<?php
require_once 'pdoconnectionusingclass.php';
?>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Multiple File Ppload with PHP</title>
</head>
<body>
<form action="storeimagename.php" method="POST" enctype="multipart/form-data">
<div>
<select name="moviename">
<option value = "">---Select---</option>
<?php
try
{
$dbobj=new database();
$dbobj->openconnection();
$sql='select * from tbl_movie';
$query=$dbobj->getdata($sql);
if(isset($query))
{
foreach ($query as $row)
{
echo '<option value='.str_replace(' ','_', $row['movie_name']).'>'.$row['movie_name'].'</option>';
}
}
$dbobj->closeconnection();
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>
</div>
<br/>
<div>
<input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
<input type="submit" value="Upload!" />
</div>
</form>
</body>
</html>
storeimagename.php
<?php
require_once 'pdoconnectionusingclass.php';
$valid_formats = array("jpg", "png", "gif", "bmp");
$max_file_size = 1048576 *10; //100 kb
$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
$total_image=count($_FILES['files']['name']);
$dbobj=new database();
$dbobj->openconnection();
for($i=0;$i<$total_image;$i++)
{
foreach ($_FILES['files']['name'] as $i => $name) {
if ($_FILES['files']['error'][$i] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$i] == 0) {
if ($_FILES['files']['size'][$i] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
// echo $_FILES['files']['tmp_name'][$i];
// echo $_FILES['files']['name'][$i];
if(move_uploaded_file($_FILES["files"]["tmp_name"][$i], $path.$name))
{
$count++; // Number of successfully uploaded file
$gallery.=','.$name;
}
}
}
}
}
if(count==18)
{
$sql='insert into tbl_movie_gallery values((select movie_id from tbl_movie where movie_name='.str_replace('_',' ',$_POST['moviename']).')'.$gallery.');';
$dbobj->insertdata($sql);
}
//unset($_FILES['files']);
$dbobj->closeconnection();
}
?>
Program is terminated when executing this $total_image=count($_FILES['files']['name']); line if i select 10 to 20 files. $total_image displays count as 0. Can any one help what is the problem is here? Thanks in advance.
PHP has a setting for the maximum amount of files you can upload at once. The default is 20. You'll need to change this in your php.ini file.
The setting you're looking for is max_file_uploads
More information
Looking for the following solutions:
Form html / php provide the ability to add multiple graphic files (up to 11 files, max 5MB).
When sending to a server script should do the following:
check if the file has a good extension (jpg, png);
re-name each file according to the formula < string up to 32 characters > _ < 000 to 010 >. < extension >;
add file names to the table (one file = one column, row);
compress to a maximum resolution of 1280x1024;
change the proportions of graphics on 4: 3 images while maintaining the same proportions;
lessen the size of the file and save to the server in the appropriate folder.
I'm interested in possibly easy to use solution.Thank you very much for your help.
try it,
HTML Code
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Multiple File Ppload with PHP</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
<input type="submit" value="Upload!" />
</form>
</body>
</html>
PHP CODE
<?php
$valid_formats = array("jpg", "png");
$max_file_size = 1280*1024;
$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
$count++; // Number of successfully uploaded file
}
}
}
}
?>
The below is my source code where I want to use the variable $r1 which is at the bottom php script in another php script which is on top on the same page. I need a simple solution which solves this problem. I want to use that variable in the update query which is present in the code.
<?php
$con=mysql_connect("localhost","root","") or die("could not connect to db");
mysql_select_db("test");
$valid_formats = array("jpg", "png", "gif", "zip", "bmp","MP4","3GP");
$max_file_size = 1024*10000; //100 kb
//$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to execute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
move_uploaded_file($_FILES["files"]["tmp_name"][$f],"uploads/" . $_FILES["files"]["name"][$f]);
// Number of successfully uploaded files
$file="uploads/".$_FILES["files"]["name"][$f];
/* $sql = "Update media set path = '$file' where username = '$r1'";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}*/
}
}
}
}
$sql="select * from media";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query))
{
$image=$row[2];
if($image!='')
{
echo "<img src='".$row['path']."' width='175' height='200' />";
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Multiple File Upload with PHP - Demo</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="wrap">
<h1><a>Multiple File Upload with PHP</a></h1>
<?php
# error messages
if (isset($message)) {
foreach ($message as $msg) {
printf("<p class='status'>%s</p></ br>\n", $msg);
}
}
# success message
if($count !=0){
printf("<p class='status'>%d files added successfully!</p>\n", $count);
}
?>
<p>Max file size 100kb, Valid formats jpg, png, gif</p>
<br />
<br />
<!-- Multiple file upload html form-->
<form action="" method="post" enctype="multipart/form-data">
<span style="font-size:12pt;">Channel: </span> <select name="channels">
<option value="">Channel</option>
<?php
$sql_query="SELECT * FROM media";
$result1 = mysql_query($sql_query) or die(mysql_error());
while($data=mysql_fetch_row($result1))
{
?>
<option value="<?php $r1 = $data[0]; echo $r1;?>" ><?php $r1 = $data[1]; echo $r1 ?></option>
<?php
}
?>
</select>
<input type="file" name="files[]" id="image" multiple="multiple">
<input type="submit" value="Upload">
</form>
</div>
</body>
</html>
If you want to have the value of the <select name="channels"> you can use this
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
$r1 = $_POST["channels"];
//your code here
}
Hope this help.
I have the following which uploads a single file and works fine:
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input name="userfile" type="file" />
<input type="submit" value="Upload" />
</form>
<?php
$uploaddir = $campaign['upload_dir'].'/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File has been successfully uploaded.\n";
} else {
echo "Upload failed";
}
?>
When i adpat this to accept multiple files for upload, it doesnt seem to work. I dont get any errors / warnings so i am completely stumped. Here is my multiple file upload code:
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input name="userfile[]" type="file" multiple />
<input type="submit" value="Upload" />
</form>
<?php
$uploaddir = $campaign['upload_dir'].'/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name'][$key]);
foreach ($_FILES["userfile"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["userfile"]["name"][$key];
move_uploaded_file( $_FILES["userfile"]["tmp_name"][$key], $uploadfile);
{
echo "File has been successfully uploaded.\n";
} else {
echo "Upload failed";
}
?>
Any suggestions on what could be wrong?
You use wrong key in $_FILES, you have to use $_FILES['userfile'], not $_FILES['files']:
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input name="userfile[]" type="file" multiple />
<input type="submit" value="Upload" />
</form>
<?php
$uploaddir = $campaign['upload_dir'].'/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name'][$key]);
foreach ($_FILES["userfile"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["userfile"]["name"][$key];
move_uploaded_file( $_FILES["userfile"]["tmp_name"][$key], $uploadfile);
{
echo "File has been successfully uploaded.\n";
} else {
echo "Upload failed";
}
?>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Multiple File Ppload with PHP</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
<input type="submit" value="Upload!" />
</form>
</body>
</html>
<?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 1024*100; //100 kb
$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
$count++; // Number of successfully uploaded file
}
}
}
}
?>