473,320 Members | 1,974 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

Using a single database connection script for multiple domains

348 100+
Hello everyone and happy Sunday. :)

Can anyone advise if using a single database class for a single domain and 1 subdomain is the correct way to go? I have:

mydomain.com (and)
sub.mydomain.com

I would like to use a single script to connect to the database. Is this advisable? The subdomain is the private side and the domain is the public side.

Thanks,

Frank
Jun 30 '08 #1
32 4489
fjm
348 100+
bump.

Should have started a new post.. I'm losing my mind. :)
Jun 30 '08 #2
im guessing that your pages are protected in some way?

if you do wouldn't it just require you to use the include statement? using it after the page security would mean access control would have to be passed before being able to see that page
Jun 30 '08 #3
ak1dnar
1,584 Expert 1GB
Could you please tell us more on your public side and private side. basically your domain and subdomain is available for public access right? In other words can anyone access http://sub.yourdomain.com. ?

In generally subdomain is nothing but its again another dir in public_html dir (I'm talking about apache on linux). if you really want to put your secure files out side the public_html folder, you can store them in a top level derectory of your server. then public users or programs can't access those files. but Php-Engine will be able to read the top level dir s on the server.

-Thanks
Jun 30 '08 #4
fjm
348 100+
Could you please tell us more on your public side and private side. basically your domain and subdomain is available for public access right? In other words can anyone access http://sub.yourdomain.com. ?

In generally subdomain is nothing but its again another dir in public_html dir (I'm talking about apache on linux). if you really want to put your secure files out side the public_html folder, you can store them in a top level derectory of your server. then public users or programs can't access those files. but Php-Engine will be able to read the top level dir s on the server.

-Thanks
Hi and thanks everyone for the responses. I will explain what I have done and if someone sees a security issue, please let me know.

mydomain.com is the public access side and then I have admin.mydomain.com which is the private side. The public side uses a database connection script as well as the private side.

I have a login box on the public side and have decided to log the user into the private side using the public side database script. Once the user is on the private side, the private side database script takes over. I just wanted to keep all the queries on the public side seperate from the private side. Is this a good practice?

There are no real "files" to move, it is just a private site with normal html however, only people that are authorized to be there should have access.
Jul 1 '08 #5
pbmods
5,821 Expert 4TB
Heya, Frank.

Generally, you should be able to re-use the same class because if you designed your DBAL properly, it won't have any domain-specific code in it.

The trick comes in when you want to use different login credentials (perhaps the private domain has INSERT and DELETE privileges on certain tables that you don't want the public domain to be able to run). But all you need to do there is supply a relative path to the credentials.

E.g.,:

Expand|Select|Wrap|Line Numbers
  1. $dbCredentials = require_once "{$_SERVER['DOCUMENT_ROOT']}/../includes/dbCredentials.php";
  2.  
  3. $db = new database($dbCredentials);
  4.  
Or something to that effect. Since $_SERVER['DOCUMENT_ROOT'] will be different depending on the subdomain, you can use the same code, but it will generate different results per subdomain.
Jul 2 '08 #6
fjm
348 100+
Hey Pbmods,

Thanks for the response. Please picture what I am trying to do here. I have a main domain and a sub domain. The main domain is public and the sub is private and is where my app will reside.

I have a login box on the PUBLIC side which used the DBAL script that we were discussing the other day. I have all of my calls to the dbal class in my process script as you and Atli suggested I do. Works great by the way (Thank you! :) )

The problem arose the other day when I implemented a session store. My process script is the default page which starts the initial session.

I quickly learned that the session that is initiated is the session used for the duration of the visit. That being said, this login box is the authentication method into the sub domain.

Now, the public side uses a dbal also and I was thinking that I should probably only be using 1 dbal script for both sides, then that didn't seem like it would be secure plus why would I want queries executed from the app whilst the public queries were running off the same script. For some reason it just doesn't sit well with me. I am really concerned about security on this one.

What I did was use the dbal on the app (private) side to log the user into the subdomain from the public side.

So to recap, user logs into private side from public side using dbal from Private side. dbal on public side starts the session store and runs the queries for the public side.

If you say I should be using 1 script, I will take your suggestion and rework it to use 1 dbal. What are your feelings?

Thanks for the help and direction Pbmods!

BTW: Sorry I didn't have a chance to check back sooner, I kind of got tied up and it slipped my mind.

Frank
Jul 2 '08 #7
pbmods
5,821 Expert 4TB
When you are require()'ing files in PHP, PHP doesn't particularly care where the files are located. You can put a file in one location and access it from a completely different one (technically, you could even host the file on a totally separate server, but let's not go into orbit here).

As long as your DBAL script is generic enough that it could run on *any* domain, you only need one. The instant you start putting domain-specific code in there, you lose that flexibility.

So for example, if you are including queries or credentials in your DBAL script, you'll need a separate one for each domain.

If, on the other hand, you created a DBAL script in a common location that *only* implemented (rough example here:) a connect(), disconnect() and query() method and then stored the queries themselves in separate file on each domain, you could make this setup work quite nicely and only have to maintain a single DBAL script.

So you might have a setup something like this:
  • /webroot/common/includes/dbal.php
  • /webroot/common/includes/session.php
  • /webroot/subdomains/public/includes/sess_public.php
  • /webroot/subdomains/private/includes/sess_private.php

dbal.php would contain your generic DBAL:
Expand|Select|Wrap|Line Numbers
  1. class DBAL
  2. {
  3.   public function __construct( $hostname, $username, $password, $database ) { ... }
  4.   public function connect(  ) { ... }
  5.   public function disconnect(  ) { ... }
  6.   public function query( $sql ) { ... }
  7. }
  8.  
session.php would probably be abstract or an interface:
Expand|Select|Wrap|Line Numbers
  1. interface Session
  2. {
  3.   public static function start(  );
  4.   public static function stop(  );
  5. }
  6.  
And then you could put your subdomain-specific code in the session.php file for each subdomain:

Expand|Select|Wrap|Line Numbers
  1. require_once '/webroot/common/includes/session.php';
  2.  
  3. class Session_Public implements Session
  4. {
  5.   public static function start(  ) { ... /* Login stuff for public subdomain. */ ... }
  6.   public static function stop(  ) { ... }
  7. }
  8.  
And a similar file for your private subdomain.

This way you can consolidate all your generic code into a single file while still retaining the flexibility to customize your app's behavior based on the subdomain.
Jul 3 '08 #8
fjm
348 100+
If, on the other hand, you created a DBAL script in a common location that *only* implemented (rough example here:) a connect(), disconnect() and query() method and then stored the queries themselves in separate file on each domain, you could make this setup work quite nicely and only have to maintain a single DBAL script.
Ok, this is exactly what I currently have. I am using two completely seperate databases though. One database is for the public side and the other is for the private side.

Actually.. you've inspired me. I am going to put the "common" classes in a common location and try and follow your map above. I will post back with any questions. :) Thanks Pbmods!
Jul 3 '08 #9
pbmods
5,821 Expert 4TB
There's two ways that I would approach this situation.

You could create a factory class (I'm a particular fan of this one, especially combined with a singleton DBAL connection):

Expand|Select|Wrap|Line Numbers
  1. class DB
  2. {
  3.   const
  4.     DB_PUBLIC = 'publicDBName',
  5.     DB_PRIVATE = 'privateDBName';
  6.  
  7.   public static function getDB( $database = self::DB_PUBLIC )
  8.   {
  9.     switch( $database )
  10.     {
  11.         case self::DB_PUBLIC:
  12.         case self::DB_PRIVATE:
  13.           return new DBAL('hostname', 'username', 'password', $database);
  14.         break;
  15.  
  16.         default:
  17.           /** Error condition. */
  18.         break;
  19.     }
  20.  
  21.     /* Or:
  22.       switch( $database )
  23.       {
  24.         case self::DB_PUBLIC:
  25.           $username = '...';
  26.           $password = '...';
  27.         break;
  28.  
  29.         case self::DB_PRIVATE:
  30.           $username = '...';
  31.           $password = '...';
  32.         break;
  33.       }
  34.  
  35.       if( isset($username) and isset($password) )
  36.       {
  37.         return new DBAL('hostname', $username, $password, $database);
  38.       }
  39.     */
  40.   }
  41. }
  42.  
And then simply define your DB_NAME on a per-subdomain basis:

On the public subdomain, you might do something like this:
Expand|Select|Wrap|Line Numbers
  1. define('DB_NAME', DB::DB_PUBLIC);
  2.  
And on the private subdomain, you might do something like this:
Expand|Select|Wrap|Line Numbers
  1. define('DB_NAME', DB::DB_PRIVATE);
  2.  
Anywhere you need to create a new DB connection, you could then simply use this code:
Expand|Select|Wrap|Line Numbers
  1. $db = DB::getDB(DB_NAME);
  2.  
Now this works reasonably well, but you would be putting domain-specific code in a common file, which might not be desirable depending on how you want to be able to scale your application.

An alternative approach would be to simply create a credentials file on each subdomain. For example, the public one might contain a getDB.php that looks like this:

Expand|Select|Wrap|Line Numbers
  1. return
  2.   new
  3.   DBAL
  4.   (
  5.       'public_hostname'
  6.     , 'public_username'
  7.     , 'public_password'
  8.     , 'public_database'
  9.   );
  10.  
You might also want to consider making DBAL into a singleton, but that is beyond the scope of this thread.
Jul 3 '08 #10
fjm
348 100+
Hmm.. Ok, I see what you are doing I think. I never thought about using a switch for that. Oh... your good Mr. Pbmods. :)

What I did since my last post was put the DBAL and session scripts into a common dir under my docroot and changed the inc path, then deleted the second DBAL script I was using. I could not connect afterwards, so I modified the DBAL constructor to accept the DBName of the script calling it then it worked.

Let me ask you.. What would the advantage be of using a switch and DEFINE in the scripts to call the DBAL over the way I have it now?

Thanks PBmods!

EDIT:
I think I can answer my own question. Correct me if I am wrong, but I could just define the DBAL at the top of the script and go. Instead of changing the DBName (the way I currently have it) wherever and however many times I am instantiating the object. Right?
Jul 3 '08 #11
pbmods
5,821 Expert 4TB
This is correct, Mr. Fjm.

Incidentally, you might also find this useful if you want to have a separate development database. This way you can test features and fix bugs without affecting your production data.

You might end up with something like this:
Expand|Select|Wrap|Line Numbers
  1. switch( $database )
  2. {
  3.   /** Most common one goes first b/c switch stops as soon as it hits a match. */
  4.   case self::DB_PUBLIC:
  5.   break;
  6.  
  7.   case self::DB_PRIVATE:
  8.   break;
  9.  
  10.   case self::DB_PUBLIC_DEBUG:
  11.   break;
  12.  
  13.   case self::DB_PRIVATE_DEBUG:
  14.   break;
  15. }
  16.  
It's a lot easier to keep track of your DB credentials when you only have to maintain them in one location.
Jul 4 '08 #12
fjm
348 100+
I think I may have hit a bug that I don't know how to fix. I don't know where or why but after I consolidated the DBAL scripts, I now have a mysql db error at the bottom of the page. "table site.sessions doesn't exist". The sessions table resides on the "app" database and not on the "site db.

I have this call at the top of my script for the session store:
[PHP]require_once("../common/inc/db.php");
$db = new Database('app');
[/PHP]
Then I have this below in a switch for the public website:
[PHP]$db = new Database('site');
$id = (int) $db->QuoteSmart($id);[/PHP]
The "app" and "site" are the dbs that are being passed to the constructor.
These are the only two calls in the script and the session table is being updated so I am not quite sure what is happening here. Anyone care to take a stab?
Here are the relavent lines in the db class:
[PHP]
private $_LinkID;
public $Query;
public $Row;
public $NRows;
public $Record;

public function __construct($dbName)
{
$this->LinkID = null;
$this->Query = "";
$this->Row = 0;
$this->NRows = 0;
$this->Record = array();
$this->Connect('localhost','dev','password');
$this->SelectDB($dbName);
}

public function Connect($host,$user,$pass)
{
$this->_LinkID = mysql_connect($host,$user,$pass) or die(mysql_error());
return $this->_LinkID;
}

public function SelectDB($dbName)
{
mysql_select_db($dbName);
return true;
}[/PHP]

Thanks,

Frank
Jul 6 '08 #13
pbmods
5,821 Expert 4TB
Are you using a custom session handler (via session_set_save_handler() (http://php.net/session_set_save_handler))?

Somewhere in your 'site' code, there's a query run on the session table (perhaps in a common include file somewhere? The login/logout script, perhaps?).
Jul 6 '08 #14
fjm
348 100+
Are you using a custom session handler (via session_set_save_handler() (http://php.net/session_set_save_handler))?

Somewhere in your 'site' code, there's a query run on the session table (perhaps in a common include file somewhere? The login/logout script, perhaps?).
Yes Pbmods, I am using session_set_save_handler.

I have looked and looked. I cannot find anything where the session store is using the "site" DBAL.

Is there a debugger or something I can use? Maybe something that will step me through what is happening so I can where it is messing up?
Jul 6 '08 #15
pbmods
5,821 Expert 4TB
What's your session write function look like? Are you storing session data in the database?

You might need to create a separate instance of Database specific to the 'site' db inside of your session handling functions/class.
Jul 6 '08 #16
fjm
348 100+
What's your session write function look like? Are you storing session data in the database?
Yes, sessions are being stored in the database.

[PHP] public function write($id, $data)
{
$time = time() + $this->life_time;
$newid = mysql_real_escape_string($id);
$newdata = mysql_real_escape_string($data);
$sql = "REPLACE sessions(session_data,expires,session_id) VALUES('$newdata', '$time', '$newid')";
$rs = $this->_LinkID->Query($sql);
return TRUE;
}[/PHP]
Pbmods.. I have been at this for quite a while. I just can't figure it out. I was thinking that maybe my dbal script was not correct. Please let me know what you think.

Thanks,

Frank
Jul 7 '08 #17
pbmods
5,821 Expert 4TB
Where is $this->_LinkID initialized?
Jul 7 '08 #18
fjm
348 100+
Where is $this->_LinkID initialized?
In the constructor of sessions.php. It is being passed from the action/process script which is my default index page from the docroot.

I posted an example of that above. Here it is again:
This is for the sessions in the index page
[PHP]
require_once("../common/inc/db.php");
$db = new Database('app');
require_once("../common/inc/sessions.php");
$sess = new SessionManager($db); session_start();
[/PHP]
This is for the site, also in the index page:
[PHP]
$db = new Database('site');
$id = (int) $db->QuoteSmart($id);
require_once("lib/classes/page.php");
$page = new Page($id,$db);
[/PHP]
Jul 7 '08 #19
pbmods
5,821 Expert 4TB
Ah. Okay, I see what the problem is.

In Database::SelectDB():
Expand|Select|Wrap|Line Numbers
  1. public function SelectDB($dbName)
  2.     {
  3.         mysql_select_db($dbName);
  4.         return true;
  5.     }
  6.  
Note that mysql_* methods will operate on the last-opened connection unless you specify a connection resource.

In order to keep your connections separate, you need to do this:

Expand|Select|Wrap|Line Numbers
  1. public function SelectDB($dbName)
  2.     {
  3.         mysql_select_db($dbName, $this->_LinkID);
  4.         return true;
  5.     }
  6.  
And similarly for Database::Query().
Jul 7 '08 #20
fjm
348 100+
Ok, I have made those changes, but the same error is appearing.

Here is the db.php after the changes:

[PHP] private $_LinkID;
public $Query;
public $Row;
public $NRows;
public $Record;

public function __construct($dbName)
{
$this->LinkID = null;
$this->Query = "";
$this->Row = 0;
$this->NRows = 0;
$this->Record = array();
$this->Connect('localhost','cindy','password');
$this->SelectDB($dbName);
}

public function Connect($host,$user,$pass)
{
$this->_LinkID = mysql_connect($host,$user,$pass);
return $this->_LinkID;
}

public function SelectDB($dbName)
{
mysql_select_db($dbName, $this->_LinkID);
return true;
}

public function Query($sql)
{
$this->Query = mysql_query($sql, $this->_LinkID);
return $this->Query;
}[/PHP]
I was thinking it was exactly the same thing but I guess not.. Pbmods, do you think I would be better off maybe putting the two dbal scripts back the way they were before? I'm truly lost on this one.
Jul 7 '08 #21
pbmods
5,821 Expert 4TB
Perhaps $db is getting overwritten? Try renaming $db in one of your files:
Expand|Select|Wrap|Line Numbers
  1. require_once("../common/inc/db.php");
  2.   $sess_db = new Database('app');
  3.   require_once("../common/inc/sessions.php");
  4.   $sess = new SessionManager($sess_db);  session_start();
  5.  
Jul 7 '08 #22
fjm
348 100+
Ok, I changed the "site" calls from $db->... to $db1->... and I am still gettint the error. I do however think you are on the right track with the db class. I just don't have the knowledge to know exactly what to change.
Jul 7 '08 #23
pbmods
5,821 Expert 4TB
Hm.

Try adding this to your Database class:

Expand|Select|Wrap|Line Numbers
  1. public function Query($sql)
  2.     {
  3.         $bt = debug_backtrace();
  4.         echo '<pre>', $sql, '</pre> (Called from ', $bt[0]['file'] . ':' . $bt[0]['line'], ')<br />';
  5.  
  6.         $this->Query = mysql_query($sql, $this->_LinkID);
  7.         return $this->Query;
  8.     }
  9.  
I think you want $bt[0]. Might be $bt[1]; I can't remember.
Jul 7 '08 #24
fjm
348 100+
ok, thanks for the help pbmods. Here is the output:

SELECT session_data FROM sessions WHERE session_id = '11r84vpddpvvnh31lrn5e8m6t6' AND expires > 1215405874
(Called from C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\common\inc\sessions.ph p:50)
SELECT t1.title FROM site AS t1 WHERE t1.page_id = 1
(Called from C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\cadetdispatch\lib\clas ses\page.php:49)
REPLACE sessions(session_data,expires,session_id) VALUES('', '1215407315', '11r84vpddpvvnh31lrn5e8m6t6')
(Called from C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\common\inc\sessions.ph p:66)
Jul 7 '08 #25
pbmods
5,821 Expert 4TB
That last one is what's causing the error?
Jul 7 '08 #26
fjm
348 100+
Yes. It is the last one.

Notice that the select statement above that has a linkid for "site" and the select statement (last one) uses a linkid for the "app". For some reason the db script isn't switching back from the site to the session script.
Jul 7 '08 #27
pbmods
5,821 Expert 4TB
Only thing that comes to mind is the use of mysql_real_escape_string() and possibly $db->QuoteSmart().

mysql_real_escape_string() also takes a connection resource as its second parameter. I can't imagine that would cause the connections to go out of sync, but I guess it's worth a shot.

Failing that, I'd need to see the full source of the session handler and index.php to get a better idea of what's going on.
Jul 7 '08 #28
fjm
348 100+
Only thing that comes to mind is the use of mysql_real_escape_string() and possibly $db->QuoteSmart().

mysql_real_escape_string() also takes a connection resource as its second parameter. I can't imagine that would cause the connections to go out of sync, but I guess it's worth a shot.

Failing that, I'd need to see the full source of the session handler and index.php to get a better idea of what's going on.
Ok, Pbmods. I will try that and see where it takes me. It really is strange. I will let you know what happens. Thanks so much for the help!
Jul 7 '08 #29
fjm
348 100+
You might need to create a separate instance of Database specific to the 'app' db inside of your session handling functions/class.
This is really weird. I created a totally seperate instance of the db inside the session class then instantiated the session in the index file. I am still getting the exact same error. How can this be??

I have the db instance totally seperated from the index file. Wouldn't this indicate that the problem is in fact inside the database class?
Jul 8 '08 #30
fjm
348 100+
I am just curious here but what I am thinking may be the issue has to do with what Atli had mentioned in his post Here. See post #19. Could this be the same type of thing happening in this case?

I'm sorry this thread has been so long. :(
Jul 8 '08 #31
pbmods
5,821 Expert 4TB
To which part of that post are you referring?

Does the problem occur on every page, or just certain ones?
Jul 9 '08 #32
fjm
348 100+
To which part of that post are you referring?
Hey Pbmods,

I was referring to post #19 where I asked Atli about using $this->Name when he initialized it in the constructor and again in the method.

Atli said that he needed to initialize it in the method because if he didn't, the output from that method would echo the prior return value. I was almost certain that I was onto something there. I thought that somehow the database method in the dbal was using the prior returned value of "site".

Does the problem occur on every page, or just certain ones?
The database error occurs on every page.

After 4 days, I finally fixed it. I got it last night actually. Matoma had given me a DBAL a while back to study and I was almost convinced that the issue was in something I messed up in the DBAL class I wrote so I ditched my script and used Matoma's script for troubleshooting purposes.

The exact same problem was happening. I then went into the sessions class and instantiated a database object for each and every method that needed db access. The problem went away immediately.

I still don't understand why the way we had it didn't work. If in my index file, I refer to the database I need to use like:
[PHP]
require("database.php");
require("session.php");
$db = new Database('application'); <------ Notice "application"
$sess = new Session($db);
session_start();
[/PHP]
"application" is the database that is being passed into the constructor of the DBAL. Then the sessions class is passed the value of $db. Shouldn't it continue to use the "application" db?

Then below that on the index page I have the "site" pages being loaded from the database from the "site" database. Somewhere in the mix of things, when the session values are written the sessions class is no longer using the "application" database but has switched over to using the "site" database. The error that was being generated was that "site.sessions" was not there. the sessions table resides on the "application" database and not the site.

Really strange. I am still very much a nube with OOP and I don't yet have the experience to know exactly why it isn't working as expected.

Is there something you can turn me onto that will help me in troubleshooting these types of errors?

I'm cool with leaving the database objects in the session class unless you know what is causing this behavior.
Jul 10 '08 #33

Sign in to post your reply or Sign up for a free account.

Similar topics

16
by: noah | last post by:
Does PHP have a feature to associate Cookie sessions with a persistent database connection that will allow a single transaction across multiple HTTP requests? Here is how I imagine my process: I...
1
by: Paradigm | last post by:
Does anyone know how I can use vba in access to run a script that is stored as a file. I can make a connection to mysql database and run sql statements but this sql statement is very long (creates...
4
by: chris.dunigan | last post by:
I'm looking for an example of how to execute an existing DTS­ package from an ASP (VB)script and would appreciate any and all response. ­I don't even know if it's possible Thanks - Chuck...
121
by: typingcat | last post by:
First of all, I'm an Asian and I need to input Japanese, Korean and so on. I've tried many PHP IDEs today, but almost non of them supported Unicode (UTF-8) file. I've found that the only Unicode...
9
by: Abhishek Srivastava | last post by:
Hello All, In IIS 6.0 We have a concept of worker processes and application pools. As I understand it, we can have multiple worker process per appliction pool. Each worker process is dedicated...
0
by: Dimitar | last post by:
Hi, I have a program in C/C++, with embedded SQL, with a single thread of execution. I am trying to establish two database connections, to the same database, so I can have concurrent,...
35
by: keerthyragavendran | last post by:
hi i'm downloading a single file using multiple threads... how can i specify a particular range of bytes alone from a single large file... for example say if i need only bytes ranging from...
13
by: Samir Chouaieb | last post by:
Hello, I am trying to find a solution to a login mechanism for different domains on different servers with PHP5. I have one main domain with the user data and several other domains that need...
0
by: David | last post by:
- Are there any peculiarities with using curs.executemany(...) vs. multiple How many times are you calling execute vs a single executemany? The python call overhead will add up for thousands of...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
0
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...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.