Mysql abfrage über PHP nur von "localnet" trotz berechtigungen

  • PHP

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Mysql abfrage über PHP nur von "localnet" trotz berechtigungen

    Hallo zusammen,

    Ich habe das Problem das ich mit folgendem Script nur von "intern/localhost" auf die DB zugreiffen kann:

    PHP-Quellcode

    1. <?php
    2. $url="urlzuserver.ch";
    3. $user="raspberry_pi";
    4. $pass="test";
    5. $dbName="db_stundenerfassung";
    6. ?>
    7. <?php
    8. include('config.inc.php');
    9. //DB-Verbindungs
    10. $db=mysqli_connect($url,$user,$pass,$dbName);
    11. $db->set_charset('utf8');
    12. if ($db==false){
    13. echo "Keine Verbindung m&ouml;glich!";
    14. exit;
    15. }
    16. //auswahl der DB
    17. $db->select_db($dbName)
    18. or exit ("Datenbank kann nicht ge&ouml;ffnet werden");
    19. ?>


    Wenn ich von Extern (externer Webserver) auf die Datenbank zugreiffen möchte kommt folgender Fehler:
    Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/verwalten.php on line 30

    Im Anhang habe ich noch die Benutzerkonfiguration angehängt
    Bilder
    • admin.JPG

      26,28 kB, 500×238, 109 mal angesehen
    Hi,

    ich hoffe das im Bild ist nicht das tatsächliche Passwort^^

    Die Fehlermeldung ist klar, Zugriff ist mit den angegebenen Daten nicht möglich.
    Wo hast du denn das mysql_real_escape_String stehen? Ist das da oben der Ausschnitt aus der Verwaltung.php? Und es sollte eigentlich mysqli_real_escape_String heißen (das "i" fehlt bei dir).

    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link“ ()

    Ich bin doch nicht wahnsinnig, ist sicherlich nicht mein Passwort :)
    config.inc.php:

    PHP-Quellcode

    1. <?php
    2. $url="meineurl.ch";
    3. $user="tesst";
    4. $pass="tesst";
    5. $dbName="db_stundenerfassung";
    6. ?>

    db_connect_i.inc.php:

    PHP-Quellcode

    1. <?php
    2. include('config.inc.php');
    3. //DB-Verbindungs
    4. $db=mysqli_connect($url,$user,$pass,$dbName,3306);
    5. $db->set_charset('utf8');
    6. if ($db==false){
    7. echo "Keine Verbindung m&ouml;glich!";
    8. exit;
    9. }
    10. //auswahl der DB
    11. $db->select_db($dbName)
    12. or exit ("Datenbank kann nicht ge&ouml;ffnet werden");
    13. ?>


    Abfrage:

    PHP-Quellcode

    1. <?php
    2. ini_set('display_errors', true);
    3. date_default_timezone_set('Europe/Berlin');
    4. $datum = date("Y-m-d");
    5. $uhrzeit = date("H:i");
    6. include('db_connect_i.inc.php');
    7. $uid = isset($_GET['uid']) ? $_GET['uid'] : '';
    8. //sql befehl
    9. $sql = "SELECT *
    10. FROM monteur
    11. WHERE
    12. uid = '".mysql_real_escape_string($_GET['uid'])."'" ;
    13. $erg = $db->query ($sql) or die ("Fehlermeldung=".$db->error());
    14. while(($row = $erg->fetch_assoc()) !== Null){
    15. $id_monteur=$row["id_monteur"];
    16. $vorname=$row["vorname"];
    17. $nachname=$row["nachname"];
    18. $username=$row["username"];
    19. $uid=$row["uid"];
    20. $arb=$row["arb"];
    21. }


    Siehst du wo ev. der "hund" liegt?
    Wie Link schon angedeutet hat, es liegt an mysql_real_escape_string
    php.net/manual/en/function.mysql-real-escape-string.php

    $link_identifier
    The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.
    Bitte benutze niemals mysql_real_escape_string(). Nutze stattdessen mysqli_real_escape_string. Also MySQLImproved.
    Dort muss es dann übrigens z.B. so lauten:
    $variable = mysqli_real_escape_string($connection, $_GET['irgendwas']). Sprich DB variable noch.