Suche auf lima-city
-
in: mysql_fetch_row für prepared statements
geschrieben von scout
Hey, evtl. hilft dir ja dieses Beispiel weiter... http://www.lima-city.de/thread/mysql-injectionen-verhindern/page%3A0/perpage%3A20#711815 -
in: Opennic ("das zweite Web") - Erfahrungen
geschrieben von scout
Also persönlich kenne ich diesen Service nicht, aber es scheint als ob es ein stink normaler DNS Server ist. Die Namensauflösung passiert nach dem gleichen Prinzip, wie im Internet auch, nur dass die registrierten Domains NICHT den Root.DNS Servern bekannt gegeben werden.
Demzufolge muß jeder der den Service nutzen will, auch seine DNS Einstellungen anpassen, so dass genau diese DNS Server abgefragt werden.
nicoa schrieb:
... ob man die dort kostenlos erhältlichen Domains (.glue, .geek, .free, ...) irgendwie auch anders als über die dort eingetragenen DNS-Server besuchen kann ...
NEIN, da wie oben schon geschildert, die Domains NICHT den Root-DNS Servern bekannt gemacht werden
Es sei denn... man schreibt die Domain-IP-Zuordnung bei sich in die lokale Hosts Datei (C:\WINDOWS\system32\drivers\etc\hosts ) dann wird der Name lokal zur IP aufgelöst - ohne jegliche DNS Server.
Grüßle -
in: in array keys neu zuweisen
geschrieben von scout
businessplan schrieb:
wie bekomme ich das Array so, dass die Keys "normal" aufsteigend sind
$input = array(0 => 'dfsdf', 4 => 'sfddf', 34 => 'sfdsf'); $new = array_merge($input);
Grüßle -
in: RegEx/PHP URL umschreiben
geschrieben von scout
Das ist soweit möglich. Man muß allerdings zwei Sachen unterscheiden:
1. deine Links auf der Webseite:
Diese mußt du selbst per PHP halt in deinem Format formatieren und ausgeben.
2. Die Umwandlung des Requests in ein Url taugliches Format
D.h. die URL die im Browser eingegeben wird bzw. die Url die bei dir auf der Webseite angeklickt wird, in ein Format zu bringen, das der Webserver damit arbeiten kann. Bei diesem Schritt hilft dir mod_rewrite
(Konvertierung domain.de/234323234/1231231 unsichtbar in domain.de/index.php?eid=234323234&aid=1231231 womit der Webserver aufgerufen wird)
Grüßle -
in: Webseite erfolgreich auf UTF-8 umstellen
geschrieben von scout
zerojan schrieb: @ scout
Ist das richtig so?
Jain, dieser Wert hat nur noch Einfluss auf zum Bsp. Sortierreihenfolge usw. allerdings NICHT auf die Daten selbst.
Du mußt dir vorstellen...Latin1 benötigt zum Speichern 1 Zeichenbreite...utf8 hingegen 2 Zeichenbreiten
Die Kollation ist richtig, nur die Daten dann nicht mehr - diese werden nicht mitgeändertAus diesem Grund hilft da nur Daten Dumpen und neu einspielen.
zerojan schrieb: @ scout
Ist die von dir genannte Methode immer nötig?
Naja kommt ganz drauf an wie CLEAN du die ganze Sache haben willst... ich hab durchaus auch Kunden denen langt es utf-8 Daten in eine latin1 Datenbank zu füttern. Solange das Verfahren hinten dran zum Auslesen der Daten das gleiche bleibt, wird dabei auch kein Problem auftreten. Wird hingegen später ein neues externes Programm geschrieben, dass die Daten anders abruft bzw. speichert, gibts dann ein Problem.
Aus diesem Grund mach ich mir die Mühe über "mysqldump --default-character-set=utf-8 ..." und importiere diese neu.
siehe auch: http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html
zerojan schrieb: @ scout
Und was bewirkt deine oben genannte Lösung genau? Das ist mir noch nicht ganz klar.
Dass die Zeichen in der Datenbank auch UTF-8 Zeichen sind und keine Latin1 Zeichen.
Grüßle -
in: Webseite erfolgreich auf UTF-8 umstellen
geschrieben von scout
Hi,
es könnte auch sein, dass die Datenbankverbindungen vor deinem session_start() machst und dort jetzt eine Fehlermelung ausgegeben wird... am Besten du schreibst session_start() erstmal vor alles andere... also auch vor require(), include() usw.
Außerdem mußt du der Datenbank mitteilen, dass deine Zeichen die du empfangen willst, du jetzt gerne in utf-8 haben magst.
Dazu schreibst du hinter jedem mysql_connect()
bei PHP < 5.2:
<? mysql_query("SET NAMES 'UTF-8'"); ?>
ab PHP 5.2.3:
<? mysql_set_charset('UTF8', $link); ?>
Damit deine Daten in der Datenbank dann allerdings einheitlich sind (also bis jetzt latin1 und ab jetzt utf8) müsstest du die Daten auch konvertieren. Dazu am Besten ein Dump ziehen und als export zeichensatz utf-8 angeben. Danach die Datei wieder einspielen
Um dir keine Daten zu verlieren würde ich das allerdinsg erstmal in eine NEUE Datenbank einspielen und schauen ob alles so stimmt.
So bist du vor Datenverlust sicher.
Grüßle -
in: achtung virenfalle! google-suche manipuliert?
geschrieben von scout
Nunja, da es dir offensichtlich egal ist, was mit dem Rechner passiert und sich die Viren tummeln... heißt das nun NEUINSTALLATION !
Viel Spaß. -
in: The path you entered doesn't contain valid ImageMagick binaries
geschrieben von scout
Hmm,
also gm.exe klingt irgendwie nach GraphicsMagic ... evtl. wird ja auch nur geprüft ob GraphicsMagic installiert ist?
Zu finden ist GraphicsMagic unter ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/windows/
Und falls du eine aktuellere ImageMagic brauchst... http://www.imagemagick.org/download/binaries/
Da gibts auch ein *.zip was ohne Install gehen müsste.
Zu combine.exe fällt mir leider nichts ein... könnte allerdings in älteren Versionen vorhanden gewesen sein, was später dann nicht mehr benötigt wurde.
Grüßle -
in: get funktion bei php geht nicht
geschrieben von scout
bergfink schrieb:
Das ist der code:
// ... if($matches){ echo "<html><body><a href='javascript:void(self.location.reload())'>reload pic</a><img src='http://cmspic$matches[1].jpg'/></body></html>"; } // ...
und da ist er eingebaut:
<iframe src="http://bergfink.lima-city.de/b/get_feratel_pan.php?bla=5201" usw...
Das Problem ist, dass $matches in jedem Fall ein Array ist, du allerdings auf ein Boolean Wert mit if abprüfst.
Da das Array nie true werden kann, bekommst du auch nichts angezeigt
Richtig wäre:
if (is_array($matches)) ...
@evil-devil: er holt sich bestimmt den Content von einer anderen Webseite - somit wäre die URL schon ok ...nur moralisch ist Content-Klau nicht so schick
Grüßle -
in: The path you entered doesn't contain valid ImageMagick binaries
geschrieben von scout
Hi,
so genau lässt sich das mit dem Codeschnipsel nicht herausfinden.
Die einzigste Fehlermeldung die was aussagt ist: "File does not exist" zu deutsch "Datei existiert nicht"
Aus deinem Debug Output entnehme ich dass zum Bsp folgendes Kommando ausgeführt wird:
cmd /c " "c:\wtool\ImageMagick6_1_9Q16\identify.exe"
"C:\web\gallery2\modules\imagemagick\data\test.gif" 2>
"C:\web\gallery2\data\tmp\g2d817.tmp" "
Ich denke mal eine von den drei Dateien wird es einfach nicht geben.
Alternativ kannst du auch das Commando mal an der Eingabeaufforderung ausprobieren und schauen was dort so ausgespuckt wird
Grüßle -
in: neueste Einträge anzeigen
geschrieben von scout
Hi,
generell sollte es in den Tabellen eine "created" und "changed" Spalte geben. Damit kann man dann nach Beitragserstelldatum (created) bzw. Beitagsänderungsdatum (changed) sortieren und die jeweiligen Threads dann ausgeben.
Grüßle -
in: SMS über PHP (gratis)
geschrieben von scout
Hi,
laut dem API-Leitfaden (http://www.lima-city.de/2008/sms) soll man bei der Nummer keine Länderkennung angeben.
Demzufolge ist das versenden wohl nur an deutsche Handys erlaubt/möglich
Grüßle -
in: UTF-8 Codierung aus MySQL-Datenbank laden
geschrieben von scout
Hkeksessen schrieb: Klappt irgendwie nicht, wenn ich das Skript versuche, bleibt die Encodigng Art latin1. Und es wird nicht UTF-8
Hmm hab das gerade nochmal getestet und es geht wirklich nicht;
Wenn man per SQL-Statement das Charset anpasst merkt PHP davon scheinbar nichts mehr ;-(
Hab aber gesehen dass PHP eine neue Funktion mit 5.2.3 eingeführt hat:
<? mysql_set_charset('UTF8', $link); ?>
Wenn man Anstelle der SET NAMES Zeile diese Zeile benutzt kommt auch mit mysql_client_encoding...der eingestellte Zeichensatz.
Grüßle -
in: UTF-8 Codierung aus MySQL-Datenbank laden
geschrieben von scout
tillorgias schrieb:
Schau dir mal die HTML-Metainformationen an oder nutze die PHP-Funktion htmlentities, da werden die zeichen korrekt maskiert (aus ü wird &uuml;, aus ö &ouml; usw.).
Nein, das ist keine Gute Idee die Zeichen HTML-kodiert in der Datenbank zu speichern. Dann können nämlich andere Programme, dies mit unter nicht richtig darstellen, bzw. man müsste mitunter händig eine Funktion schreiben die das zurück übersetzt ;-(
Dein Client-Encoding wird wahrscheinlich nicht UTF-8 sein, so dass alle Ergebnisse in dem Client-Encoding ausgegeben werden.
Prüfen kannst du das indem du in PHP folgendes machst:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); $charset = mysql_client_encoding($link); echo "The current character set is: $charset\n"; ?>
Sollte dort irgendwas anderes als UTF-8 stehen, mache folgendes nachdem du dich zur mysql Datenbank verbunden hast.
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_query("SET NAMES 'UTF-8'"); echo 'Encoding: '.mysql_client_encoding($link); // ... mysql_close($link); ?>
Das müsste helfen... zumindest hätten sich dann Server und Client auf UTF-8 geeinigt
Grüßle -
in: Sicherheitsabfrage mit PHP eingeben
geschrieben von scout
tct schrieb:
Wenn man nicht direkt Einblick in den Ordner bekommt, also über dictionary listing vom Apache, spielt das doch überhaupt keine Rolle. Du kannst die Bilder ja weiterhin auf deiner Website anzeigen lassen (mit dem stinknormalen <img>), auch wenn der Ordner per .htaccess geschützt ist damit niemand Zugriff auf die Dateien bekommt. Das ist ja grade das Tolle daran, oder hab ich dich falsch verstanden?
klingt mir eher danach, dass er so ne Art Handy-Bild-Download Webseite machen will. Man bekommt auf der Webseite ansich Thumbnails angezeigt, jedoch wenn man bezahlt hat, kann man das Orginal downloaden bzw. sich aufs Handy übertragen lassen.
ODER:
Er möchte seine Bilder auf der Webseite einfach vor "klau" schützen.
-> Dazu legt man einfach eine .htaccess ins Bilderverzeichnis mit dem Inhalt
Order Deny, Allow Deny from all Allow from 127.0.0.1 Allow from ##serverip##
##serverip## noch gegen deine Hosting IP ersetzen und fertig.
Dadurch bekommt man keinen Zugriff von Außerhalb auf das Bilderverzeichnis, allerdings der Server selbst kann darauf zugreifen.
Grüßle -
in: mod_rewrite
geschrieben von scout
Jetzt funktioniert es, aber auch nur wenn der Slash am Ende fehlt.
Nunja ein Slash am Ende würde ja auch bedeuten, dass davor Ordnernamen stehen -
in: kleinres script
geschrieben von scout
Hmm,
klingt ja ganz toll, nur einen Haken gibt es - wo kommen die Daten her ?
D.h. eine Seite zu machen, die zu einem bestimmten Begriff dir aus diener Datenbank den entsprechenden Link holt, dürfte kein Problem sein.
Doch woher/wie kommen die Daten in die Datenbank?
Willst du diese händig einpflegen? ...sowas ist recht mühsam.
Ich nehme an dass die Stichworte von deiner eigenen Seite auftauchen sollen, oder magst du auch von Seiten aus dem Internet sowas erstellen?
Grüßle -
in: Sicherheitsabfrage mit PHP eingeben
geschrieben von scout
Hmm, ich glaub hier wissen einige nicht was du genau möchtest... ich versuchs mal zu erklären, so wie ich es verstanden habe.
Also du möchtest ein Verzeichnis über eine htaccess Datei schützen.
In der htaccess steht dann sowas wie:
AuthName "restricted stuff" AuthType Basic AuthUserFile /usr/local/etc/httpd/users require valid-user
In der Datei "users" stehen die Nutzer die Zugriff haben.
z.B.
martin:WrU808BHQai36 jane:iABCQFQs40E8M art:FAdHN3W753sSU
Soweit klar. Doch was möchtest du dann?
Dass Nutzer die dein PHP-Script ausführen wollen dies können? ... dies können Sie indem Sie Ihren Nutzernamen und Passwort angeben
Wenn du hingegen mit einem anderen PHP-Script irgendwelchen Inhalt aus dem verzeichnis über Webrequest auslesen willst, mußt du halt einen Nutzer und Passwort mit übermitteln.
Wenn du den Inhalt aus dem geschützen Verzeichnis "inkludieren" möchtest, müsste das ohne Probleme gehen
Wenn du über ein PHP-Script nur die Nutzer verwalten willst, na dann lies halt die "Users" Datei ein bzw. ergänze diese mit den Dateifunktionen von PHP. http://de2.php.net/manual/en/function.fopen.php
Soo nun erkläre bitte mal dein Problem etwas mehr
danke.
Grüßle -
in: RegEx in Ordnung?
geschrieben von scout
snoo3 schrieb:
Also könnten die Experten unter euch mal prüfen ob das so korrekt ist.
~^[A-Za-z0-9.-_&/%]{1,}@{1}[A-Za-z0-9-.]{3,}\.{1}[A-Za-z]{2,9}$~
Hallo,
bis auf deine "." und "-" ist alles soweit ok. Der Punkt hat eine Sonderstellung und beinhaltet dabei alle Zeichen, demzufolge müsstest du den escapen. Genauso den Bindestrich.
Außerdem würde ich noch prüfen ob ein Punkt am Anfang bzw. Ende steht - das darf generell nicht sein.
Grüßle
-
in: Letzte Eniträge in WP extern anzeigen lassen.
geschrieben von scout
sowas?
http://apptools.com/phptools/xml/rss.php
Grüßle -
in: Richtig/ sauber PHP coden
geschrieben von scout
Hi,
ich würde das ein klein wenig anders machen...
Part 1: Login
Part 2: Fragen für Nutzer werden ausgewürfelt
Part 3: Fragen werden ausgelesen und dem User angezeigt
Part 4: Antworten werden abgespeichert
(Part 5: User loggt sich aus)
Es gibt die Tabellen User(uid, name, passwort), Fragen(fid, Text), Userfragen(ufid, uid, fid, antwort)
Im Part2 werden also die ausgewürfelten Fragen für den User in die Tabelle Userfragen eingetragen. Dadurch kann man diese auch wieder vorholen falls die Session mal unterbrochen wird. Weiter kann man sehen welcher Nutzer welche Fragen zugeordnet bekommen hat. Das Auswürfeln selbst geschieht indem du ein Select auf diene Fragen machst und dir die IDs holst. Dann nur noch 10 IDs zufällig auswählen und in Tabelle Userfragen abspeichern.
Im Part3 werden die Fragen aus Tabelle Userfragen dem jeweiligen Nutzer angezeigt und natürlich die Antworten per Update abgespeichert (Part4)
Falls du ein wenig performance rausholen willst, kannst du zusätzlich die ermittelten Fragen (Part2) in der Session abspeichern bzw. Part2 überspringen und nur die Fragen in die Session speichern, falls schon Fragen für den Nutzer in der DB existieren.
Beim Anzeigen holst du dann die Daten halt aus der Session, doch ehrlich gesagt muß eine Datenbank das abkönnen mit mehr als 100000 Zugriffen pro Sekunde umzugehen. Da dürfte es eigentlich keine Probleme geben.
Grüßle -
in: Richtig/ sauber PHP coden
geschrieben von scout
Generell ist zu sagen:
- einfach Anführungsstriche dann, wenn keine Variable dazwischen steht. -> Script wird etwas schneller abgearbeitet, da alles dazwischen nicht nochmal geparst werden muß.
- bei $_GET usw. würde ich ebenfalls einfache Anführungszeichen verwenden, weil siehe oben.
- je nach Geschmack entweder:
echo 'Angemeldet seit: '.$x.' Tagen';
oder
echo "Angemeldet seit: $x Tagen";
Ich selbst bevorzuge erstere Variante, weil dann das Syntax Highlighting bei Arrays korrekt angezeigt wird
- für die Einrückung gibt es keinen festen Standard... allerdings haben sich 4 Zeichen oder Tab eingebürgert
Grüßle -
in: date() Zeitsprung: USA -> Ö/D
geschrieben von scout
Hi,
ich nehme mal an dass bei dir einfach noch die Zeitzone falsch eingestellt ist
Versuch mal folgendes:
<?php // date_default_timezone_set('America/Los_Angeles'); date_default_timezone_set('Europe/Berlin'); echo date("F j, Y, g:i a")."<br />\n"; echo gmdate("F j, Y, g:i a")."<br />\n"; ?>
Dann werden auch automatisch die Werte von DATE angepasstgmdate() gibt hingegen immer GMT+0 zurück.
Grüßle -
in: Sicherheitsschleuse
geschrieben von scout
Hey,
auf Flughäfen usw. gibt es meistens verschiedene Apparate! Die geräte bei denen man die Sachen nicht Schleusen sollte, steht IMMER ein Schild drüber/dran/davor, dass man Fotoapparate usw. durt halt nicht durchschieben soll.
Meistens steht gleich danaben ein Gerät, wo man das dann wieder kann und wird gebeten diese Gegenstände dort zu schleusen.
Bisher hatte ich auch noch nie Probleme damit
Grüßle -
in: Batch Datei zum FTP Verbinden
geschrieben von scout
Naja im grunde mußt du nicht viel machen...
irgend ein Timer der den Befehl "ftp -s Befehlsdatei.txt" aufruft.
In der Datei "Befehlsdatei.txt" stehen dann die Befehle zum verbinden bzw. up-/downloadbefehle.
zum Bsp. so:
open ftp.server.de username password put dateixy.exe quit
zu entnehmen hier: http://support.microsoft.com/kb/96269
Grüßle -
in: PHP in HTML?
geschrieben von scout
Hi,
kommt wie immer ganz darauf an wie du es meinst und anwendest.
Bettest du PHP Elemente in HTML ein und jagst diese Datei dann nie durch einen PHP Parser...bringt dir das PHP gar nichts.
Aus diesem Grund, wenn der Code vom PHP Parser geparst wird ist alles ok.
Das heißt wiederrum, wenn dein Webserver alle HTML Dateien trotzdem durch den PHP Parser schickt ist alles ok, tut er das nicht wird halt das PHP nicht interpretiert.
Um diese Entscheidung zu erzwingen, erstellt man meist PHP Dateien und echoed/printed von dort die HTML Elemente raus.
Grüßle -
in: Wie programmiere ich eine programmoberfläche???
geschrieben von scout
Wie wäre es mit ADO oder dem MySQL .NET Connector?
Es gibt verschiedene Versionen:
.NET 1.0 (Version 1.0): http://dev.mysql.com/downloads/connector/net/1.0.html
.NET 2.0 (Version 5.0): http://dev.mysql.com/downloads/connector/net/5.0.html
.NET 2.0 (Version 5.1): http://dev.mysql.com/downloads/connector/net/5.1.html
Und die Doku gibt's hier:
http://dev.mysql.com/doc/refman/5.0/en/connector-net.html
http://www.functionx.com/mysqlnet/csharp/Lesson02.htm (ganz unten gibts eine Navigation zu den nächsten Seiten)
Das ganze geht zwar auch über ODBC möglich, allerdings ist ODBC bald ausgestorben ;-(
Grüßle -
in: HTML Source bestimmen
geschrieben von scout
Hallo,
ich hab ein kleines Problem...
Habe eine Seite, wo dynamisch über Javascript der Inhalt an einer Stelle ausgetauscht wird. Dort erscheint einfach nach einer diversen Zeit ein anderer Spruch
Nun möchte ich allerdings mit einer zweiten Seite den momentan sichtbaren Spruch auslesen und nochmehr Informationen dazu anzeigen.
Wie bekomme ich heraus welcher Spruch derzeit aktiv ist?
Wenn ich mir mit der zweiten Seite die Source der ersten Seite hole, fängt das Javascript Teil natürlich wieder von vorn an mit den Sprüchen ;-(
Hoffe Ihr könnt mir ein wenig helfen...
Grüßle -
in: Wie programmiere ich eine programmoberfläche???
geschrieben von scout
sincer schrieb: ho ;)
LOL, danke.
Ich hab das mal eben auch ausprobiert ^^
Ist ja sau geil :P
Lauter Funktionslose Button, und Felder uns Scrollleisten ^^
Aber hey: Der Kalender ist klasse :D
lg
Sincer
Na das ist ja wohl klar, dass die als Default erstmal nichts machen! Dazu mußte halt mal doppelt auf die Button klicken und dann einen Befehl hinterlegen (z.B. "Form1.ActiveForm.BackColor = Color.Blue;"
Grüßle -
in: Wie programmiere ich eine programmoberfläche???
geschrieben von scout
Hmm sieht aus wie ein Fenster mit Menü uns Statuszeile, aber ohne Inhalt
Nunja ich würde dir da das Visual Studio empfehlen...
gibt es hier: http://www.microsoft.com/germany/Express/download/webdownload.aspx
Mußt halt deine Programmiersprache auswählen... also Visual Basic, C# oder C++ und schon kann es los gehen.
Nach der Installation ein Projekt "Windows Forms-Anwendung" erstellen und die entsprechenden Elemente auf die Oberfläche ziehen.
In deinem Fall also einen ToolStripContainer, MenuStrip bzw. ToolStrip und einen StatusStrip aus der Toolbox > Kategorie "Menüs & Symbolleisten".
Fertig ist eine Oberfläche mit menü und statusleiste... und als Schmankerl kann man das ToolStrip-Menüs während der Ausführung auch noch anders anordnen (z.B. an die Seite oder so, je nachdem wie das der Nutzer gern hat)
Grüßle Martin -
in: include geht nicht
geschrieben von scout
ich glaube dass es das falsche Include ist, was du uns hier präsentierst.
Der Fehler titt hier auf:
/Homepage/data/inhalt.php in Zeile 17
Also müsste dort das Include stehen.
Grüßle -
in: Normalformen verständnisfrage
geschrieben von scout
Hallo,
in Prüfungen wollen die meist so Formulierungen wie im Wikipedia (jeweils der erste Satz bei den normalformen) http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
Demzufolge stimmen deine Normalformen nicht ganz.
1. Normalform: Jedes Attribut muß atomar sein (für sich alleine stehen)
aid | Album | lid | Lieder
1 | Album1 | 1 | Lied1
1 | Album1 | 2 | Lied2
1 | Album1 | 3 | Lied3
2 | Album2 | 4 | Lied4
2 | Album2 | 5 | Lied5
2 | Album2 | 6 | Lied6
d.h. aid und lid werden jeweils Schlüssel und der Primärschlüssel wäre (aid,lid)
2. Normalform: Jedes Nicht-Schlüsselattribut genau von einem Schlüssel (funktional) abhängig ist
Die Attribute Album und Lieder sind jetzt zwar von lid abhängig, aber nicht von aid - d.h. wir müssen in 2. NF umwandeln...
Alben
aid | Album
1 | Album1
2 | Album2
Lieder
aid | lid | Lieder
1 | 1 | Lied1
1 | 2 | Lied2
1 | 3 | Lied3
2 | 4 | Lied4
2 | 5 | Lied5
2 | 6 | Lied6
3.Normalform: jedes Nichtschlüsselattribut von keinem Schlüsselkandidaten transitiv abhängt
Hmm zwecks Datenmangel sind die Tabellen dann schon in der 3. Normalform
Allerdings wenn du in der Tabelle Album zum Bsp. noch Daten zum Interpreten oder so hättest, müsste man diese hier auslagern, weil die Daten zum Interpreten sich ja nicht bei jedem Album ändern - sondern wenn dann insgesamt.
Alben Lieder Interpret
aid | Album | Interpret
1 | Album1 | i1
2 | Album2 | i2
3 | Album3 | i1
Lieder
aid | lid | Lieder
1 | 1 | Lied1
1 | 2 | Lied2
1 | 3 | Lied3
2 | 4 | Lied4
2 | 5 | Lied5
2 | 6 | Lied6
Interpret
iid | Name | Gründung
i1 | Interp1 | 1980
i2 | interp2 | 1967
Hoffe das hilft ein wenig.
Grüßle -
in: RewriteRule wird nicht ausgeführt
geschrieben von scout
Hallo Andre,
wie ich schon oben editiert hatte, war die RewriteRule vollkommen korrekt und wurde auch ausgeführt.
Allerdings habe ich danach noch ein Typo3 mit der Extension "RealURL" laufen. Dieses RealURL greift genauso wie eine RewriteRule in den Verlauf ein.
D.h. es ist folgendes passiert:
1. vhost.conf wurde abgearbeitet (dabei die RewriteRule mit [ L ] angewandt - die die URL nicht ersetzt werden sollte bleibt diese auch so)
2. Apache geht ins Document_Root
3. Typo3 wird ausgeführt (dabei wird die URL aufgelöst) - Weil diese URL nicht geändert wurde, versucht nun typo3 diese URL aufzulösen
4. Typo3 scheintert mit der Auflösung und zeigt eine Fehlermeldung
Es verhält sich also so wie zwei RewriteEngines in Reihe geschaltet
Grüßle -
in: [C#] spätes Laden der DLL eines Namespaces
geschrieben von scout
Hallo,
ich bastel ein Programm, was die Websites aus dem IIS6 und IIS7 auslesen soll.
Für den IIS7 möchte ich die DLL microsoft.web.management.dll verwenden. Normalerweise gebe ich im C# Programm die Using-Clausel an und binde die DLL statisch als Verweis ein und kann dann die Funktionen verwenden.
ich habe jetzt allerdings das Problem, dass diese DLL beim IIS6 nicht existiert und auch nicht funktionieren würde.
Demzufolge müsste ich erst auf die IIS Version prüfen und danach erst die entsprechende DLL laden.
Am Wochenende hab ich das mal über Reflection probiert, doch da meckert der Compiler dass kein Ko0nstruktor vorhanden wäre!
Nunja evtl. hat ja jemand schon sowas ähnliches gemacht und kann mich unterstützen.
Grüßle -
in: RewriteRule wird nicht ausgeführt
geschrieben von scout
Hallo,
habe ein Problem mit meinem Apache.
Bei diesem habe ich eine RewriteRule im vhost hinterlegt, allerdings wird diese nie ausgeführt. RewrietEngine und logging ist an.
VHost Rewrite Regel:
RewriteRule ^/downloads/xyz/([a-zA-Z0-9]+)/([a-f0-9]+)/3/4/(.+) /index.php?id=3&$1=$2&do=pdf [L]
Produziert im Log folgendes:
Zeile 1: (2) init rewrite engine with requested uri /downloads/xyz/PHPSESSID/2d563456f4d25c7fa83f53f432845478/3/4/Test.pdf Zeile 2: (3) applying pattern '^/downloads/xyz/([a-zA-Z0-9]+)/([a-f0-9]+)/3/4/(.+)' to uri '/downloads/xyz/PHPSESSID/2d563456f4d25c7fa83f53f432845478/3/4/Test.pdf Zeile 3: (2) rewrite /downloads/xyz/PHPSESSID/2d563456f4d25c7fa83f53f432845478/3/4/Test.pdf -> /index.php?id=3&PHPSESSID=2d563456f4d25c7fa83f53f432845478&do=pdf Zeile 4: (3) split uri=/index.php?id=3&PHPSESSID=2d563456f4d25c7fa83f53f432845478&do=pdf -> uri=/index.php, args=id=3&PHPSESSID=2d563456f4d25c7fa83f53f432845478&do=pdf Zeile 5: (2) local path result: /index.php Zeile 6: (2) prefixed with document_root to /var/www/testdomain.de/index.php Zeile 7: (1) go-ahead with /var/www/testdomain.de/index.php [OK]
Die Auflösung der URI scheint also zu funktionieren, nur zu dem Resultat mag er dann nicht ausführen.
Weiß jemand Rat woran es liegen könnte ?
Grüßle
Edit: Hat sich erledigt! RewriteRule funktioniert, nur das Typo3 danach macht murx ;-(
Thread kann geschlossen werden. -
in: dateien via php löschen
geschrieben von scout
http://de.php.net/manual/de/function.unlink.php -
in: PHP: Befehl als root ausführen ohne Systemeingriff [Idee]
geschrieben von scout
WOW was für eine Leistung, da werden dem lokalen PHP zuerst soviel Rechte gegeben, dass man überhaupt die Funktion system() aufrufen darf und dann soll man noch das Root Passwort irgendwo hinterlegen!
Sag mal bist du völlig gaga? Natürlich kann PHP auch systembefehle ausführen, wenn man PHP das Recht dazu gibt und natürlich kann man dann auch Sachen ausführen unter einem anderen Nutzerkonto wenn man das Passwort mit übermittelt!
Wenn ich die Passwörter in ein Script schreibe, dann kann ich auch gleich die Passwörter im Web veröffentlichen.
@MODs: Aus Sicherheitsgründen würde ich an eurer Stelle diesen Thread löschen!
Grüßle -
in: Verzeichnis zippen
geschrieben von scout
Was ist jetzt so schwierig daran die Zip Funktionen mit opendir() zu verknüpfen ?
http://de3.php.net/manual/de/book.zip.php
http://de3.php.net/manual/de/function.opendir.php
Mit Opendir() liest du dein Verzeichnis aus und anstatt die Namen auszugeben fügst du die Dateien zum Archiv dazu. fertig.
Dein größeres Problem wird sein, dass hier bie Lima die Zip Extension nicht geladen ist und wie ich die Herren kenne auch nicht so schnell geladen wird...heißt also packen über PHP nicht möglich.
Grüßle
Edit: Links als Links markiert -
in: Suche _guten_ Mail-Anbieter
geschrieben von scout
goldeneye schrieb:
aber was spricht gegen googlemail?
ist wirklich der beste anbieter, genialer spamschitz, zwar google, dafuer aber trotztemd gute qualtitaet.
Googles AGB sprechen dagegen!
Dort steht drin dass deine eMails gespeichert und weiterverarbeitet werden können und jegliches geistiges Eigentum zu Google übergeht.
D.h. sobald ich irgendwelchen Quellcode per Google-Mail verschicke, ist das so als würde ich mein Programm an Google verkaufen für 0 Euround das muß ja nicht sein.
Grüßle -
in: Problem mit INSERT INTO
geschrieben von scout
Naja sagen wir mal so, deine Query wird NIE erreicht, also auch NIE ausgeführt. Warum sollte also ein Fehler kommen?
Du hast eine Seite mit 2 Bedingungen, d.h. dein Insert kann man nur erreichen wenn beide Bedingungen erfüllt sind.
Beispiel:
Man ruft die Seite auf -> kommt die Login Eingabe -> ok gibt man was ein ...Login
->dann kommt dein Login und das zweite Formular -> gibt man was ein und geht auf aktualisieren.
-> dadurch wird nur noch das Post[button] übermittel -> erste Bedingung (Post[passwort] ist nicht erfüllt
-> es wird nur der Login angezeigt
Hoffe das hilft ein wenig.
Grüßle
PS: wobei ich nicht weiß ob index.php?section=admin wieder bei dir dort in der Datei ankommt
-
in: Artmedic Link Script Anzeige Problem !!
geschrieben von scout
shiava schrieb:
Wäre nett wenn einer helfen könnte.
joar ein Link zum Script wäre ganz nett
Grüßle -
in: Daten werden immer 2 mal geschickt. Warum?
geschrieben von scout
j-s schrieb:
mysql_query("INSERT INTO `buch`.`beitrag` VALUES ('$name','')");
Deine INSERT stimmt glaube ich nicht.
Die Syntax ist: INSERT INTO tabellenname (spaltenname1, spaltenname2) VALUES ('wert1', 'wert2');
Grüßle -
in: Wbb2 Lite
geschrieben von scout
Ach das ist hier? Dann mal unter "Lima-City Allgemein" > "Support" (http://www.lima-city.de/board/support) einen Beitrag dazu erstellen...dass dir der Speicher ausgegangen ist.
Bzw. die Quota evtl. fürs Tmp Verzeichnis gesetzt ist.
Grüßle -
in: Wbb2 Lite
geschrieben von scout
Hmm die Message:
error message: Could not untar file 'setup/lang/setup_it.xml' to '/home/webpages/tmp/a8263fd9_setup_it.xml'. Maybe disk quota exceeded in folder '/home/webpages/tmp'.
sagt doch wohl aus dass der Speicherplatz aufgebraucht ist. Du hast also keinen Platz mehr um die Datei zu entpacken
Grüßle -
in: Geld durch Uploads
geschrieben von scout
Hmm bei Netload muß der Download mind. 100 MB groß sein damit man was bekommt ;-(
Also nichts mit bezahlt werden für Bilder.
Grüßle -
in: PageRanke Servis?
geschrieben von scout
Hi,
dort gibt es ein Siegel, was man bei sich auf die Seite einbinden kann :-)
http://www.database-search.com/sys/pre-check.php
Grüßle -
in: Domain mit webspace und Email
geschrieben von scout
tibel schrieb:
Mein Tip: Bei lima-city eine Domain ersteigern oder kaufen. Unter der Domain ist dann dein Lima.webspace erreichbra und alle Mails @nachname.de werden an deine hier hinterlegte e-Mail-Adresse weitrergeleitet.
Das ist soweit richtig.
ABER:
Was macht er wenn irgend ein Familienmitglied auf die Idee kommt auch so eine schicke eMail xy@nachname.de haben zu wollen, diese allerdings auf eine andere eMail Adresse weitergeleitet werden soll? verständlicherweise!
Und schon hat man den Schlamassel... demnach bin ich bei Familiennamenadressen immer der Auffassung einen richtigen Provider zu wählen wo man x beliebig viele Postfächer bzw. Weiterleitungen einrichten kann
Grüßle -
in: Domain mit webspace und Email
geschrieben von scout
Hmm kann dir noch http://top-hoster.de/webhosting_paketuebersicht empfehlen!
Falls du keine Datenbanken oder Cronjobs brauchst reicht auch ein XS Paket, allerdings würde ich dir das Paket S empfehlen, da ab diesem Paket derzeit eine Sonderaktion läuft. Du bekommst also entweder eine .de Domain kostenlos dazu oder eine Speicherplatzverdoppelung.
Grüßle -
in: Such gutes Class Tutorial
geschrieben von scout
strange schrieb: Irgend wir habe ich das Gefühl dass ich eine fremde Sprache spreche.
Nunja das Problem ist halt...was ist ein Praxistutorial ?
Es gibt Tutorials zum Klassenaufbau, die beschreiben wie Klassen generell aufgebaut sind. Und es gibt Entwurfsmuster die beschreiben, wie man Klassen gekonnt verschachtelt für alltägliche - meist immer wiederkehrende - Aufgaben.
Um dir zu helfen, würde ich vorschlagen, dass du einfach mal diene Fragen, die zu Klassen auftreten, hier uns gebündelt zur Verfügung stellst. Wir werden dir dann dazu Antworten bzw. Links, Tutorials usw. liefern.
ok?
Grüßle -
in: kleines php Script 2 - um HTML aus Ordner auszulesen..
geschrieben von scout
Da fehlen die Begrenzer
if ($file != "." && $file != ".." && preg_match('[0-9]+\.html$', $file)) {
richtig wäre:
if ($file != "." && $file != ".." && preg_match('/[0-9]+\.html$/i', $file)) {
Grüßle -
in: Such gutes Class Tutorial
geschrieben von scout
Hmm ich nehme mal an, dass es dir nicht darum geht, wie eine Klasse im Quellcode aussieht, sondern eher wie man Klassen verschachtelt bei bestimmten Situationen.... ein sogenanntes Gebrauchsmuster/Entwurfsmuster
Das Schlagwort dazu wäre "Patterns, Entwurfsmuster" bei Google. ...dann dürftest du so Muster wie Observer-Muster, Factory-Muster usw.
siehe auch http://de.wikipedia.org/wiki/Entwurfsmuster
Grüßle -
in: MySql injection möglich?
geschrieben von scout
aldistammkunde schrieb:
scout schrieb:
aber kannst ja mal folgendes probieren:
blabla.php?a=job&amp;char=4957';Update table set spalte='test' where id=1;
@scout:
sendet mysql_query() aus php nicht immer nur den ersten query eines strings oder vertue ich mich da jetzt?
Nein, dem ist nicht so.
MySQL sendet immer alle Abfragen, allerdings in einer Transaktion
Wenn es zwei Selects sind kommt natürlich Brühe raus und MySQL muß sich für ein Select entscheiden (weiß jetzt nicht welches)
Grüßle -
in: MySql injection möglich?
geschrieben von scout
Hmm schwer zu sagen ohne QuellcodeDa ich kein Drop Database anhängen möchte
aber kannst ja mal folgendes probieren:
blabla.php?a=job&char=4957';Update table set spalte='test' where id=1;
table und spalte natürlich an eine vorhandene table anpassen
Grüßle
-
in: CSV-Dateien: Verschiedene zeilen einlesen
geschrieben von scout
strange schrieb: Mit Deiner Methode wird auch immer die ganze Datei eingelesen, somit ist egal wie man es macht. So lange es sich nur um ein paar KiB handelt ist es auch egal, erst wenn die Datenmenge zu groß wird braucht man eine andere Methode.
Dem dürfte nicht so sein, denn fgetcsv() liest zeilenweise
Grüßle
PS: allerdings war meine Bedingung nicht ganz korrekt -> ($row == $i+1) muß ans Ende -> oben korrigiert -
in: kleines php Script 2 - um HTML aus Ordner auszulesen..
geschrieben von scout
same-one schrieb:
nikic schrieb:
<?php if ($handle = opendir('.')) {
Und anstatt dem Punkt in opendir('PUNKT') schreibe ich den Ordner-Namen?
same1
genauzum Bsp. '/var/www/testseite'
Grüßle -
in: CSV-Dateien: Verschiedene zeilen einlesen
geschrieben von scout
Das ist so nicht möglich! PHP weiß ja nicht wo die zweite Zeile beginnt, demzufolge muß PHP immer erst die 1. Zeile einlesen
Es sei denn deine 1. Zeile hat IMMER eine feste Größe, dann könnte man mittels fseek() an die Position springen und nur die zweite Zeile einlesen.
Aber wenn du magst kannst du ja nur bis zu der gewünschten Zeile lesen. Das geht dann so:
<?php $row = 2; // Anzahl der Zeilen $handle = fopen ("test.csv","r"); // Datei zum Lesen öffnen $filesize = filesize("test.csv"); // jede Zeile einlesen for( $i=0; $i<$row; $i++ ) { // pruefen ob Zeile = gesuchte und Fehler auftrat if ((($data = fgetcsv ($handle, $filesize, ",")) !== FALSE) && ($row == $i+1)) { $num = count ($data); // Felder im Array $data for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder print $data[$c] . "<br>\n"; // des Arrays auszugeben } } } fclose ($handle); ?>
Edit: @strange: ich glaube er möchte nicht die gesamte Datei einlesen nur um die zweite Zeile zu haben, ansonsten ok
Grüßle -
in: kleines php Script 2 - um HTML aus Ordner auszulesen..
geschrieben von scout
PHP.NET ist glaube ich dein Freund bei dieser Aufgabe
siehe http://de3.php.net/manual/de/function.readdir.php
Dort findest du unter anderem folgendes:
<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file\n"; } } closedir($handle); } ?>
Dann passt du halt noch die if Bedingung an, dass nur noch html Dateien ausgegeben werden und gut ist.
Grüßle
Edit: URL Tags ergänzt -
in: mysql_real_escape_string() demaskieren und Umlautproblem
geschrieben von scout
technofan schrieb: ok, das mit dem demaskieren geht jetzt... allerdings habe ich jetzt ein problem mit den Umlauten....
...
find ich schon komisch... hab schon versucht die zeichen zu ersetzen, klapt aber nicht...
was muss man denn da machen?
Das Umlautproblem beruht darauf, dass deine Webseite UTF-8 Zeichen entgegen nimmt (das auch gut ist) und an dich weiterreicht. Du allerdings von einer iso-8859-1 Kodierung ausgehst. UTF-8 in ISO-8859-1 zu konvertieren ist nur eingeschränkt möglich, da einfach der iso-8859-1 Zeichensatz weniger Zeichen enthält als der UTF-8 Zeichensatz.
Um einem Konvertierungswahn zu entgehen ist es das Beste, wie strange schon schrieb, die Datenbank auch in UTF-8 anzulegen. Damit wärst du Zukunftssicher
Grüßle -
in: mysql_real_escape_string() demaskieren und Umlautproblem
geschrieben von scout
wüßte jetzt nicht wozu man das demaskieren müsste...
man maskiert es ja nur wenn man in die Datenbank speichert und nicht einfach mal so und arbeitet dann mit dem maskierten String weiter.
aber so könnte es gehen:
http://de3.php.net/manual/de/function.stripslashes.php
Grüßle -
in: [MySQL] Tabellen-Zeilen neu durchzählen
geschrieben von scout
Ähm na wenn du kein auto_increment brauchst und die IDs ehh von woanders her bestimmt werden, dann kannst du auch das auto_increment entfernen
Allerdings wenn die IDs von woanders her übermittelt werden und du deine Datenbank auf diese IDs aufbaust, darfst du bei JEDER Nutzeränderung auch deine Datenbank reorganisieren. Sonst stimmt nämlich keine einzige Tabelle mehr.
Aus diesem Grund nutze ich meist eigene IDs (mit auto_increment) und gebe in einer seperaten Spalte die Fremd-IDs an. Somit kann ich meine Daten immer einer Person zuordnen und diese Person hat halt eine X Fremd-ID.
Ok nochmal als Ergänzung...
Falls du folgende Datenbank hast:
Personen (pid, FremdID, Name, Vorname, ...);
Bücher (bid, titel, author, ...);
Ausleihen (aid, pid, bid, ...);
und du jetzt pid anpassen willst, weil es "schick" aussieht, dann heißt dass dass du auch Bücher und Ausleihen anpassen müsstestund somit die gesamte DB reorganisieren mußt. Sorry aber "Das macht kein Mensch" und es macht auch keinen Sinn.
Demzufolge "muß" deine ID immer gleich bleiben, egal ob da Personen rausgelöscht werden oder nicht!
Grüßle -
in: file_exists
geschrieben von scout
Um alle Sicherheitsbedenken zu erfüllen, sollte der Code so umgeschrieben werden:
<?php $var = 'datei2.php'; switch(strtolower($var)) { case 'datei1.php': file_exists('ordner/datei1.php') ? include('ordner/datei1.php') : null; break; case 'datei2.php': file_exists('ordner/datei2.php') ? include('ordner/datei2.php') : null; break; case 'datei3.php': file_exists('ordner/datei3.php') ? include('ordner/datei3.php') : null; break; default: include "ordner/main.php"; // oder Fehlermeldung falls immer ein include stattfinden muß } ?>
Grüßle -
in: [PHP] "Root-Pfad" ermitteln
geschrieben von scout
Hmm mich wundert dass du auf deinem Produktionssystem dann dein Dokument-Root oberhalb verschiedener Projekte hast, aber das könnte ja durchaus so sein
Im Testsystem (xampp) ist das zwar meist so, aber im Live-Betrieb meist anders.
Naja egal auf die schnelle fällt mir da nur folgendes ein:
include(dirname(__FILE__).'filename.php');
wobei dirname(__FILE__) den Pfad der aktuellen Datei wiedergibt
Grüßle -
in: Weltzeit
geschrieben von scout
Die Zeitzonen sind nicht immer stundenweise aufgeteilt, zum Bsp. "Neu Delhi" hat UTC + 5 1/2 Stunden
Solche Fälle kann man nur abhandeln, wenn man die Ortskoordinaten in Bezug auf die Zeitzonengrenze kennt.
Man müsste also erstmal nach einer Datei bzw. Funktion suchen die einem die Zeitzonengrenzen liefert
Grüßle -
in: Eurozeichen und Zeichensatzproblem
geschrieben von scout
Ich nehme mal an das die Zeichen schon als UTF-8 Zeichen von der Webseite kommen...
demnach brauchst du kein utf8_encode() zu machen.
Das utf8_encode() hab ich nur dahin geschrieben, weil ich nicht erst eine Seite basteln wollte die mir utf8 zurück gibt
In deinem Fall wird dadurch 2x utf8 kodiert.
Beispiel:
ISO = "Halölülä das kostet ja 7654 €"
UTF8 in ISO Zeichen dargestellt = "Halölülä das kostet ja 7654 €"
D.h. wenn du utf8 hast kommt effektiv die zweite Zeichenkette an, dann machst du ein utf8_encode() ...d.h. jedes Ã, ¶l, ¼ usw. wird nochmal in utf8 umgewandelt, also utf8 nochmal zu ""Halölülä das kostet ja 7654 €""
Erst danach kommt die Vergleichsfunktion die zum Bsp nach einem ü (ü) sucht, zwar auch findet, aber ringsherum sind lauter unerwünschte Zeichen.
Hoffe konnte es einigermaßen erklären und helfen...
Grüßle -
in: Eurozeichen und Zeichensatzproblem
geschrieben von scout
In welchem Zeichensatz sind denn deine PHP Scripte abgespeichert? ...könntest du evtl. mal Quellcode zum Download zur Verfügung stellen?
Grüßle -
in: Eurozeichen und Zeichensatzproblem
geschrieben von scout
cookies schrieb: htmlentities sollte normalerweise € durch &euro; ersetzen. Keine Ahnung, warum das nicht geht.
ja logisch weil in der Umwandlungstabelle für htmlentities kein Eurozeichen drin ist
siehe:
<? echo '<pre>'; var_dump(get_html_translation_table(HTML_ENTITIES)); echo '</pre>'; ?>
Demzufolge wird das Eurozeichen auch nicht ersetzt.
Man könnte höchstens genauso wie htmlentities das macht auch das Eurozeichen ersetzen lassen.
Das sieht dann so aus:
<? $z = 'kostet 546,36 €'; //$z = utf8_encode($z); // Test bei UTF-8 Zeichen entkommentieren $ersetzungen = array( '€' => '€' ); // UTF8-Zeichen hinzufügen $tmp = array_flip($ersetzungen); foreach($tmp as $key => $value) { $tmp[$key] = utf8_encode($value); } // UTF-8 Zeichen zum Ersetzungsarray hinzufügen $ersetzungen = array_merge($ersetzungen, array_flip($tmp)); $z = strtr($z, $ersetzungen); echo $z; ?>
Das Ersetzungsarray wird mit den UTF-8 Zeichen ergänzt, somit wäre es egal ob man mit UTF-8 Eurozeichen oder ISO Eurozeichen ankommt
In das Array kann man natürlich noch mehr Zeichen hinterlegen.
Grüßle -
in: Bilder mit max 1MB hochladen
geschrieben von scout
finch schrieb:
Is das irgendwie möglich?
Nein, wie soll das denn gehen? ...zumindest nicht per PHP!
Um die Datei verarbeiten bzw. irgendwas zu bestimmen muß die Datei zwingend zum Server übertragen werden, ob du diese dann ablehnst ist deine Sache.
Was ich mir evtl. noch vorstellen könnte, wäre dass man die Größe per JavaScript abfragen kann. Allerdings bin ich mir da unsicher, ob der Webbrowser einfach so auf meine Festplatte zugreifen darf. Ich glaube eher nicht!
Demzufolge dürfte vor der Nutzeraktion "Dateiübertragung" nichts zu prüfen sein
Grüßle -
in: PHP- Fehler von Browser ignorieren lasen?
geschrieben von scout
Lol ist es nicht besser die Tabelle einfach anzulegen?
Achja und wenn bei dir die Tabellen wie die Bilder heißen... d.h. pro Bild eine Tabelle mit eigenem Namen verwendet wird, dann solltest du mal deine Datenbankstruktur überdenken.
Im Normalfall gibt es eine Tabelle tbl_bilder und eine tbl_eigenschaften... wobei unter tbl_bilder halt eine id und Name bzw. Dateiname zu finden ist und in der tbl_eigenschaften sowas wie Größenangaben, Farbtiefe usw. und zwar aller Bilder
Grüßle -
in: [PHP] Karte mit XYZ-Koordinaten
geschrieben von scout
Edit: ups da stand ja schon die Antwort auf meine Fragen... sorry -
in: [PHP] Karte mit XYZ-Koordinaten
geschrieben von scout
Vllt. hat es ja auch gar nichts damit zu tun, sondern ist ein Spieleigenes System.
Z.B. die Staemme hat in einigen Welten auch xyz Koordinaten für den Dorfstandort. Dabei gibt die erste Zahl den Kontinent, die Zweite den Sektor und die Dritte das System an.
siehe http://de3.die-staemme.de/help2.php?article=map
Teste doch erstmal mit ein paar Koordinaten im Spiel (ändere z.B. nur die erste Zahl und schau wo die Dörfer oder so dann liegen, dann die zweite ..usw.)
Grüßle -
in: Advanced Login : Wieso steht das so da : {login}
geschrieben von scout
play5 schrieb:
Kann man des nicht irgendwie zulassen oder so ???
Was ist da Falsch ????
Hmm irgendwie versucht der Code sonstwohin zuzugreifen, was natürlich nicht erlaubt ist
Aber das Install Script zu diesem Package hast du schon durchgeführt oder ?
Grüßle
Edit:
Also in der include.php macht das Script folgendes:
@include("includes/config.php"); // Funktion zum Pfad bestimmen function dircompare($dir1, $dir2) { global $root; $inc1 = ""; $inc2 = ""; $dir1 = explode("/", $dir1); $dir2 = explode("/", $dir2); for($i=0;$i<max(count($dir1), count($dir2));$i++) { if($dir1[$i] != $dir2[$i]) { $inc2 .= $dir1[$i]."/"; if(!empty($dir2[$i])) { $inc1 .= "../"; } } } return $inc1.$inc2; } #------- define("LOGINPATH", dircompare($cfg_loginreal, dirname($_SERVER['SCRIPT_FILENAME'])));
also: config.php einlesen
und irgendwie ein Vergleich zw. dem Pfad aus der Config.php und dem SCRIPT_FILENAME
Bei dir kommt dann als LOGINPATH = "../../../../../../../../////////"; raus.
Also ich würde mal behaupten dein configurierter Pfad in der config.php stimmt nicht
Führe nochmal eine Installation durch, dann müsste in der config.php stehen:
$cfg_loginreal = "/usr/export/www/vhosts/funnetwork/hosting/play5/login";
Grüßle2 -
in: Advanced Login : Wieso steht das so da : {login}
geschrieben von scout
Ok Jungs so wird das doch nichts... wenn wir ins blaue hineinraten...
Habe mir mal das Advanced Paket runtergeladen...
Play5 da gibt es eine example.php gleich im root Verzeichnis ...genau soeine Datei müsstest du erstellen.
Dort wird
<?php include("login/include.php"); ?>
inkludiert und mit den Variablen {restricted} / {unrestricted} ...für Abschnitte die je für auth. Benutzer und unauth. Benutzer angezeigt werden sollen.
Die Loginbox selbst wird über die Variable {loginbox} angezeigt
D.h. für dich mindestens müsstest du den include oben bei dir rein setzen und deine Variable in {loginbox} umbenennen.
Dann könnte es evtl. gehen.
Grüßle -
in: Advanced Login : Wieso steht das so da : {login}
geschrieben von scout
play5 schrieb:
Wieso steht da jetzt also immernoch {login} ???
Es ist doch eine html-Datei ???
Bitte helft mir !!!!
Eben weil es eine HTML Datei ist !
Die HTML-Templates werden über eine PHP-Datei includiert!
In deinem Paket ist ja auch eine example.PHP und nicht example.html
Grüßle -
in: Advanced Login : Wieso steht das so da : {login}
geschrieben von scout
Also ich behaupte mal dass es da nicht6 nur einen Admin-Login gibt sondern auch einen normalen Login mit der Möglichkeit zur Registrierung.
Ruft man die Registrierung auf wird dein html-Template "register.html" aufgerufen und die Platzhalter ersetzt.
Du müsstest also mal den Link zum normalen Login posten... dort wo der Register-Button ist
Die Platzhalter (z.B. {Login} müssen also auf jeden Fall in eine HTML Datei.
Grüßle -
in: automatisches sql srting escapen deaktivieren
geschrieben von scout
Ich wüßt jetzt zwar nicht was das bringen soll, aber wahrscheinlich meinst du magic_quotes
http://de3.php.net/manual/de/function.get-magic-quotes-gpc.php
schau mal auch bei http://de3.php.net/manual/de/function.set-magic-quotes-runtime.php
bzw. in der php.ini
http://de3.php.net/manual/de/info.configuration.php#ini.magic-quotes-gpc
Grüßle -
in: include, include_once, require, require_once?
geschrieben von scout
Das kommt ganz darauf an, wo ich includiere
im Globalen Kontext: include_once bzw. require_once
innerhalb einer Funktion: include bzw. require
Weil nachdem die Funktion beendet ist ist die inkludierte Datei ehh weg
Falls du PHP innerhalb von Typo3 benutzt und dein Script an mehreren Stellen zur gleichen Zeit aufgerufen wird, verwende immer include. Irgendwie verschluckt sich Typo3/PHP innerhalb seiner die() Funktion wenn man ein include_once macht. PHP behauptet dann es wurde schon includiert, aber drauf zugreifen kann man nicht ;-(
Grüßle -
in: Frage zu $_SERVER['REMOTE_ADDR']
geschrieben von scout
Habe gerade nochmal nachgeschaut und gesehen dass die RFC schon wieder überholt ist und als obsolate gekennzeichnet ist.
Hab allerdings auch nicht den aktuellen Stand gefunden.
Auf jedenfall kann man allerdings sagen, dass die Adressen, die so aussehen: ::FFFF:IP aus dem IPv6 Netz angesprochen werden können, allerdings der Ziehlhost selbst nur IPv4 beherrscht. (IPv4 Host im IPv6 Internet)
Trifft man hingegen auf folgende Form ::IP kann der Zielhost zwar IPv6, wird allerdings über eine IPv4 Infrastruktur angesprochen.
(IPv6 Host im IPv4 Internet)
Ich denke mal früher oder später werden die Adressen ehh verschwinden, da es ehh nur eine Übergangslösung sein soll
Grüßle -
in: Frage zu $_SERVER['REMOTE_ADDR']
geschrieben von scout
Deine Unterlagen stimmen ja auch soweit. Nur vergessen deine Unterlagen zu erwähnen, dass es ZUSÄTZLICH auch noch eine andere Schreibweisen gibt.
Soweit ich weiß werden von IPv6 folgende Schreibweisen (Formate) unterstützt:
IPv6 (compressed / uncompressed)
IPv6 "IPv4 compatible"
IPv6 "IPv4 mapped"
IPv6 6to4
IPv6 ISATAP
IPv6 teredo
Und die mit dem ::ffff:IP ist halt die IPv4 kompatible FormNatürlich kann man eine IPv4 Adresse auch ins reine IPv6 umwandeln... das wäre das was du da machst, aber es ist halt nicht zwingend erforderlich
Grüßle -
in: SQL Befehl - Selbe Spaltenwerte makieren
geschrieben von scout
Das nächste mal evtl. noch deine zwei SQL Abfragen posten, damit man sich das besser vorstellen kann. -
in: Frage zu $_SERVER['REMOTE_ADDR']
geschrieben von scout
IPv4 Compatibility
A special prefix is used for backward compatibility with existing IPv4 addressed servers. ::ffff followed by the IPv4 address using the usual notation represents an existing server. For example: ::ffff:209.173.53.180 represents the address for the www.ietf.org server in an IPv6 compatible manner. A more formal method is to use the ::ffff prefix, but express the IPv4 address in two segments as a hexadecimal value. For example, the IP address of the www.ietf.org server could also be written as ::ffff:d1ad:35b4.
We can translate an existing IPv4 address to its IPv6 equivalent using the following Lasso tag.
Define_Tag('IPv4to6', -Namespace='client_', -Required='ip');
Local('hex') = Client_IPToInteger(#ip);
#hex->SetFormat(-Hexadecimal=True);
Local('ipv6') = '::ffff:' + String(#hex) - '0x';
#ipv6->Merge(12,':');
Return(@#ipv6);
/Define_Tag;
Client_IPv4to6('209.173.53.180');
--> ::ffff:d1ad:35b4
The localhost address 127.0.0.1 has the special abbreviation ::1 although the lengthier http://[::ffff:7f00:0001]/ also works.
-
in: SQL Befehl - Selbe Spaltenwerte makieren
geschrieben von scout
Na ob ich das jetzt richtig verstanden habe...
Hast die Tabelle:
id gruppenid
1 2
2 3
3 1
4 3
5 2
6 1
7 3
8 4
SELECT * FROM `gruppentest` where gruppenid=3
ergibt:
id gruppenid
2 3
4 3
7 3
bzw.
SELECT id FROM `gruppentest` where gruppenid=3
dann halt nur die IDs.
Ob es das ist was du wolltest mag ich bezweifeln, aber kannst es ja nochmal bildlicher darstellen
Grüßle -
in: Vbulletin Config datei ändern!
geschrieben von scout
Evtl. hilft ja auch ein Generator...
Hab auf die Schnelle nur diesen hier gefunden: https://www.vbulletin-setup.com/
Grüßle -
in: FEHLER: PHP Extension "pdo_mysql" must be loaded
geschrieben von scout
Hmm meines wissens ist pdo_mysql bei Lima nicht installiert und wird es bestimmt auch nicht werden.
Falls du auf einem anderen System das Ding installieren willst müßtest du in der php.ini im Extension Abschitt das Semikolon bei "extension=pdo_mysql" entfernen.
Ich kenne mich nun wieder nicht mit Magento aus, aber ich denke mal da kann man bestimmt auch auf mysql oder mysqli ausweichen
Grüßle -
in: Aufzählungen auswerten
geschrieben von scout
Ich lass sowas den Kunden schon in einer Maske auswählen und nicht selbst durch ein Eingabefenster reinschreiben.
Das hat den Vorteil, dass man die Eingaben des Kunden nicht validieren muß! Sonst müsste deine Funktion möglichst viele Eingabemöglichkeiten parsen können (also mit/ohne Leerzeichen, Komma getrrennt, Leerzeichen getrennt usw.)
Wenn du den Nutzer gleich die Werte über eine Listbox auswählen lässt (mit Strg kann man mehrere Zeilen markieren) hast du dann die Daten gleich in einem dir gewünschtem Format vorliegen.
Ok ist vllt. auch Geschmackssache, aber eine Überlegung wert.
Grüßle -
in: Vbulletin Config datei ändern!
geschrieben von scout
Hmm in deinem Post hats du eigentlich nur eins vergessen zu erwähnen... was willst du überhaupt erreichen?
Die Config ist eigentlich recht simpel...sie hat folgendes Format:
// Zeilen sind Kommentare
und darunter kommt eine $config Zeile
Das ist dann die Wertzuweisung.
Zum Bsp.:
<PRE> // ****** TABELLEN-PRAEFIX ******
// Praefix, das den Tabellennamen in der Datenbank vorangestellt wird.
// Zum Beispiel: $config['Database']['tableprefix'] = 'vb3_';
// Hinweis: Praefixe fuer die Tabellennamen koennen Sie mit der Datei
// install/tableprefix.php hinzufuegen, aendern oder entfernen.
$config['Database']['tableprefix'] = '';</PRE>
D.h. also Tableprefix ist die Zeichenfolge die den Datenbanktabellen vorangestellt wird.
Grüßle -
in: funktion mit werten aus ereg_replace ausführen
geschrieben von scout
Wie tct schon schrieb preg_replace_callback() wirkt da Wunder.
Hier auch für dich ein kleines Beispiel:
<?php # macht die Umwandlung URL > Title function callback_getTitle($arr_url) { $ret = ''; $url = parse_url($arr_url[0]); switch($url['host']) { case 'www.google.de': $ret .= 'Google'; break; case 'www.php.net': $ret .= 'PHP.NET'; break; case 'de3.php.net': $ret .= 'PHP.NET'; break; default: $ret .= 'unbekannt'; } // evtl. Subpages des Hastes -> Subtitel anhängen switch($url['path']) { case '/preferences': $ret .= '-Einstellungen'; break; case '/manual/de/function.preg-replace-callback.php': $ret .= '-Subpage'; break; } return $ret; } $text = 'Hier ist ein wenig Text mit http://www.google.de/ zu google ;-) es geht auch http://www.google.de/preferences?hl=de zu den Einstellungen. Abhilfe schafft auch ein Blick zu http://www.php.net bzw. http://de3.php.net/manual/de/function.preg-replace-callback.php Hoffe es hilft.'; $res = ''; $res = preg_replace_callback('§\b(?:https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]§si', 'callback_getTitle', $text); echo $res; ?>
Grüßle -
in: MySQL Problem
geschrieben von scout
ok, ist ein Argument
Dann halt so..
SELECT s.id, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vorname1=v1.id LEFT JOIN vornamen v2 ON s.vorname2=v2.id JOIN nachnamen n ON s.nachname=n.id JOIN vereine v ON s.mannschaft=v.id
alternativ kannst du natürlich auch bei allen anderen Joins ein Left davor schreiben, falls dort auch mal eine ID nicht vorhanden sein sollte
Grüßle -
in: MySQL Problem
geschrieben von scout
Hmm ich würd mal sagen einfach zusammen joinen
SELECT s.id, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vorname1=v1.id JOIN vornamen v2 ON s.vorname2=v2.id JOIN nachnamen n ON s.nachname=n.id JOIN vereine v ON s.mannschaft=v.id
vllt. noch ein Tipp am Rande:
Wenn man die Spalten mit den IDs immer gleich benennt, kann man "ON s.nachname=n.id" verkürzen auf "USING(nid)". Also Tabelle Spieler die ID Spalten mit den ID Spalten der anderen Tabellen
Beispiel:
SELECT s.sid, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vid1=v1.vid JOIN vornamen v2 ON s.vid2=v2.vid JOIN nachnamen n USING(nid) JOIN vereine v USING(mid)
...wenn die Tabellenspalten wie folgt heißen:
Spieler(sid, vid1, vid2, nid, mid)
Vornamen(vid, name)
Nachnamen(nid, name)
Vereine(mid, name)
Grüßle
Edit: Tipp ergänzt -
in: Post Arrays Überprüfen
geschrieben von scout
Das besondere an meiner Variante ist, dass auch Objekte wie arrays behandelt werden
<?php class GAG { public $hallo = "ich"; public $erstmal = "bins"; public $willkommen = "ja?"; } $obj = new GAG(); $test = array('user' => array(1, array('testobj' => $obj, 'ergobj' => $obj))); $objects = new RecursiveIteratorIterator(new RecursiveArrayIterator($test), RecursiveIteratorIterator::SELF_FIRST); foreach($objects as $name => $value){ if (is_array($value) || is_object($value)) { echo "Key: $name<br />\n"; } else{ if (!is_object($value)) { echo "Key: $name und Wert $value<br />\n"; } } } ?>
Grüßle -
in: Joomla Upload geht nicht
geschrieben von scout
Hmm würde spontan mal auf Verzeichnisrechte tippen! Darf denn die Gruppe in deinem Uploadverzeichnis schreiben bzw. Dateien erstellen?
Grüßle -
in: Post Arrays Überprüfen
geschrieben von scout
Hmm weiß jetzt nicht ganz genau worauf du hinaus willst, aber evtl. hilft die ja das um durch das Array zu iterieren
<?php $test = array('user' => array(1, 2)); $objects = new RecursiveIteratorIterator(new RecursiveArrayIterator($test), RecursiveIteratorIterator::SELF_FIRST); foreach($objects as $name => $value){ if (is_array($value)) { echo "$name<br />\n"; } else{ echo "$name = $value<br />\n"; } } ?>
Grüßle -
in: MySQL probleme
geschrieben von scout
Hää? Gibst dir doch selbst die Antwort auf deine Frage... entweder dem wordpress-Ordner schreibrechte für die Gruppe geben und dann mit dem Assistenten weiterarbeiten
ODER
man erstellt manuell die wp-config.php im wordpress-OrdnerDazu gibt es eine Vorlage "wp-config.php.sample" oder so ähnlich.
Grüßle -
in: Smilie code in Smilie umwandeln
geschrieben von scout
Ohh gott, so viel Quelltext... aber evtl. hab ich auch die Aufgabenstellung falsch verstanden...
um die Text-Smileys in Images zu erstezen könnte man eine Callback verwenden.
In etwa so:
<?php function replace_text2smile($treffer) { switch($treffer[0]) { case ';-)': $ret = '<img src="smilies/1.gif">'; break; case ':-)': $ret = '<img src="smilies/2.gif">'; break; case ':-(': $ret = '<img src="smilies/3.gif">'; break; default: $ret = $treffer[0]; // nicht gefundene Smilies als Text belassen } return $ret; } function replace_smile2text($treffer) { switch($treffer[0]) { case '<img src="smilies/1.gif">': $ret = ';-)'; break; case '<img src="smilies/2.gif">': $ret = ':-)'; break; case '<img src="smilies/3.gif">': $ret = ':-('; break; default: $ret = ''; // nicht gefundene Images entfernen } return $ret; } $src = 'Das ist ;-) mit :-) und :-( Smiley'; $html = preg_replace_callback( "/;-\)|:-\)|:-\(/i", "replace_text2smile", $src); echo $html."<br />\n"; $text = preg_replace_callback( "/<img src=\"smilies\/[0-9]+\.gif\">/i", "replace_smile2text", $html); echo $text."<br />\n"; ?>
Grüßle -
in: Sonderzeichen wie (% < ? ; : )Sperren?
geschrieben von scout
Evtl. ist ja auch die Funktion strip_tags() http://de2.php.net/manual/de/function.strip-tags.php für dich interessant.
Damit kannst du alle HTML und PHP Tags ausfiltern
Grüßle -
in: Variable über submit button übertragen
geschrieben von scout
ja indem man ein echo() verwendet
<form action="<?php echo "index.php?Album=$AlbumID"; ?>" method="post">
Alles was zwischen <?php und ?> steht muß mit echo() ausgegeben werden.
Grüßle
-
in: zutritt ab 18
geschrieben von scout
Hmm weiß jetzt nicht ob es DER Fehler ist... aber die 2 Fehler hab ich shconmal gefunden:
echo 'Eintritt gestattet. <p><a href='$seite'>weiter</a></p>';
=> entweder das echo mit doppelten Anführungsstrichen machen oder um die Variabel $seite noch jeweils einen Punkt setzen
so:
echo 'Eintritt gestattet. <p><a href="'.$seite.'">weiter</a></p>';
Zweiter Fehler:
Du vergleichst zwei Zeichenkettenalso '18' und $_POST['pass']
Lösung:
$alter = 18; oder $alter = intval('18');
und
$pass = intval($_POST['pass']);
Grüßle
PS: Mal am Rande... was soll das bringen? Denkst du Kinder können keine Jahre zählen? ...eine Personalausweisnummern Abfrage wäre da besser... allerdings gibt es im INet auch schon Generatoren dafür.
Edit: Code korrigiert -
in: phpmyadmin max upload size ändern
geschrieben von scout
antonmueller schrieb: hallo ich will die php deitein vonphpmyadmin adern es gitb eine variabledafrü wo dies habe ich keine blassen schimmer
Alle Daten (Variablen) phpMyAdmin betreffend kann man in der config.inc.php ändern. Allerdings ist dieser Wert wie schon von schrotti12 erwähnt global fürs PHP anzusehen und deswegen in der php.ini global gesetzt
Die Uploadgröße hat nicht direkt was mit phpMyAdmin zu tun, diese wird durch PHP limitiert und phpMyAdmin nutzt nunmal PHP.
Grüßle -
in: Geburtsdatum aus Droptdownfeld in DB speichern
geschrieben von scout
Hab es exemplarisch mal für den Tag angegeben
<? // Tag den der User schonmal ausgewählt hatte... $db_tag = "5"; // alternativ aus der Datenbank holen // falls es keinen Wert aus der DB gibt nimm 1 $selected_tag = isset($db_tag) ? $db_tag : 1; // falls ein Tag übermittelt worden ist nimm diesen sonst $db_tag bzw. 1 $default_tag = isset($_POST['tag']) ? $_POST['tag'] : $selected_tag; for ($i = 1 ; $i <= 31 ; $i++) { if ($default_tag == $i) { echo '<option selected>' . ($i<10)?("0".$i):($i) . '</option>' ; } else { echo '<option>' . ($i<10)?("0".$i):($i) . '</option>' ; } } // .... ?>
Grüßle -
in: Dynamische Webseite downloaden
geschrieben von scout
Hmm da du ja selbst mit den Infos fopen bzw. fwrite nicht drauf zu kommen scheinst, hier ein Bsp.
<?php if ($stream = fopen('http://www.google.de', 'r')) { echo stream_get_contents($stream); fclose($stream); } ?>
Hoffe es hilft.
Grüßle -
in: relationale Datenbank
geschrieben von scout
Eine relationale Datenbank sollte immer den ersten 3 Normalformen entsprechen http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
1. NF: Alle Attribute (Spaltenwerte) müssen atomar (alleinstehend) sein d.h. Zum Bsp. Adressen müssen in die Spalten PLZ, Ort, Straße usw. aufgeteilt werden
2. NF: die Daten einer Zeile der Tabelle genau EINEM Primärschlüssel zugeordnet sind und nicht evtl. nur einem Teil (z.B. Primärschlüssel über 2 Spalten)
3. NF:Transivität der Daten d.h. ein Teil der Spalten darf nicht von einem nicht Primärschlüssel in der Tabelle abhängen z.B. bei Albumtitel, Interpret, Gründungsjahr ... da hat meist der Interpret mehrere CDs produziert steht also doppelt in der Tabelle und muß daher seperat ausgelagert werden
Wenn man das alles beachtet, hat man eine Datenbank mit der man eigentlich alles abfragen kann ...es gibt keine Einschränkungen mehr.
Grüßle