Beiträge von baloo

    Ich seh da nichts mehr, ich denke das Problem ist gelöst oder?
    Auf jeden Fall heisst die Fehlermeldung, dass die Funktion ini_set() deaktiviert wurde.
    Über ini_set() können Einstellungen der php.ini während der Laufzeit und individuell für jedes Script überschrieben werden.

    Halloo :D
    In meiner Community benötigen die User nur den Benutzernamen für den Aufruf Ihres Profils, also über http://thats-me.ch/Jo gelangt man auf das Profil des Users "Jo".
    Da dies nicht von Anfang an so war, geschehen alle Vernüpfungen mit anderen Tabellen über die ID des Users.
    Das heisst, wenn ich alle Fotos des Users "Jo" auslesen will, muss ich zuerst die ID auslesen und kann dann die Abfrage machen (oder die Membertabelle in die Abfrage einbinden, was dann wieder die Performance beeinträchtigt).

    Meine Frage ist nun, ob es performancemässig gut ist, einen Index auf den Benutzernamen zu setzen. Ich würde dann z.B. bei der Fototabelle den ganzen Nicknamen speichern statt die ID, da ich die ID ja eh nie brauche bei der Ausgabe.

    Momentan sieht die Fototabelle etwa so aus:
    ID | Dateiname | Member-ID | Uploaddatum | ... etc.
    und ausgelesen wird über "SELECT ... FROM fotos, members WHERE fotos.member-id = members.member-id AND member-nick = 'Jo'" (also einfach mit einem inner join ^^)

    neu würde es so aussehen:
    ID | Dateiname | Nickname | Uploaddatum | ... etc.
    und auslesen: "SELECT ... FROM fotos WHERE Nickname LIKE 'Jo'"

    Wäre doch einfacher..? :) aber eben.. wie stehts mit Strings als Index? Performancemässig?

    Ja ich hoffe ihr versteht was ich meine :shock: :roll:
    Der Nickname ist max. 15 Zeichen und das Feld in der DB ist vom Typ "Char".
    Evtl würde auch ein Index über 10 Zeichen reichen..?

    Danke schonmals :)

    hallo starfighter

    also :D
    erstens mal, weil wir netzlaufwerke per net use bei der anmeldung verbinden, z.b. H für die eigenen dateien (auf dem server). wird ein cardreader angeschlossen, wird von diesem z.b E, F, G und H verwendet und das netzlaufwerk ist nicht mehr verfügbar.

    aber eigentlich darum:
    ein kunde sichert seine dateien auf einen usb stick. wir haben diesem stick einen laufwerkbuchstaben zugewiesen und per script werden die dateien dort hin gesichert. wenn er jetzt den stick an einem anderen usb port anschliesst oder den stick wechselt, wird wieder ein anderer buchstabe genommen und wir müssen das script bzw. den buchstaben anpassen.

    gibt auch noch ein anderes beispiel dafür im ähnlichen stil..
    auch wenn man dies alles anders lösen könnte, interessieren wies geht tut's mich sowieso ;)

    danke schonmal :)
    gruss

    Hallo wiedermal :D
    Frage:
    Wenn ich einen USB Stick an meinen PC anschliesse, kriegt der ja den nächsten freien Buchstaben zugewiesen, z.B. F.

    Ich möchte jetzt aber, dass bei allen USB Schnittstellen die Geräte erst einen Laufwerksbuchstaben ab z.B. M: kriegen, also dass A - L nie verwendet werden.
    Klar kann ich in der Datenträgerverwaltung den Laufwerkbuchstaben ändern, aber es müsste eine Lösung gehen für alle Sticks und alle USB Anschlüsse am PC :)

    Irgendwer eine Idee? Habe noch nirgends was gefunden darüber..
    Gruss und Danke

    Hallo vbtricks

    Danke für den Link.
    Leider alles schon irgendwie versucht.. :roll: entweder erscheint beim Booten I/O error.. replace disk etc., oder es wird normal von der HDD gebootet.

    Oder eben, man gelangt in eine Eingabeaufforderung mit C:, kann dann aber nicht installieren, da die lokalen Festplatten nicht gefunden werden.. (C: stellt den Memory Stick dar, kann aber weder Verzeichnisse wechseln noch sonst was)

    Hallo zusammen

    Mal eine Frage:
    Ich würde gerne mein Notebook wieder mal neu installieren, anders partitionieren etc.
    Problem: CD Laufwerk ist futsch :roll: ich will XP also vom USB Stick installieren.

    Was ich versucht habe:
    Memory Stick bootfähig gemacht und XP CD draufkopiert.
    Beim booten erscheint dann die Eingabeaufforderung mit C:> welches für den Memory Stick steht (normalerweise ist der z.B. F:).
    Jetzt kann ich die Installation über i386/winnt.exe aufrufen, jedoch kommt dann die Meldung, dass auf einem Datenträger mindestens 400MB oder so verfügbar sein müssten.
    Klar eigentlich, weil das normale C: ja nicht angesprochen werden kann (C: ist ja jetzt der Memorystick ;) )

    Hat einer von euch eine Lösung? Normale Startdiskette geht nicht (kein Floppy-Laufwerk).
    Oder gibt es eine Möglichkeit, einen bootfähigen Memorystick zu erstellen, welcher einer CD gleich kommt? (ohne Eingabeaufforderung, direkt das Setup).


    Klar, könnte auch ein neues CD Laufwerk kaufen.. aber wenns anders gehen würde, wärs natürlich optimal :) (überlebenswichtig ist das neu aufsetzen ja auch nicht, aber wär witzig wenns gehen würde)

    hatte dieses problem auch mal.
    meistens vernachlässigt man die sicherheit bei der programmierung.

    am besten jede benutzereingabe genau überprüfen. grundsatz: all input is evil :twisted: :)

    meistens werden sql injections über login-formulare oder GET manipulationen durchgeführt.

    bei mir werden praktisch nur integer als get-parameter erwartet, deshalb führe ich am anfang jeder seite

    Code
    $id = sec_int($_GET['id']);

    durch.
    die funktion sec_int steht für mich für "security_integer" :roll: (da es ja noch sec_string etc. gibt) und enthält:

    Code
    function sec_int($wert) {
    	if ((string)((int)$wert) != $wert) {
    		die("Es wurde eine ungültige ID angegeben.");
    	}
    	return $wert;
    }

    am besten für jede benutzereingabe eine solche funktion schreiben.
    sind für den benutzernamen z.b. nur buchstaben von a-z und zahlen erlaubt, schreibst du dir vllt. eine funktion sec_nick(), welche das script abbricht, sobald beim login ungültige zeichen eingegeben werden. diese funktion verwendest du dann auch, wenn du den nick z.b. über profil.php?nick=blabla übergibst.

    etc... :)

    hallo zusammen. schon wieder eine frage :)
    mit folgendem code verlinke ich in einem string alle URL's mit der entsprechenden adresse:

    Code
    $string = preg_replace("#(^|[\n ])([\w]+?://.*?[^ \"\n\r\t<]*)#is", "\\1<a target=\"_blank\" href=\"\\2\">[link]</a>", $string);

    also aus "http://forum-hilfe.de" wird "<a href="http://forum-hilfe.de">"

    dies ist in einem forum. wenn ein user jetzt eine längere URL eingibt (nur schon zum beispiel http://forum-hilfe.de/posting.php?mo…f5de5e88b58c73c) verzieht es das design, da der text nicht umgebrochen wird (keine leerzeilen).

    kann ich innerhalb dieser regex den string (\\2) irgendwie kürzen?
    danke und gruss

    hallo zusammen
    ich habe wieder mal eine frage. vielleicht bin ich auch einfach zu dumm :roll:

    per update kann man ja in mysql sehr einfach integer werte direkt verändern, zum beispiel:

    SQL
    UPDATE tabelle SET wert = wert + 2

    nun frage ich mich, ob dies irgendwie auch mit text geht:

    SQL
    UPDATE tabelle SET text = text + 'Anhang: blabla'

    dies geht jetzt natürlich nicht, aber gibt es eine ähnliche lösung? vllt. mit einem anderen operator?
    oder muss ich das feld zuerst auslesen, mit php bearbeiten und wieder speichern? :shock:

    danke und gruss
    baloo

    doch, habe ich gemacht.
    jedoch liegt die cpu auslastung teilweise bei 100%.
    aber mittlerweile ists ein bisschen besser. habe die scripte überarbeitet und die mysql queries pro seitenaufruf reduziert (ich glaube das war das hauptproblem) zudem habe ich mir eine individuelle cache-klasse geschrieben, mir der ich jetzt bereiche der seite für eine gewisse zeit cachen kann.
    ich glaube das nützt schon was.
    und sonst muss ich mal auf einen leistungsfähigeren server wechseln.

    vielen dank für eure antworte, für tipps bin ich nachwievor froh :D

    Hallo zusammen

    Wieder mal eine Frage :)
    Obwohl meine Website mittlerweile auf einem eigenen Server ist, liegt die Serverauslastung zu Stosszeiten (so zwischen 18 und 21 Uhr, wenn alle vor dem PC hocken.. :wink: ) bei ~100%, die maximale Anzahl gleichzeitiger Anfragen wird erreicht und die Seite lädt nicht mehr oder nur nach langer Verzögerung (> 1min).

    Vielleicht wissen ein paar Server-Pro's hier, was ich dagegen tun könnte. Hat dies etwas mit dem Seitenaufbau zu tun? Kann ich durch einen besseren Seitenaufbau die Anzahl Anfragen verringern oder ähnlich?
    Hab da leider keine Erfahrung :)

    Oder ist die einzige Methode einen leistungsfähigeren Server?

    Danke schon mal ;)
    Grüsse baloo

    ah ja
    http://www.thats-me.ch, falls ihr drauf kommt.. ;)

    Hallo
    Danke für die Rückmeldung und das Kompliment, admin.

    GreenRover: Eigentlich meinte ich die Sprache der Forenbeiträge, Fotokommentare etc, ist ja alles in Schweizerdeutsch. Deutsche werden da nicht viel verstehen, schätze ich mal...

    btw: momentan ist meine DB am arsch, gibt also grad nicht viel zu sehen.. sobald das Backup drauf ist, sollte es wieder normal aussehen ;)

    Hallo zusammen

    Vielleicht kennt einer von euch meine Website http://www.thats-me.ch.

    Da sich in der letzten Zeit immer mehr Leute anmelden und ich auch positive Rückmeldungen kriege, dachte ich mir, ich schalte das Ganze auch in einer Deutschland-Version auf (da momentan alles Schweizerdeutsch ist).

    Da alle gescheiten Domains schon besetzt sind, werde ich es vorerst wahrscheinlich mal auf de.thats-me.ch laufen lassen, bis ich eine geeignete Top Level Domain finde.

    Meine Fragen an euch:
    - Braucht es das überhaupt?
    - Sollte eine Verknüpfung zwischen der schweizer und der deutschen Seite bestehen? (die selben User (z.B. mit Landesflagge gekennzeichnet), aber ein getrenntes Forum (wegen der Sprache) etc.?)

    Naja, sind nur so ein paar Überlegungen. Vielleicht kann ich da ja was grösseres aufbauen, wäre noch interessant. Würde dann auch ein Redesign machen etc.

    Vielen Dank schon mal ;)

    Grüsse baloo

    dass das mysql-result von anfang bis ende durchlaufen und die gerade aktive zeile in die variable $data geschrieben wird, damit du innerhalb der schleife damit arbeiten kannst. einfach gesagt *g*

    ob die mail() funktion deaktiviert wurde, siehst du in der phpinfo() unter disable_functions. (einfach php-file mit <?php phpinfo() ?> erstellen und auf dem server ausführen.
    kann auch sein das dein provider keinen mailserver installiert hat, glaube ich zwar nicht.
    falls es trotzdem der fall sein sollte müsstest du wahrscheinlich was über smtp machen oder einstellen, aber ich kenn mich da auch nicht so aus :(