+ Antworten
Ergebnis 1 bis 14 von 14

Thema: Phänomen: veränderte inhalte aus datenbank

  1. #1
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124

    Phänomen: veränderte inhalte aus datenbank

    Hallo Leute!

    Mich treibt schon seit einigen Wochen ein Problem um, auf das ich keinen Rat habe:

    in meiner db speichere ich in einer tabelle u.a. einen wert, den ich abfrage und einer variablen übergebe. die variable steurt meinen scriptablauf. schon seit wochen schlage ich mich damit herum, dass mein script nicht wie gewünscht ausgeführt wird. ich bin dann drauf gekommen, dass der inhalt der variablen variiert. in meiner db ist der wert "php" hinterlegt. Wenn ich die Variable abfrage habe ich bisher schon folgende Werte bekommen:
    i0o, iOo, dhp, nhp, ihp, s0p, sOp
    Die Kollation der DB steht auf UTF-8, die der tabelle auf utf-8 general, die sql-verbindung weise ich stets mit
    PHP-Code:
    mysql_query("SET character set utf8 "); 
    auf utf-8 fest, mein html-header ist auf utf-8 eingestellt (einzig auf einen php-header verzichte ich).

    Was kann hier die Ursache sein? Es macht mich noch ganz wahnsinnig!!

    Danke vorab,

    Basti

    P.S. Sagt mal, hatte das Webdesign & Co. Forum früher nicht noch Subcategories wie "html-puristen", etc.
    live long and prosper...

  2. #2
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Moin.
    Kollation dient nur zum Vergleich von Zeichenketten (beispielsweie bei der Sortierung) und hat nichts mit dem Zeichensatz an sich zu tun.
    Das "php" zu "i0o, iOo, dhp, nhp, ihp, s0p, sOp" wird, hat auch nichts mit utf-8 und Konsorten zu tun.
    Geb mal ein Beispiel, wo der Fehler auftritt.

    P.S. Sagt mal, hatte das Webdesign & Co. Forum früher nicht noch Subcategories wie "html-puristen", etc.
    http://www.traum-projekt.com/forum/34-html-puristen/
    Gruss Guin
    Mein Blog

  3. #3
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124

    Beispiel

    Servus!

    Beispiel? Wie meinst du das? Das Problem tritt wie unten beschrieben auf...

    Ich häng dir aber mal ein bisschen script ran.
    Auslesen der daten:
    PHP-Code:
    $Verbindungskennung db_verbindung();
    $query "SELECT * FROM tb_kon_inhalt WHERE adresscode = '" $pid "' ";
    $sql mysql_query($query);
    $ergebnis mysql_fetch_assoc($sql);
    $type $ergebnis['inhalt_type']; 
    Die Funktion für die Datenbankverbindung:
    PHP-Code:
    function db_verbindung($datenbank "site") {
        
        
    $Verbindungskennung '';
        
    // Aufruf der Verbindung und Verbindung herstellen lassen
        
    if ($datenbank == "shop") require_once('Connections/mysql_myConnectionII.php');
        if (
    $datenbank == "site") require_once('Connections/mysql_myConnection.php');
        
        
    // Verbindungskennung zur�ckgeben und pr�fen
        
    if (isset( $Verbindungskennung ) && is_resource$Verbindungskennung )) {
            
    mysql_select_db$database_meine_Datenbank$Verbindungskennung ) or die( 'Verbindungsfehler!' ); 
            }
        
    // mysql-Verbindung auf uft-8 zwingen
        
    mysql_query("SET character set utf8 ");  
        return 
    $Verbindungskennung
        } 
    Und verwendet / ausgegen wird hier:
    PHP-Code:
    // erlaubte inhalte der variable type zur ausführung des scripts
        
    $allowed_types = array("php""script""sOp""s0p""nhp""dhp""b0o""bOo""i0o""iOo""ahp""bhp""chp""ehp""fhp""ghp""hhp""ihp""jhp""khp""lhp""mhp""ohp""qhp""rhp""shp""thp""uhp""vhp""whp""xhp""yhp""zhp");

        
    // ausgabe des scriptes aus der db, falls vorhanden
        
    if (in_array($type$allowed_types)) {
            
    f_global_jsalert("inhalt wird ausgef?hrt, type=" $type ".");
            eval(
    $inhalt);
            } 
    Wie du sehen kannst, habe ich (auch schon vorsorglich) gleich noch andere Kombinationsmöglichkeiten für den Variableninhalt berücksichtigt. Hast du eine Idee, wo die Ursache für mein Problem liegen könnte?

    Schon mal vorab vielen Dank für deine Mühen - und - hoffentlich guten Ideen.

    Basti

    P.S. auch so, danke für den Hinweis auf die anderen Foren!
    live long and prosper...

  4. #4
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    PHP-Code:
    $query "SELECT * FROM tb_kon_inhalt WHERE adresscode = '" $pid "' "
    $sql mysql_query($query); 
    $ergebnis mysql_fetch_assoc($sql); 
    $type $ergebnis['inhalt_type']; 

       
    // ausgabe des scriptes aus der db, falls vorhanden 
        
    if (in_array($type$allowed_types)) { 
            
    f_global_jsalert("inhalt wird ausgef?hrt, type=" $type "."); 
            eval(
    $inhalt); 
            } 
    Also liegt dein Problem an der Stelle?
    adresscode=$pid soll deiner Meinung nach $type="php" ausliefern?


    $Verbindungskennung = '';
    // Aufruf der Verbindung und Verbindung herstellen lassen
    if ($datenbank == "shop") require_once('Connections/mysql_myConnectionII.php');
    if ($datenbank == "site") require_once('Connections/mysql_myConnection.php');

    // Verbindungskennung zurückgeben und prüfen
    if (isset( $Verbindungskennung ) && is_resource( $Verbindungskennung )) {
    mysql_select_db( $database_meine_Datenbank, $Verbindungskennung ) or die( 'Verbindungsfehler!' );
    }
    isset gibt in dieser Konstellation immer true zurueck.
    Gruss Guin
    Mein Blog

  5. #5
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124
    Morgen!

    Zitat Zitat von Guin Beitrag anzeigen
    PHP-Code:
    $query "SELECT * FROM tb_kon_inhalt WHERE adresscode = '" $pid "' "
    $sql mysql_query($query); 
    $ergebnis mysql_fetch_assoc($sql); 
    $type $ergebnis['inhalt_type']; 

       
    // ausgabe des scriptes aus der db, falls vorhanden 
        
    if (in_array($type$allowed_types)) { 
            
    f_global_jsalert("inhalt wird ausgef?hrt, type=" $type "."); 
            eval(
    $inhalt); 
            } 
    Also liegt dein Problem an der Stelle?
    adresscode=$pid soll deiner Meinung nach $type="php" ausliefern?
    Nein, denn die $pid gibt ja nur an, welche Zeile aus der DB ausgelesen werden soll. Und in dieser Zeile gibt es eine Zelle (inhalt_type) mit dem content "php" oder "text". Der wird der variablen $type übergeben, anhand der dann der scriptablauf gesteuert wird. Meine Konstruktion
    PHP-Code:
     if (in_array($type$allowed_types)) { 
    habe ich auch nur ersatzweise für die originalzeile
    PHP-Code:
    if ($type == "php" ) { 
    reingenommen, damit mein script wenigstens einigermaßen aussetzerfrei läuft.

    Ich hoffe, die Situation wird etwas klarer...

    Grüße, Basti

    P.S. Danke für deinen Hinweis bezüglich meiner db-connection.
    P.P.S. Kennt jemand ein gutes Tutorial zu PHP-Objekten, Klassen, Methoden (oder hätte z.B. Andreas Lust nicht ein gutes für TP zu schreiben ?)
    live long and prosper...

  6. #6
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Nein, denn die $pid gibt ja nur an, welche Zeile aus der DB ausgelesen werden soll. Und in dieser Zeile gibt es eine Zelle (inhalt_type) mit dem content "php" oder "text".
    Ja und du erwartest, dass $typ="php" sein soll.
    Steht das denn auch wirklich so in der DB? Denn der String "php" ist in den unterschiedlichen (westlichen) Zeichensaetzen immer gleich. Egal ob Latin oder UTF-8.
    Gruss Guin
    Mein Blog

  7. #7
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124

    Schwur

    Hallo Guin,

    Ich schwör! Bei Gott und allen Heiligen.
    (aber um nicht die Heilige Inquisition am Hals zu haben, habe ich dir noch ein Bildschirmfoto angehängt, um meine Aussage zu untermauern.)

    Und nun?
    Angehängte Grafiken  
    live long and prosper...

  8. #8
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Ok, im Feld inhalt_type (= $typ) steht nur "php" oder "text" (auf jeden Fall nicht "sOp", "s0p", "nhp", "dhp", ...)
    Wenn du aber echo $typ; macht, steht da manchmal "sOp" usw.
    Ist das immer oder nur manchmal so? Ist das Ergebnis von $pid immer das gleiche, oder kommt bei gleichem $pid immer wieder ein anderes Ergebnis?

    PHP-Code:
    $query "SELECT * FROM tb_kon_inhalt WHERE adresscode = '" $pid "' ";  
    $sql mysql_query($query);  
    $ergebnis mysql_fetch_assoc($sql);  
    $type $ergebnis['inhalt_type']; 
    echo 
    $typ." ".$ergebnis['inhalt_type']; 
    Ich gehe mal dvon aus, dass adresscode Key oder Unique ist.

    Vielleicht kommen wir irgendwann auf die Loesung sofern nicht irgend jemand einen Geistesblitz hat. Dein geschildertes Problem ist mir bisher nicht untergekommen.
    Gruss Guin
    Mein Blog

  9. #9
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von Whiteflash Beitrag anzeigen
    P.P.S. Kennt jemand ein gutes Tutorial zu PHP-Objekten, Klassen, Methoden (oder hätte z.B. Andreas Lust nicht ein gutes für TP zu schreiben ?)
    Hallo,

    schau mal in der Tutorial Ecke, da haben wir schon Tutorials zum Thema OOP.

  10. #10
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124
    Hallo Guin,

    ja, so sieht`s aus .

    Ich hab's grade noch mal ausprobiert und mir die variable mal anzeigen lassen: statt php war drin dhp und nhp, statt text bekam ich Bext, Iext oder iext angezeigt - was ich noch nicht nachvollziehen kann, ob es eine Korrelation zwischen Variableninhalt und aufgerufener Seite (also Datensatz aus der DB) gibt, da brauch ich mal noch Zeit für eine Statistik.

    Hat jemand denn einen Ansatz? HILFEEEEE!!!
    live long and prosper...

  11. #11
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Also wird das erste Zeichen überschrieben.

    Ganz klar, dann hast du noch einen Fehler im Skript

    PHP-Code:
    $array "Test ";
    echo 
    $array;
    $array[0]="F";
    echo 
    $array
    Gruss Guin
    Mein Blog

  12. #12
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124
    Zitat Zitat von Guin Beitrag anzeigen
    Also wird das erste Zeichen überschrieben.

    Ganz klar, dann hast du noch einen Fehler im Skript
    Das mag ich nicht ausschließen, aber entschuldige:
    Ich könnte mich dran erinnern, hätte ich einen Scritpteil geschrieben der mir meine Variable $type an der ersten Stelle verändert.

    Hättest du einen Anhaltspunkt, wonach ich suchen soll? Eine bestimmte Funktion, bei der du dir vorstellen könntest, dass die meine variable unbeabischtigt verändert? Ist "type" ein reservierter Begriff (gibt's das in php auch?)

    Ich find das alles wirr!!!
    Geändert von Whiteflash (12.05.2009 um 21:24 Uhr) Grund: ups - hatte Teile des quote-endtags gelöscht
    live long and prosper...

  13. #13
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    PHP-Code:
    Ich könnte mich dran erinnernhätte ich einen Scritpteil geschrieben der mir meine Variable $type an der ersten Stelle verändert
    Vielleicht hast du nur ein Array auch $type genannt.
    Öffne mal alle Quelldateien und suche nach dem Namen.

    Das Ganze ist natuerlich nur eine Vermutung und nicht unbedingt "ganz klar" Es schoss mir nur so durch den Kopf. Es ist ja nun mal immer nur der erste Buchstabe (ist es das auch wirklich, oder war das nun nur Zufall?).
    Wenn du jetzt noch herausfindest, wann welcher Buchstabe am Anfang steht, hast du schon mal einen weiteren Anhaltspunkt.
    Der hier gezeigte Code verursacht den Fehler zumindest nicht.
    Geändert von Guin (12.05.2009 um 21:47 Uhr)
    Gruss Guin
    Mein Blog

  14. #14
    TP-Senior Whiteflash macht alles soweit korrekt Avatar von Whiteflash
    Registriert seit
    May 2008
    Ort
    Wangen
    Beiträge
    124

    Problem: gelöst!

    Himmel!

    Du hattest Recht!

    Ich hatte tatsächlich in einem meiner Unterscripte die Bezeichnung $type nochmals verwendet, dort als array und in einer Schleife mit der Konstruktion
    PHP-Code:
    $type[$key]= ... 
    der ersten Stelle meiner Variablen einen anderen Buchstaben zugewiesen!

    Vielen Dank für deine Analyse. Ich hatte mir zwar sowas schon überlegt, aber kategorisch verworfen...

    Dann kann ich mich ja beruhigt in die Tutorials einarbeiten. Danke nochmals,

    liebe Grüße, Sebastian
    live long and prosper...

+ Antworten

Ähnliche Themen

  1. Browser: veränderte Seiten neu laden
    Von vfbgeislingen im Forum GoLive
    Antworten: 8
    Letzter Beitrag: 18.05.2007, 08:13
  2. Bei onmouseover veränderte Bildquelle zeigen
    Von Kai-Behncke im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 02.05.2007, 08:26
  3. Veränderte Dateien bereitstellen
    Von designfanatiker im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 13.05.2006, 23:52
  4. Antworten: 24
    Letzter Beitrag: 12.01.2005, 12:58

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51