I'm new to php and was wondering if the following was possible...
I would like to have a list of items loaded from a text file, process
each item in the list and then return the processed result to a new
window so that the new window displays the results, one by one, until
it is done processing the list.
I considered javascript but the whole client-side/server-side divide
seems difficult for this newbie to figure out. Is what I want possible? 4 1888
astromac wrote: I would like to have a list of items loaded from a text file, process each item in the list and then return the processed result to a new window so that the new window displays the results, one by one, until it is done processing the list.
I considered javascript but the whole client-side/server-side divide seems difficult for this newbie to figure out. Is what I want possible?
Yes (with some JavaScript), but why bother?
Cheers,
NC
astromac wrote: I'm new to php and was wondering if the following was possible...
I would like to have a list of items loaded from a text file, process each item in the list and then return the processed result to a new window so that the new window displays the results, one by one, until it is done processing the list.
I considered javascript but the whole client-side/server-side divide seems difficult for this newbie to figure out. Is what I want possible?
Unfortunately you don't give a lot of details here. It'd be nice to
know what the processing IS exactly. And why you need a new blank
window. What's wrong with the window that the page loads in? How is the
page to be called? Just loading it or is there a form to submit?
Still look into the output buffering and flush stuff on www.php.net for
the "processing one by one" thing. And maybe if it's a form submittal
look into doing <form target="_blank" ... > and if it's not you'll
pretty much HAVE to use javascript to open that new window.
Fair enough. I work at a church and my boss wanted me to write a
script to send emails to the congregation and have the progress of the
emailing show up in another window. As far as why bother, it's what I
was asked to do. As far as why not output the results in the same
window, I didn't like how it printed the output at the top of the form
and kept pushing the form down. I'm a civil engineer by trade so I'm
sure the code is stupidly written and inefficient so be kind (I'm new
to PHP and javascript). BTW, you're not helping a spammer - this is
for folks who attend our conferences every year and have requested an
HTML brochure rather than a printed brochure.
Anyway - here's the code in order to provide you with detail.
<?php
$email_from = isset($_POST['email_from']) ?
htmlentities($_POST['email_from']) : '';
$email_from_name = isset($_POST['email_from_name']) ?
htmlentities($_POST['email_from_name']) : '';
$email_subject = isset($_POST['email_subject']) ?
htmlentities($_POST['email_subject']) : '';
$email_delay = isset($_POST['email_delay']) ?
htmlentities($_POST['email_delay']) : '';
$errors['cant_open_message'] = "<script type=\"text/javascript\">alert
(\"Can't Open Message File\");</script>";
$errors['cant_open_address'] = "<script type=\"text/javascript\">alert
(\"Can't Open Address File\");</script>";
function showform ($_email_from, $_email_subject, $_address_file,
$_message_file, $_email_delay, $_mime_type) {
print<<<_HTML_
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
<title>Conference Email Form</title>
<meta name="generator" content="BBEdit 8.2">
<script type="text/javascript">
var newListWindow;
var newTextWindow;
function makeListWindow() {
if (!newListWindow || newListWindow.closed) {
newListWindow = window.open("", "popList",
"resizeable,scrollbars,height=400,width=400");
//delay writing until window exists in IE/Windows
setTimeout("writeListWindow()", 50);
}
else if (newListWindow.focus) {
newListWindow.focus();
}
}
function startListWindow() {
var newContent = "<html><head><title>Successful
Sends</title></head>";
newContent += "<body><h1>Successful Sends</h1><br/>";
newListWindow.document.write(newContent);
}
</script>
<style type="text/css">
body {
color: #00008B;
font-family: "Trebuchet MS", sans-serif;
font-size: 1em;
}
h1 {
color: #FFFFFF;
background-color: #00008B;
text-indent: 6px;
}
form {
border: 1px dashed #00008B;
padding: 3px 6px 3px 6px;
background-color: #EAF6FF;
}
form p {
clear: left;
margin: 0;
padding: 0;
padding-top: 5px;
}
form p label{
float: left;
width: 30%;
}
input.txt {
width: 250px;
color: #00008B;
background-color: #ADD8E6;
border: 1px solid #00008B;
font-weight: bold;
}
input.fil {
color: #00008B;
background-color: #ADD8E6;
border: 1px solid #00008B;
font-weight: bold;
}
input.del {
width: 40px;
color: #00008B;
background-color: #ADD8E6;
border: 1px solid #00008B;
font-weight: bold;
}
input.btn {
color: #00008B;
background-color: #ADD8E6;
border: 1px outset #00008B;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Conference Email Form</h1>
<form enctype="multipart/form-data" method="POST"
action="$_SERVER[PHP_SELF]">
<p>
<label for="from">Email From Address:</label>
<input type="text" id="from" name="email_from" value="$_email_from"
class="txt">
</p>
<p>
<label for="name">Email From Name:</label>
<input type="text" id="name" name="email_from_name"
value="$_email_from_name" class="txt">
</p>
<p>
<label for="subject">Email Subject:</label>
<input type="text" id="subject" name="email_subject"
value="$_email_subject" class="txt">
</p>
<p>
<label for="list">Address List:</label>
<input type="file" size="32" id="list" name="address_file"
class="fil">
</p>
<p>
<label for="message">Mail Message:</label>
<input type="file" size="32" id="message" name="message_file"
class="fil">
</p>
<p>
<label for="delay">Delay Between Email Sends:</label>
<input type="text" id="delay" name="email_delay"
value="$_email_delay" class="del"> minutes
</p>
<p>
<label for="mime">Message Type:</label>
<input type="radio" id="mime" name="mime_type" value="html"> HTML
<input type="radio" id="mime" name="mime_type" value="text"> Plain
Text
</p>
<br/>
<br/>
<p>
Send Email<br/>
<input type="submit" value="Process Now" name="submit" class="btn">
<input type="hidden" name="submit_check" value="1">
</p>
</form>
</body>
</html>
_HTML_;
}
function emailcheck ($_emailaddr) {
# Trim out 'null' characters
$_emailaddr = ereg_replace("\t","",$_emailaddr);
$_emailaddr = ereg_replace("\r","",$_emailaddr);
$_emailaddr = ereg_replace("\n","",$_emailaddr);
$_emailaddr = ereg_replace(" ","",$_emailaddr);
# Email addresses are not case sensitive
$_emailaddr = strtolower($_emailaddr);
# Must contain '@' and '.'
if ((!ereg("@",$_emailaddr)) || (!ereg(".",$_emailaddr))) {
$valid = "0";
}
# Must be at least 6 characters long (x@y.com or x@y.au)
elseif (strlen($_emailaddr) < 6) {
$valid = "0";
}
else {
# Split on the @ sign
$parts = split("@", $_emailaddr, 2);
# First part is user
$user = $parts[0];
# Second part is domain
$domain = $parts[1];
# Domain must contain at least 1 dot.
if (!ereg("\\.",$domain)) {
$valid = "0";
}
# Must be a least 3 characters (z.com or z.au)
elseif (strlen($domain) < 3) {
$valid = "0";
}
# May not start with a dot
elseif (ereg("^\\.",$domain)) {
$valid = "0";
}
# May not have more than one dot in sequence
elseif (ereg("\\.\\.",$domain)) {
$valid = "0";
}
else {
# User must be at least 1 character long
if (strlen($user) < 1) {
$valid = "0";
}
# User cannot contain a comma
elseif (ereg("\\,", $user)) {
$valid = "0";
}
else {
# Split on the . character
$parts = split("\\.", $domain);
# There must be at least two parts to a domain (a sub domain would
have 3 - a.b.com)
if (count($parts) < 2) {
$valid = "0";
}
else {
# First part is domain name
$name_at = count($parts) - 2;
$name = $parts[$name_at];
# Second part is domain extention
$ext_at = count($parts) - 1;
$ext = $parts[$ext_at];
$first_name = substr($name, 0, 1);
# Name must be at least one character
if (strlen($name) < 1) {
$valid = "0";
}
# Name cannot be more than 26 characters
if (strlen($name) > 26) {
$valid = "0";
}
# Extention must be 2 or 3 characters (.nu - .com)
elseif ((strlen($ext) > 3) || (strlen($ext) < 2)) {
$valid = "0";
}
# Domain can only contain the following characters
elseif (strspn($name, "abcdefghijklmnopqrstuvwxyz0123456789-.") !=
strlen($name)) {
$valid = "0";
}
# Domain can only start with the following characters
elseif (strspn($first_name, "abcdefghijklmnopqrstuvwxyz") < 1) {
$valid = "0";
}
# Extension can only contain the follow characters
elseif (strspn($ext, "abcdefghijklmnopqrstuvwxyz") !=
strlen($ext)) {
$valid = "0";
}
else {
$valid = "1";
}
}
}
}
}
return $valid;
}
function sendmail ($_address_file, $_email_from, $_email_from_name,
$_email_subject, $_email_message, $_mime_type) {
$f = 0;
print "<script
type=\"text/javascript\">makeListWindow();startListWindow();</script>";
foreach ($_address_file as $key => $value) {
$pieces = explode(",", $value);
foreach ($pieces as $piece_no => $piece_value) {
if ($piece_no == 0) {
$lastname[$key] = $piece_value;
}
if ($piece_no == 1) {
$firstname[$key] = $piece_value;
}
if ($piece_no == 2) {
$email[$key] = $piece_value;
}
}
$fullname = $firstname[$key].' '.$lastname[$key];
if ($fullname != ' ') {
$to = '"'.$fullname.'" <'.$email[$key].'>';
}
else {
$to = $email[$key];
}
if ($_email_from_name != '') {
$from = '"'.$_email_from_name.'" <'.$_email_from.'>';
}
else {
$from = $_email_from;
}
if ($_mime_type == "html") {
$headers = "From: $from\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$boundary = md5(uniqid(rand(), true));
$headers .= "Content-Type: multipart/mixed" .
"; boundary = $boundary\r\n\r\n";
$headers .= "This is a MIME encoded message.\r\n\r\n";
$headers .= "--$boundary\r\n" .
"Content-Type: text/html; charset=ISO-8859-1\r\n" .
"Content-Transfer-Encoding: 7bit\r\n\r\n";
}
else {
$headers = "From: $from\r\n";
}
$success = mail ($to, $_email_subject, $_email_message, $headers);
if ($success) {
$popup_address = "sent: ".$to."<br/>";
print "<script type=\"text/javascript\">var popupAddress = \"<?php
echo $popup_address;
?>\";newListWindow.document.write(popupAddress);</script>";
sleep ($_emaildelay * 60);
}
else {
$failed[$f] = $to;
$f++;
}
}
if ($failed > 0) {
print '<script type=\"text/javascript\">alert (\"Failure Sending
Email\");</script>';
print "The following addresses did not send:\r\n";
foreach ($failed as $key => $value) {
print $failed[$key]."\r\n";
}
}
}
if ($_POST['submit_check']) {
$valid = emailcheck ($email_from);
if (!$valid) {
print "<script type=\"text/javascript\">alert('Please enter a valid
email address in the EMAIL FROM field');</script>";
}
else {
$email_message =
file_get_contents($_FILES['message_file']['tmp_name']) or
die($errors['cant_open_message']);
$address_file = file($_FILES['address_file']['tmp_name']) or
die($errors['cant_open_address']);
sendmail ($address_file, $email_from, $email_from_name,
$email_subject, $email_message, $_POST['mime_type']);
}
showform ($email_from, $email_subject,
$_FILES['address_file']['name'], $_FILES['message_file']['name'],
$email_delay, $_POST['mime_type']);
}
else {
showform ($email_from, $email_subject,
$_FILES['address_file']['name'], $_FILES['message_file']['name'],
$email_delay, $_POST['mime_type']);
}
?>
most people have popup blockers which will cancel the new window. google
and yahoo toolbar will do this.
"astromac" <ob*********@gmail.com> wrote in message
news:11**********************@o13g2000cwo.googlegr oups.com... Fair enough. I work at a church and my boss wanted me to write a script to send emails to the congregation and have the progress of the emailing show up in another window. As far as why bother, it's what I was asked to do. As far as why not output the results in the same window, I didn't like how it printed the output at the top of the form and kept pushing the form down. I'm a civil engineer by trade so I'm sure the code is stupidly written and inefficient so be kind (I'm new to PHP and javascript). BTW, you're not helping a spammer - this is for folks who attend our conferences every year and have requested an HTML brochure rather than a printed brochure.
Anyway - here's the code in order to provide you with detail.
<?php $email_from = isset($_POST['email_from']) ? htmlentities($_POST['email_from']) : ''; $email_from_name = isset($_POST['email_from_name']) ? htmlentities($_POST['email_from_name']) : ''; $email_subject = isset($_POST['email_subject']) ? htmlentities($_POST['email_subject']) : ''; $email_delay = isset($_POST['email_delay']) ? htmlentities($_POST['email_delay']) : ''; $errors['cant_open_message'] = "<script type=\"text/javascript\">alert (\"Can't Open Message File\");</script>"; $errors['cant_open_address'] = "<script type=\"text/javascript\">alert (\"Can't Open Address File\");</script>";
function showform ($_email_from, $_email_subject, $_address_file, $_message_file, $_email_delay, $_mime_type) { print<<<_HTML_ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>Conference Email Form</title> <meta name="generator" content="BBEdit 8.2"> <script type="text/javascript"> var newListWindow; var newTextWindow; function makeListWindow() { if (!newListWindow || newListWindow.closed) { newListWindow = window.open("", "popList", "resizeable,scrollbars,height=400,width=400"); //delay writing until window exists in IE/Windows setTimeout("writeListWindow()", 50); } else if (newListWindow.focus) { newListWindow.focus(); } } function startListWindow() { var newContent = "<html><head><title>Successful Sends</title></head>"; newContent += "<body><h1>Successful Sends</h1><br/>"; newListWindow.document.write(newContent); } </script> <style type="text/css"> body { color: #00008B; font-family: "Trebuchet MS", sans-serif; font-size: 1em; } h1 { color: #FFFFFF; background-color: #00008B; text-indent: 6px; } form { border: 1px dashed #00008B; padding: 3px 6px 3px 6px; background-color: #EAF6FF; } form p { clear: left; margin: 0; padding: 0; padding-top: 5px; } form p label{ float: left; width: 30%; } input.txt { width: 250px; color: #00008B; background-color: #ADD8E6; border: 1px solid #00008B; font-weight: bold; } input.fil { color: #00008B; background-color: #ADD8E6; border: 1px solid #00008B; font-weight: bold; } input.del { width: 40px; color: #00008B; background-color: #ADD8E6; border: 1px solid #00008B; font-weight: bold; } input.btn { color: #00008B; background-color: #ADD8E6; border: 1px outset #00008B; font-weight: bold; } </style> </head> <body> <h1>Conference Email Form</h1> <form enctype="multipart/form-data" method="POST" action="$_SERVER[PHP_SELF]"> <p> <label for="from">Email From Address:</label> <input type="text" id="from" name="email_from" value="$_email_from" class="txt"> </p> <p> <label for="name">Email From Name:</label> <input type="text" id="name" name="email_from_name" value="$_email_from_name" class="txt"> </p> <p> <label for="subject">Email Subject:</label> <input type="text" id="subject" name="email_subject" value="$_email_subject" class="txt"> </p> <p> <label for="list">Address List:</label> <input type="file" size="32" id="list" name="address_file" class="fil"> </p> <p> <label for="message">Mail Message:</label> <input type="file" size="32" id="message" name="message_file" class="fil"> </p> <p> <label for="delay">Delay Between Email Sends:</label> <input type="text" id="delay" name="email_delay" value="$_email_delay" class="del"> minutes </p> <p> <label for="mime">Message Type:</label> <input type="radio" id="mime" name="mime_type" value="html"> HTML <input type="radio" id="mime" name="mime_type" value="text"> Plain Text </p> <br/> <br/> <p> Send Email<br/> <input type="submit" value="Process Now" name="submit" class="btn"> <input type="hidden" name="submit_check" value="1"> </p> </form> </body> </html> _HTML_; }
function emailcheck ($_emailaddr) { # Trim out 'null' characters $_emailaddr = ereg_replace("\t","",$_emailaddr); $_emailaddr = ereg_replace("\r","",$_emailaddr); $_emailaddr = ereg_replace("\n","",$_emailaddr); $_emailaddr = ereg_replace(" ","",$_emailaddr);
# Email addresses are not case sensitive $_emailaddr = strtolower($_emailaddr);
# Must contain '@' and '.' if ((!ereg("@",$_emailaddr)) || (!ereg(".",$_emailaddr))) { $valid = "0"; }
# Must be at least 6 characters long (x@y.com or x@y.au) elseif (strlen($_emailaddr) < 6) { $valid = "0"; }
else { # Split on the @ sign $parts = split("@", $_emailaddr, 2);
# First part is user $user = $parts[0];
# Second part is domain $domain = $parts[1];
# Domain must contain at least 1 dot. if (!ereg("\\.",$domain)) { $valid = "0"; }
# Must be a least 3 characters (z.com or z.au) elseif (strlen($domain) < 3) { $valid = "0"; }
# May not start with a dot elseif (ereg("^\\.",$domain)) { $valid = "0"; }
# May not have more than one dot in sequence elseif (ereg("\\.\\.",$domain)) { $valid = "0"; }
else { # User must be at least 1 character long if (strlen($user) < 1) { $valid = "0"; }
# User cannot contain a comma elseif (ereg("\\,", $user)) { $valid = "0"; }
else { # Split on the . character $parts = split("\\.", $domain);
# There must be at least two parts to a domain (a sub domain would have 3 - a.b.com) if (count($parts) < 2) { $valid = "0"; }
else { # First part is domain name $name_at = count($parts) - 2; $name = $parts[$name_at];
# Second part is domain extention $ext_at = count($parts) - 1; $ext = $parts[$ext_at]; $first_name = substr($name, 0, 1);
# Name must be at least one character if (strlen($name) < 1) { $valid = "0"; }
# Name cannot be more than 26 characters if (strlen($name) > 26) { $valid = "0"; }
# Extention must be 2 or 3 characters (.nu - .com) elseif ((strlen($ext) > 3) || (strlen($ext) < 2)) { $valid = "0"; }
# Domain can only contain the following characters elseif (strspn($name, "abcdefghijklmnopqrstuvwxyz0123456789-.") != strlen($name)) { $valid = "0"; }
# Domain can only start with the following characters elseif (strspn($first_name, "abcdefghijklmnopqrstuvwxyz") < 1) { $valid = "0"; }
# Extension can only contain the follow characters elseif (strspn($ext, "abcdefghijklmnopqrstuvwxyz") != strlen($ext)) { $valid = "0"; } else { $valid = "1"; } } } } } return $valid; }
function sendmail ($_address_file, $_email_from, $_email_from_name, $_email_subject, $_email_message, $_mime_type) { $f = 0; print "<script type=\"text/javascript\">makeListWindow();startListWindow();</script>";
foreach ($_address_file as $key => $value) { $pieces = explode(",", $value); foreach ($pieces as $piece_no => $piece_value) { if ($piece_no == 0) { $lastname[$key] = $piece_value; }
if ($piece_no == 1) { $firstname[$key] = $piece_value; }
if ($piece_no == 2) { $email[$key] = $piece_value; } } $fullname = $firstname[$key].' '.$lastname[$key]; if ($fullname != ' ') { $to = '"'.$fullname.'" <'.$email[$key].'>'; } else { $to = $email[$key]; } if ($_email_from_name != '') { $from = '"'.$_email_from_name.'" <'.$_email_from.'>'; } else { $from = $_email_from; }
if ($_mime_type == "html") { $headers = "From: $from\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $boundary = md5(uniqid(rand(), true)); $headers .= "Content-Type: multipart/mixed" . "; boundary = $boundary\r\n\r\n"; $headers .= "This is a MIME encoded message.\r\n\r\n"; $headers .= "--$boundary\r\n" . "Content-Type: text/html; charset=ISO-8859-1\r\n" . "Content-Transfer-Encoding: 7bit\r\n\r\n"; }
else { $headers = "From: $from\r\n"; }
$success = mail ($to, $_email_subject, $_email_message, $headers); if ($success) { $popup_address = "sent: ".$to."<br/>"; print "<script type=\"text/javascript\">var popupAddress = \"<?php echo $popup_address; ?>\";newListWindow.document.write(popupAddress);</script>"; sleep ($_emaildelay * 60); } else { $failed[$f] = $to; $f++; } }
if ($failed > 0) { print '<script type=\"text/javascript\">alert (\"Failure Sending Email\");</script>'; print "The following addresses did not send:\r\n"; foreach ($failed as $key => $value) { print $failed[$key]."\r\n"; } } }
if ($_POST['submit_check']) { $valid = emailcheck ($email_from); if (!$valid) { print "<script type=\"text/javascript\">alert('Please enter a valid email address in the EMAIL FROM field');</script>"; } else { $email_message = file_get_contents($_FILES['message_file']['tmp_name']) or die($errors['cant_open_message']); $address_file = file($_FILES['address_file']['tmp_name']) or die($errors['cant_open_address']); sendmail ($address_file, $email_from, $email_from_name, $email_subject, $email_message, $_POST['mime_type']); } showform ($email_from, $email_subject, $_FILES['address_file']['name'], $_FILES['message_file']['name'], $email_delay, $_POST['mime_type']); } else { showform ($email_from, $email_subject, $_FILES['address_file']['name'], $_FILES['message_file']['name'], $email_delay, $_POST['mime_type']); } ?> This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Grzegorz |
last post by:
Hello, I'm using eclipse with pydev plugin, I'm working on a program using
wxpython .
When I'm executing that application standard error output does not show in
eclipse console window - wxpython...
|
by: Magesh |
last post by:
Hi,
I am trying to do the following
1. On form submit, open a window with three frames
2. Set the target as one of the frames
3. Set the action for the frame
It is working properly in...
|
by: Teis Draiby |
last post by:
I am working on a Win32 program with an additional console window to output
messages. I also want to type commands in the console window. Is there any
common way to achieve that?
For example how...
|
by: Kevin Mansel via .NET 247 |
last post by:
Ok, basically this is my problem. I'm building a console app tocall a dos program. So i'm using the Shell command to call theprogram, now depending on what happens, I want to read theoutput that...
|
by: David A. Beck |
last post by:
When I do a debug.print("blabla") in VB (VS2005) it doesn't show up in the
output window, what gives?
|
by: Alec MacLean |
last post by:
Hi,
I've created a small application for our company extranet (staff bulletins)
that outputs a list of links to PDF's that are stored in a SQL table. The
user clicks a link and the PDF is...
|
by: Glen |
last post by:
Hello,
I've written a script in python and put together a simple QFrame with a
QTextBrowser with Designer. I've translated the C++ into python using
puic4. The .py file is called outputWin.py. ...
|
by: =?Utf-8?B?R2lkaQ==?= |
last post by:
Hi,
In my windows applicationm, i need to excute a batch file.
this batch file throws some text and questions to the screen, i need to
catch the standard Output, check if it's a question, in...
|
by: =?Utf-8?B?ZGlzcGxheW5hbWU=?= |
last post by:
The following code used to outputs to Excel 2003 fine. Do I need to change it
to output to Excel 2007?
<%
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader...
|
by: CloudSolutions |
last post by:
Introduction:
For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
|
by: ryjfgjl |
last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
| |