www.webdeveloper.com
Results 1 to 4 of 4

Thread: ODBC connecting to MSSQL PHP Error?

  1. #1
    Join Date
    Nov 2017
    Posts
    3

    ODBC connecting to MSSQL PHP Error?

    Hi,

    I was wondering if someone could lend me a hand on the issue im having. We currently have an internal web for our users. The website was created by another person using PHP and that person we cannot reach them. The website was hosted using XAMPP on a windows server using ODBC to connect to a windows sql server for that database.

    Currently I migrated the htdocs to a ubuntu Server 14.04 running NGINX with php5.

    I installed the current packages and i was succefuly able to connect to the database (see picture)

    My issue is on the website when i put the username and password it should authenticate to the db of windows but instead it gives me this error on the NGINX log

    PHP Code:
    PHP Warning:  odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data sourceSQL state S1000 in SQ
    LConnect 

    this is my odbc.ini
    PHP Code:
    [MSSQL]
    Description MS SQL Server
    Driver
    =/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
    Server 
    192.168.1.152
    UID 
    intranet
    PWD 
    mypassword
    ReadOnly 
    No
    Port 
    1433 

    this is my freetds.conf

    PHP Code:
    # A typical Microsoft server
    [MSSQL]
        
    host 192.168.1.152
        port 
    1433
            tds version 
    8.0
            initial block size 
    512 

    this is my odbcinst.ini
    PHP Code:
    [FreeTDS]
    Description FreeTDS driver
    Driver
    =/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
    Setup
    =/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
    FileUsage 
    1
    UsageCount 

    this is my NGNIX CONF
    PHP Code:
    # You may add here your
    # server {
    #    ...
    # }
    # statements for each of your virtual hosts to this file

    ##
    # You should look at the following URL's in order to grasp a solid understanding
    # of Nginx configuration files in order to fully unleash the power of Nginx.
    # http://wiki.nginx.org/Pitfalls
    # http://wiki.nginx.org/QuickStart
    # http://wiki.nginx.org/Configuration
    #
    # Generally, you will want to move this file somewhere, and start with a clean
    # file but keep this around for reference. Or just disable in sites-enabled.
    #
    # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
    ##

    server {
        
    listen 80 default_server;
        
    listen [::]:80 default_server ipv6only=on;

        
    root /var/www/html/xampp/htdocs/;
        
    index index.html index.htm index.php index2.php;

        
    # Make site accessible from http://localhost/
        
    server_name 192.168.1.3;

        
    location / {
                     
    try_files $uri $uri/ /index.php?$args;
            
    # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            #try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
        
    }

        
    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #    proxy_pass http://127.0.0.1:8080;    
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        #error_page 500 502 503 504 /50x.html;
        #location = /50x.html {
        #    root /usr/share/nginx/html;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        
    location ~ \.php$ {
        
    #    fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #    # With php5-cgi alone:
        #    fastcgi_pass 127.0.0.1:9000;
        #    # With php5-fpm:
            
    fastcgi_pass unix:/var/run/php5-fpm.sock;
            
    fastcgi_index index.php;
            include 
    fastcgi_params;
        }

        
    # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen 8000;
    #    listen somename:8080;
    #    server_name somename alias another.alias;
    #    root html;
    #    index index.html index.htm;
    #
    #    location / {
    #        try_files $uri $uri/ =404;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen 443;
    #    server_name localhost;
    #
    #    root html;
    #    index index.html index.htm;
    #
    #    ssl on;
    #    ssl_certificate cert.pem;
    #    ssl_certificate_key cert.key;
    #
    #    ssl_session_timeout 5m;
    #
    #    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    #    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    #    ssl_prefer_server_ciphers on;
    #
    #    location / {
    #        try_files $uri $uri/ =404;
    #    }
    #} 
    This is my index2.php which is the front page
    PHP Code:
    <html>
    <head>
        <title>Intranet</title>
    </head>
    <?php
    require_once('barras.php');
    $seguir=true;
     
    if (isset(
    $B1))
    {
        if (
    $B1=="Entrar")
        {
            
    $rsodbc_exec($conexion,"select nombre,nivel,seccion,cargo from tblpersonal where usuario='$usuario' and clave='$clave'");
            if (
    odbc_fetch_row($rs))
            {
     
                
    $nivel=odbc_result($rs,"nivel");
                
    $nombre=odbc_result($rs,"nombre");
                
    $seccion=odbc_result($rs,"seccion");
                
    $cargo=odbc_result($rs,"cargo");
     
                
    $_SESSION["nivel"] = $nivel;
                
    $_SESSION["usuario"] = $usuario;
                
    $_SESSION["nombre"] = $nombre;
                
    $_SESSION['seccion'] = $seccion;
                
    $_SESSION['cargof'] = $cargo;
                echo 
    "<frameset framespacing=\"0\" border=\"1\" frameborder=\"1\" rows=\"90,*\">
                   <frame name=\"superiord\" target=\"izquierdo\" src=\"menusup.htm\" scrolling=\"auto\" >
                   <frameset framespacing=\"0\" border=\"1\" frameborder=\"1\" cols=\"220,*\">
                       <frame name=\"izquierdo\" scrolling=\"auto\" noresize target=\"principal\" src=\"inicial.htm\">
                       <frame name=\"principal\" src=\"titulo.htm\" marginwidth=\"1\" marginheight=\"1\" scrolling=\"auto\">
                   </frameset>
                   <noframes>
                       <body>
                           <p>Esta página usa marcos, pero su explorador no los admite.</p>
                       </body>
                   </noframes>
               </frameset>"
    ;
            }
            else
            {
                echo 
    "<body link=\"#FFFFFF\" alink=\"#FFFFFF\" text=\"#FFFFFF\" bgcolor=\"#003366\" style=\"font-family: Arial\">
               <p><center><h2>Clave Incorrecta</center></h2></p>
               </body>"
    ;
            }
        }
        else
        {
            
    //$nivel=$_SESSION['nivel'];
        
    }
    }
    else
    {
        echo 
    "<body link=\"#FFFFFF\" alink=\"#FFFFFF\" text=\"#FFFFFF\" bgcolor=\"#003366\" style=\"font-family: Arial\">
       <p><center><h2>Debe realizar la Autenticación de Seguridad</center></h2></p>
       </body>"
    ;
    }
    ?>
    </html>
    and lastly the barras.php in which the index2 connect to php when then the barras.php tries to authenticate with the odbc
    PHP Code:
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MSSQL"
    # HTTP="true"
    $hostname_barras "192.168.1.152";
    $connection odbc_connect("MSSQL","intranet","mypassword");
    ?>
    Thank you

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    22,286
    Any difference if you try a "DSN-less" connection? Something like:
    PHP Code:
    $server '192.168.1.152'// possibly append ':1433' to this?
    $database 'my_database_name'// change to actual DB name
    $user 'intranet';
    $password 'mypassword';
    $connection odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;"$user$password); 
    Personally, I'd be more inclined to use PDO if possible? http://php.net/manual/en/ref.pdo-dblib.php
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  3. #3
    Join Date
    Nov 2017
    Posts
    3
    Thanks for the reply, i tried changing to your code but im getting this error

    SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /var/www/html/xampp/htdocs/barras.php on line 6
    Hopefully in the future as im trying to migrate this website which was on a xammp and wanting to move to NGINX

    Thank you

  4. #4
    Join Date
    Nov 2017
    Posts
    3
    EDIT:
    So this is odd so i edit it again the barras.php to this

    <?php
    $connection = odbc_connect("MSSQL","intranet","mypassword");
    ?>
    i then ran the php file no issue ---see picture
    https://imgur.com/a/gYu65

    so then i went to the website 192.168.1.3 and entered username and password and i would get this--see picture
    https://imgur.com/a/6AVYT

    So i checked the logs of NGINX
    and i get this
    "PHP message: PHP Warning: odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect in /var/www/html/xampp/htdocs/barras.php on line 2" while reading response header from upstream, client: 192.168.40.38, server: 192.168.1.3, request: "POST /index2.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.168.1.3", referrer: "http://192.168.1.3/"
    now im thinking its a NGINX issue with the ODBC or the php?

    Thank you

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.44038 seconds
  • Memory Usage 2,933KB
  • Queries Executed 15 (?)
More Information
Template Usage (34):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (8)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates