> -----Original Message----- > From: John Gostick > Sent: 14/08/04 15:19
> I have a quick question about using the PHP die() function. [...] > I changed the code to this: > > $connection = mysql_connect($host, $user, $password) > or die("Error connecting to SQL server"); > $db = mysql_select_db($database, $connection) > or header('Location: ../errors/databaseselect.php'); > > Which works fine (tested by deliberately misnaming database so it can't find it). > > However if I then use the same approach for the server connection error, > like below, it doesn't work. > > > $connection = mysql_connect($host, $user, $password) > or header('Location: ../errors/servererror.php'); On failure, this causes the header to be sent, but doesn't actually stop execution of your script, so... > $db = mysql_select_db($database, $connection) this will now fail because you don't have a valid $connection. > or header('Location: ../errors/databaseselect.php'); The bottom line is, whenever you issue a header("Location: ....") call, you also need to cause the script to die if your logic demands that -- so the above should be written something like: if (!$connection = mysql_connect($host, $user, $password)): header('Location: ../errors/servererror.php'); die(); endif; if (!$db = mysql_select_db($database, $connection)): header('Location: ../errors/databaseselect.php'); die(); endif; (And, BTW, the HTTP definition says that the Location: header should specify a full absolute URL, so that should be: header("Location: http://your.server.name/path/to/errors/servererror.php"); etc.) Cheers! Mike -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php