Beiträge von urban-a

    So dank den Hinweisen habe ich die Funktion nun adaptiert und mit PDO gearbeitet.
    Der Vorteile liegen auf der Hand
    - zukunftssicherer
    - perfomanter
    ABER vor allem
    - Gegen Injenctions geschützt


    Die Variablen für die Datenbank können vollkommen ungeprüft übergeben werden - vgl. dazu einige Beispiele auf php.net - so könnte man dank PDO z.B. GET Variablen direkt im Query übergeben:

    Zitat

    Die Parameter für Prepared Statements müssen nicht maskiert werden. Der Treiber übernimmt das automatisch. Wenn eine Anwendung ausschließlich Prepared Statements benutzt, kann sich der Entwickler sicher sein, dass keine SQL-Injection auftreten wird. (Wenn aber trotzdem andere Teile der Abfrage aus nicht zuverlässigen Eingaben generiert werden, ist dies immer noch möglich.)


    Siehe: http://www.php.net/manual/de/pdo.prepared-statements.php


    Hier ist die aktualisierte Funktion:


    Usage:


    Danke nochmal chorn für das kritische Feedback - habe was gelernt und hoffe dass diese Funktion nun hilfreich ist


    lg, urban-a :)

    Ok so kann es gehen - die Funktion ist komplett unnötig, denn MYSQL lässt folgende Syntax zu:


    Insert into `tabelle` VALUES (...,.....,...)


    Mir ist das in alle den Jahren noch nicht untergekommen!
    Kennt ihr bzw. nutzt ihr diese Syntax?


    Ein Blick in das Mysql Handbuch bestätigt das:

    Zitat

    If you do not specify a list of column names for INSERT ... VALUES or INSERT ... SELECT, values for every column in the table must be provided by the VALUES list or the SELECT statement. If you do not know the order of the columns in the table, use DESCRIBE tbl_name to find out.


    Ich bin echt baff

    Also mal vielen Dank das ist wirklich wertvolles Feedback.
    Ich habe ich parallel auch noch etwas mehr eingelesen (muss gestehen dass ich erst mit mysqli begonnen habe)


    Ganz kann ich die Kritik nicht verstehen mit de Sicherheit denn ehrlich gesagt bis es zur Werteübergabe kommt muss man viel mit den Variablen hantieren und das sah ich dann nicht mehr in der Funktion.
    Wenn jemand blutiger Anfänger ist, dann braucht er den Hinweis stimmt.


    ABER
    dank deinem feedback habe ich erkannt dass die prepared statements schon prinzipiell gegen injections geschützt sind und werde mal die funktion entsprechend adaptieren wird aber dauern


    Daher bis dahin an alle:
    Die Funktion achtet nicht auf Sicherheit das muss man vorher tun


    Lg, urban-a :)

    Hi, danke für den Feedback.
    Ich sehe das nicht ganz so.
    1. für das Prepared Statement muss die Tabellenstruktur klar sein
    (ist es bei mir sehr oft nicht, weil ich es lfd. mit dynamischen Tabellen zu tun habe / 2. wollte ich eine Funktion über alle meine Tabellen hinweg)


    2. Wo siehst du das erhöhte Risiko für SQL-Injections?
    Egal welche mysql funktion - wer externen input nicht prüft ist immer offen
    Oder wo provoziert meine Funktion größere Lücken - die es sonst nicht gibt?
    Bin dir sehr dankbar für dein Feedback.


    Lerne immer gern dazu!


    Lg, urban-a :)

    Hallo Leute,


    wollte meine Funktion mit euch teilen, die ich verwende um neue Einträge einer Tabelle hinzuzufügen.


    Grund für die Funktion:
    Wie wir wissen müssen für einen neuen Eintrag ALLE Spalten und ALLE Werte in der richtigen Reihenfolge angegeben werden. Fehleranfällig und vor allem bei dynamischen Querys etwas mühsam.


    Funktionen:
    (Die Funktion erwartet einen Array mit den Werten für den neuen Eintrag)
    - Sortierung nach Spalten
    Übergibt man ein assoziatives Array bei dem die Keys den Spaltennamen entsprechen, erkennt das die Funktion automatisch und trägt die Werte entsprechend ein. AUCH wenn das Array anders sortiert ist
    - Array ohne assoziative Keys
    Übergibt man ein Array ohne assoz. Keys, so geht die Funktion davon aus, dass die Werte einfach der Spaltenreihung entsprechend und trägt diese ein.
    Fehlerhandling
    Die Funktion erkennt folgende Fehler und gibt entsprechend Rückmeldung
    - Zu wenig Werte
    - Tippfehler bei den Spaltenbezeichnungen -> gibt dann die fehlerhaften Keys aus
    - bei anderen Fehlern wird der normale MySQL Fehler ausgegeben.


    Vorteile:
    Es braucht nur mehr einen Array mit den Werten und der muss, wenn man ein assoziatives Array übergibt, nicht einmal in der richtigen Reihenfolge sein.


    Die Funktion:


    Anwendungsbeispiele:



    Voraussetzungen
    PHP Ver > 5.0
    Handling der DB objektorientiert


    Ich hoffe das hilft euch; ich freue mich auf euer Feedback


    @moderatoren - wenn es gefällt, dann nehmt es gerne in die TP Code-Schnipsel Sammlung auf


    Lg, urban-a :)

    Danke!
    Damit kenne ich den Grund für das Problem.


    JQuery bin ich erst ganz am Anfang - nutze zwar ein paar fertige Tools aber kenne mich sonst nicht aus.
    Hast du vielleicht Zeit mir das Beispiel zur Gänze zu zeigen?


    Wie würde es aussehen, eine Klasse zu definieren und einen <span> zu befüllen?


    @name - bringt mir halt nix, weil ein Teil der <span> wird der name zugeordnet, einem anderen der Wohnort usw.


    Danke!!!
    lg, urban-a

    Hallo,


    ich habe einen Text der von einem Formular Daten übernimmt und dann in einen Fließtext eingefügt werden soll.


    Also banales Beispiel - der User gibt seinen Name ein und dieser wird in den Text eingefügt:

    Code
    1. Lieber Hans,
    2. danke, Hans, dass du hier mitmachst.


    Ich gehe wie folgt vor:
    im Text sind <span>-Elemente und diesen weden per JS inhalte zugewiesen:


    HTML
    1. document.getElementById('vorname').innerHTML = name;


    Geht super ABER sobald ich den Namen zweimal oder öfters brauche, also drei oder vier <span id="name"> habe, dann füllt er nur den ersten aus.


    Also im Moment ist mein Workaround
    name1
    name2
    name3 usw.


    ist ein bisschen nervig und aufwendig.


    Bei PHP ist es simpel

    PHP
    1. <?=$name ?>


    Gibt es sowas nicht auch bei JS?


    Danke euch
    lg, urban-a :)

    Mit Umwegen gelöst.
    Nicht schön und nicht performant aber zumindest hab ich es gelöst:



    Also zuerst aus dem Mehrdimensionalen Array einen Eindimensionalen gemacht und im Anschluss mit array_unique doppelte Einträge entfernt

    Update:
    Habe jetzt ind er DB Beraterkontakte3 hinzugefügt und müsste also drei Ergebnisse bekommen.


    mysql_num zeigt, dass die Abfrage funktioniert (3 Elemente)


    Die Ausgabe zweigt nun Beraterkontakte3 und Beraterkontakte 2,
    das Problem ist also, dass bei der Ausgabe nicht das erste Element des Array angezeigt wird.


    :rolleyes:

    Hello, folgendes Problem und ich bin echt verzweifelt.
    Will mir die vorhandenen Spalten-Inhalte ausgeben lassen ohne Duplikate.


    Datenbank:

    Code
    1. / Thema /
    2. / Beraterumfrage /
    3. / Beraterumfrage /
    4. / Beraterumfrage2 /
    5. / Beraterumfrage /
    6. / Beraterumfrage2 /


    Also frage ich meine Datenbank:


    PHP
    1. $verteiler_s = "select DISTINCT `thema` from `beraterkontakte`";


    und weise das einem array zu.
    Jetzt wird es aber spannend:
    Es klappt aber die Ausgabe nicht!!!


    Gebe ich es so aus:

    PHP
    1. while ($row = mysql_fetch_assoc($verteiler_q)) {
    2. echo $row[thema];
    3. }


    Bekomme ich:

    PHP
    1. Beraterkontakte2


    Gebe ich es so aus:

    PHP
    1. $a = 0;
    2. while ($a < $anzahl_verteiler) {
    3. echo $row[$a];
    4. $a++;
    5. }


    Bekomme ich:

    PHP
    1. Beraterkontakte


    Wie kann ich beide Zeilen ausgeben?
    Danke!


    Lg, urban-a :)

    Hallo,


    na nicht das jetzt sentimental werde aber ich glaub ich war seit, 5 Jahren nicht mehr hier :)
    Hatte einfach beruflich nichts mehr mit Web und Co zu tun.. aber egal.


    Jetzt hab ich wieder mal ein kleines Webprojekt am Tisch und Probleme ...
    Konkret geht es darum per Click die Größe eines Layers zu ändern.
    Die Funktion geht sauber im FF und Chrome und Safari nur IE macht Probleme


    Die Herausforderung ist, der Layer soll sich immer der aktuellen Fenstergröße anpassen.
    Hier das JS:


    Und hier ist der Layer:

    PHP
    1. <div id="ws2" class="ws" style="width:5px; height:5px; visibility:hidden;"></div>


    IE gibt mir keine Fehlermeldung
    h und w sind mit korrekten Werten gefüllt; er ändert einfach nicht die Größe
    Das ganze wird mit onclick aufgerufen


    danke


    lg, urban-a :)

    erstmals danke euch allen für die antworten


    321 klar das mit dem traffic stimmt, nur es geht im moment eher um spielerein und um das ausprobieren der möglichkeiten
    das mit der mitte ist eine gute idee und
    komp12 , danke für das beispiel das verdeutlicht mir das mit dem mittigen bg-bild!


    Ich werde mich spielen und wenn es zu einem ergebnis kommt seit ihr die ersten die es erfahren ;)


    Danke!


    lg, urban-a

    hello,


    eine frage, es wird ja immer mehr zu mode, dass man als gestaltungselement fotos als hintergrundbilder einsetzt.


    ich würde das ebenfalls gerne mal machen und das foto soll immer den kompletten hintergrund ausfüllen aber wie mach ich das.


    normal mit css body {background-image:url(etc...) } haut das nicht so hin, da es mit fixed ja abgeschnitten wird, wenn die auflösung kleiner als das bild ist.


    folgende lösungen habe ich mir überlegt:
    denkansatz 1: mit js die auflösung auslesen und entsprechendes bg-bild laden
    Problem: dann weiß ich, der user hat zb 1024 * 768, bringt aber nichts, da das ja nicht die sichtbare größe im browser ist


    denkansatz 2: die innerwidth bzw. innerheight auslesen
    Problem: zb bei mir ist die innerheigt 1004 px ein proportionales bild (ausgehend von einem 1600 * 1200 px gr. bild) hätte also die abmessungen 1004 * 753 px
    meine innerheigt und innerwidht ist aber 1004 px * 615 px! mhh also wieder nichts


    vielleicht bin ich auch im moment auf der völlig falschen denklogik.


    ich will jetzt (würde mich darüber natürlich auch nicht beklagen) keinen komplett ausgecodeten denkansatz, sondern helft mir mal logikmäßig auf die sprünge :D


    lg, urban-a;)

    hello,


    auf folgender homepage: www.gate06.at passiert es vereinzelt usern, dass der internet explorer - sobald sie auf einen menüpunkt klicken - das fenster einfach schließt!


    bei mir nicht - auch auf verschiedenen pc`s nicht, aber wir haben jetzt schon ca. 15 rückmeldungen das dies passiert!


    woran kann das liegen? kennt ihr das?


    mir ist das noch nie passiert, der code ist einfach html und wird per php aus einer datenbank gefüttert!


    lg, urban-a