kostenloser Webspace werbefrei: lima-city


Wert einer Variablen in einer anderen Datei setzen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kogsz

    kogsz hat kostenlosen Webspace.

    Hallo,
    ich bin gerade am programmieren für eine SQL-Verbindung. Ich habe zwei Dateien. Die erste wertet die Benutzereingaben aus (host, user, pw, dbname). Die andere Datei wird erzeugt und beinhaltet folgenden Inhalt.
    <?php
    $host = "";
    $user = "";
    $pw = "";
    $selected_db = "";
    $link = mysql_connect($host, $user, $pw);
    if (!$link) {
        die('Verbindung nicht möglich : ' . mysql_error());
    }
    // benutze Datenbank
    $db_selected = mysql_select_db($selected_db, $link);
    if (!$db_selected) {
        die ('Kann Datenbank nicht benutzen : ' . mysql_error());
    }
    ?>

    Ich will nun die Benutzereingaben der ersten Datei dauerhaft in der zweiten Datei speichern, also bsphaft:
    $host = "" soll zu $host = "localhost" werden und in der zweiten Datei abgespeichert werden.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du solltest unbedingt abstand davon nehmen. kein passwort in eine datei!!!! speicher die (nötigen) daten in eine datenbank.
  4. Autor dieses Themas

    kogsz

    kogsz hat kostenlosen Webspace.

    wenn ich dass passwort für die dbverbindung in der datenbank speicher muss ich es trotzdem im klartext in der datei speichern
    wenn ich es in einer (text)datei speicher, kann man es als anwender auslesen wenn man die textdatei aufruft
    außerdem geht es mir erstmal nicht um die perfekte sicherheit :D
  5. Speichere es als Variable in einer PHP-Datei, denn egal wie oft diese aufgerufen wird, das Passwort wird nicht ausgegeben.

    Wie du Dateien in PHP speicherst, schreibst, liest etc findest du auf Google. Bei kleinen Fragen dazu vielleicht nicht gleich einen Thread starten sondern mal im Jabber (Community Chat) vorbei schauen. ;)
  6. sieht so aus, als meinst Du eine config Datei ... Variablen in einer PHP-Datei ...

    hier ein Beispiel

    Datei: db_config.php
    <?php 
    // -------------------------------------------- 
    
    $db_host = "localhost";         // --- Server / Host 
    $db_user = "usr_xxx1234";       // --- Username
    $db_pass = "a5Bc2pLi3xYzmr7v";  // --- Passwort
    $db_name = "db_xxxxxxx";        // --- Datenbank
    
    // -------------------------------------------- 
    ?>


    Dann diese Config-Datei vor dem Verbindungsaufbau laden mit include() oder require()

    Datei: mein_script.php
    <?php 
    // -------------------------------------------- 
    
    // ------ Config Datei laden ------
    include_once('db_config.php'); 
    
    // ------ Verbindung zum Datenbank Server ------
    $link = mysql_connect($db_host, $db_user, $db_pass);
    if (!$link) { die('Keine Verbindung zum Server : <br />' . mysql_error()); }
    
    // ------ Auswahl der Datenbank ------
    $db_selected = mysql_select_db($db_name, $link);
    if (!$db_selected) { die ('Kann Datenbank nicht nutzen: <br />' . mysql_error()); }
    
    // -------------------------------------------- 
    
    // ------ Abfrage von einer Tabelle in der Datenbank ------
    $table = 'tabelle_xyz'; 
    $query = "SELECT * FROM ".$table." WHERE id = '123'";
    $result = mysql_query($query);
    
    if (!$result) { die ('Fehler bei Abfrage: <br />' . mysql_error()); }
    
    
    // ------ Das Ergebnis in ein Array ablegen ------
    $daten = array(); 
    while ($row = mysql_fetch_row($result))  { 
      $daten[] = $row; 
    }
    
    
    // ------ Die Daten im Array ausgeben ------
    print "<hr />\n"; 
    
    $n=1; 
    foreach($daten as $item) { 
    
      print "<p>Zeile / Datensatz Nr: ".$n."</p>\n"; 
      
      foreach($item as $key => $val) { 
        print "Spalten Name: ".$key." <br />\n"; 
        print "Spalten Wert: ".$val." <br />\n"; 
        print "<br />\n";   
      }
    
      print "<hr />\n"; 
      $n++; 
    }
    
    // -------------------------------------------- 
    ?>


    die Datei db_config.php kannst Du auch in ein anderes Verzeichnis wie mein_script.php ablegen
    dann musst Du halt beim include() bzw require() den relativen Pfad zur Config mit angeben.




    Beitrag zuletzt geändert: 17.10.2013 8:57:47 von handyflat
  7. Autor dieses Themas

    kogsz

    kogsz hat kostenlosen Webspace.

    Das löst alles leider mein Problem nicht :/
    kann ich die Datei einlesen per
    $inhalt = file_get_contents('db_connect.php');

    und dann
    $host = "";
    durch
    $host = "hostname";
    usw ersetzen und die Datei dann wieder abspeichern?
  8. Ja, kannst du. Schau dir einfach an, wie man mit PHP eine Datei speichert und ausliest.
  9. kogsz schrieb:
    wenn ich dass passwort für die dbverbindung in der datenbank speicher muss ich es trotzdem im klartext in der datei speichern ...
    zeimlicher schwachfug! wenn sich ein user anmeldet, oder DU SELBST (via script am host) zu der datenbank verbindest, sind zwei paar schuhe!

    wie man verbindungsdaten zu verfügung stellt ohne klartext zu schreiben, hat etliche möglichkeiten (wovon ich hier im forum noch nichts gelesen habe ;)

    tchab schrieb:
    Speichere es als Variable in einer PHP-Datei, denn egal wie oft diese aufgerufen wird, das Passwort wird nicht ausgegeben.

    Wie du Dateien in PHP speicherst, schreibst, liest etc findest du auf Google. Bei kleinen Fragen dazu vielleicht nicht gleich einen Thread starten sondern mal im Jabber (Community Chat) vorbei schauen. ;)
    1. es gibt etliche möglichkeiten php-dateien als text (sprich source) auszulesen (es gibt nur die leute, die das nicht können ;)
    2. was soll genau community chat bringen? (man beobachtet ja die meldungen die ganze zeit! ... ich kenne keinen grund.)

    handyflat schrieb: sieht so aus, als meinst Du eine config Datei ...
    wobei das passwort wieder mal leibhaftig vorhanden ist ;)

    gute nacht die madeln!

    Beitrag zuletzt geändert: 18.10.2013 2:09:22 von czibere
  10. Hallo

    @kogsz
    ich würde da nichts ersetzen, sondern gleich ganz neu schreiben

    hier mal ein Beispiel-Code

    <?php 
    // --------------------------------------------------------- 
    // ------ Neue Zugangsdaten z.B. aus Formular-Eingabe ------ 
    
    if (!empty($_POST['user_id'])) { 
    
    $run_user_id = $_POST['user_id']; 
    
    if (!empty($_POST['new_host'])) { $new_db_host = trim( $_POST['new_host'] ); } else { $new_db_host = ''; } 
    if (!empty($_POST['new_user'])) { $new_db_user = trim( $_POST['new_user'] ); } else { $new_db_user = ''; } 
    if (!empty($_POST['new_pass'])) { $new_db_pass = trim( $_POST['new_pass'] ); } else { $new_db_pass = ''; } 
    if (!empty($_POST['new_name'])) { $new_db_name = trim( $_POST['new_name'] ); } else { $new_db_name = ''; } 
    
    
    // ------ Neue config Datei erstellen ------ 
    // ------------------------------------------ 
    
    $new_cfg_string = ''; 
    
    if ( !empty($new_db_host) 
      && !empty($new_db_user) 
      && !empty($new_db_pass) 
      && !empty($new_db_name) ) { 
    
    
    $new_cfg_string = "<?php 
    
    \$db_host = \"".$new_db_host."\"; 
    \$db_user = \"".$new_db_user."\"; 
    \$db_pass = \"".$new_db_pass."\"; 
    \$db_name = \"".$new_db_name."\"; 
    
    ?>"; 
    
    }
    // ------------------------------------------ 
    
    
    // ------ Neue config Datei speichern ------ 
    // ------------------------------------------ 
    
    if (!empty($new_cfg_string)) { 
    
    $new_filename = 'config_'.$run_user_id.'.php'; 
    $save = file_put_contents($new_filename, $new_cfg_string);
    
    if ($save === false) { print "<p>Fehler beim Speichern.</p>\n"; } 
    else { print "<p>OK ... neue Datei wurde gespeichert.</p>\n"; }
    
    }
    else {
    print '<p>Bitte alle Felder ausf&uuml;llen .... <a href="javascript:history.back();">zur&uuml;ck</a> </p>'."\n"; 
    
    }
    // ------------------------------------------ 
    
    
    }
    else {
    
    // --------------------------------------------------------- 
    
    
    $logged_in_user_id = '357'; 
    
    print '
    
    <p>Neuen Datenbank-Benutzer anlegen</p> 
    
    <br/> 
    <br/> 
    
    <form name="formular1" method="post" action="">
      MySQL HOST: <input type="text" name="new_host" size="40" maxlength="100" /> <br/> 
      MySQL USER: <input type="text" name="new_user" size="40" maxlength="100" /> <br/> 
      MySQL PASS: <input type="text" name="new_pass" size="40" maxlength="100" /> <br/> 
      DATENBANK: <input type="text" name="new_name" size="40" maxlength="100" /> <br/> 
      <input type="hidden" name="user_id" value="'.$logged_in_user_id.'" /> <br/> 
      OK: <input type="submit" name="weiter" value="Abschicken" /> 
    </form>
    
    <br/> 
    <br/> 
    
    '; 
    
    
    // --------------------------------------------------------- 
    
    }
    
    // --------------------------------------------------------- 
    ?>


    Der Teil mit
    $logged_in_user_id = '357';
    ist nur ein Beispiel dafür

    dass ein User, der das machen "darf" auch vorher eingeloggt sein soll,
    und die Config-Datei bekommt dann dessen User-ID .... config_357.php

    diesen Teil kann man weglassen oder noch ausbauen, je nach Gusto
    also z.B User-Login Status mit SESSION prüfen ... oder sowas (User- / Rechte- System)

    für mehr Sicherheit kann man der neuen Config Datei nach dem Speichern
    ja auch noch strenge CHMOD (Zugriffsrechte) geben



    Beitrag zuletzt geändert: 18.10.2013 9:01:06 von artikelbox
  11. czibere schrieb:
    kogsz schrieb:
    wenn ich dass passwort für die dbverbindung in der datenbank speicher muss ich es trotzdem im klartext in der datei speichern ...
    zeimlicher schwachfug! wenn sich ein user anmeldet, oder DU SELBST (via script am host) zu der datenbank verbindest, sind zwei paar schuhe!

    wie man verbindungsdaten zu verfügung stellt ohne klartext zu schreiben, hat etliche möglichkeiten (wovon ich hier im forum noch nichts gelesen habe ;)

    tchab schrieb:
    Speichere es als Variable in einer PHP-Datei, denn egal wie oft diese aufgerufen wird, das Passwort wird nicht ausgegeben.

    Wie du Dateien in PHP speicherst, schreibst, liest etc findest du auf Google. Bei kleinen Fragen dazu vielleicht nicht gleich einen Thread starten sondern mal im Jabber (Community Chat) vorbei schauen. ;)
    1. es gibt etliche möglichkeiten php-dateien als text (sprich source) auszulesen (es gibt nur die leute, die das nicht können ;)
    2. was soll genau community chat bringen? (man beobachtet ja die meldungen die ganze zeit! ... ich kenne keinen grund.)

    handyflat schrieb: sieht so aus, als meinst Du eine config Datei ...
    wobei das passwort wieder mal leibhaftig vorhanden ist ;)

    gute nacht die madeln!


    Oh großer, allwissender PHP-Guru, so lass uns an deiner erhabenen Weisheit teilhaben und gib uns wenigstens einen Hinweis.... Ich hab's ja so gerne, wenn Antworten nur aus den Worten "Ja, das geht" bestehen, ohne einen Tipp zu geben, wie. Ein Verweis auf ein oder zwei Hilfeseiten ist doch ganz nett, schließlich soll einem ja in einer Community geholfen werden... dachte ich jedenfalls.

    Beitrag zuletzt geändert: 18.10.2013 12:03:02 von alphara
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!