Zum Inhalt springen

xmurrix

Mitglieder
  • Gesamte Inhalte

    56
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von xmurrix

  1. Hallo Seva, normalerweise kannst du mit Ecipse PDT sofort loslegen, nachdem du es heruntergeladen und in ein Verzeichnis entpackt hast. In der Regel hast du Rechtsoben die Liste der Ansichten (Perspectives), ist dort PHP nicht vorhanden, kannst es über das Icon "Open Perspective" einfügen. Ich bin mir jetzt nicht ganz sicher, in wieweit du das Konzept bei Eclipse kennst und mit welchen Editoren/IDEs du bisher Erfahrung gesammelt hast. Während in gewöhnlichen Editoren du einfach eine Datei öffnen und bearbeiten kannst, musst du hingegen in Eclipse erstmal ein Projekt anlegen. Das geht über das Menü "File -> New -> Project" bei PDT ist auch "File -> New -> PHP Project" dabei. Im nächsten Fenster gibst du dem Projekt einen Namen und definierts das Verzeichnis, in dem die Projektdateien abgelegt werden sollen. Du kannst auch ein vorhandes Verzeichnis mit Sourcen angeben (Create project from existing source). Als Einstieg in PDT kannst dir auch ein paar Tutorials reinziehen, z. B. die http://www.youtube.com/watch?v=VRFZpk-YHl4. Gruß xmurrix
  2. Hallo, Es ist tatsächlich so, dass alle Scripte bei jedem Aufruf neu eingebunden werden. PHP ist eine reine Interpretersprache, d h. der Code wird jedes Mal eingelesen, analysiert und ausgeführt. Das mag auf den ersten Blick nicht performant sein, aber es gibt auch dafür Möglichkeiten durch Einsatz diverser Cache-Systeme (APC, eAccelerator, memcache usw.). Dabei werden die Sourcen auch vorkompiliert und im Speicher abgelegt. Auch wenn PHP-Code nicht gecached wird, ist die OO-Programmierung trotzdem Sinnvoll. OOP muss ja nicht unbedingt den Compilersprachen vorenthalten sein. Natürlich leidet die Performance bei Einsatz von Frameworks, Abstraktion/Kapselung ist eigentlich immer mit Performanceverlust verbunden, dafür erhöht sich die Wartbarkeit der Scripte. Bei komplexen Projekten ist das bis zu einem gewissen Grad wichtiger als die Performanceeinbuße, der man mit Codeoptimierung, Caching oder Hardware entgegenwirken kann. Der Fehlerlevel lässt sich in der php.ini einstellen, ist es auf E_STRICT gesetzt, wird einiges vom Interpreter bemängelt, auch der Zugriff auf Variablen, die vorher nicht initialisiert wurden. Eine explizite Deklaration einer Variablen wie in Java ist nicht möglich. Die Option sorgt E_STRICT dafür, dass z. B. $foo=1; echo $Foo; zur einer Fehlermeldung führt, sofern $Foo nicht schon vorher initialisiert wurde. PDT ist auf jeden Fall empfehlenswert, ob sich der Umstieg zu Zend Studio lohnt, hängt eher von den jeweiligen Anforderungen an die IDE ab. Unter Zend Studio - Versionsvergleich - Zend.com gibt es einen Vergleich von beiden Entwicklungsumgebungen. Nach der Installation von manchen Plugins (Subclipse, Aptana) stehen einige Funktionalitäten auch unter PDT zur Verfügung. Meines Wissesns ist das Debuggen unter Zend Studio besser. Ob damit an Haltepunkten das Ausführen von Functions/Methoden möglich sind, kann ich dir nicht sagen. Static Methoden/Eigenschaften sind ja dafür gedacht, um diese auch ohne vorherige Instanzierung der Klasse verwenden zu können. Auch wenn die Scripte jedes mal neu geladen werden, kann man mit PHP die Vorteile von statischen Methoden/Eigenschaften verwenden. Das Singleton Pattern wird dort eingesetzt, wenn z. B. eine Instanz eines Objektes nur einmal pro Scriptaufruf erstellt werden soll. Bei komplexen Projekten kommt es schon mal vor, das sehr viele Sourcen includiert werden und wenn eine DB-Connection dann an 10 verschiedenen Stellen nötig ist, wird durch Einsatz von Singleton, das Objekt nur einmal Instanziert, also eine Verbindung aufgebaut. Auch wenn in Java oder C# die Sourcen vorkompiliert werden, werden alle benötigen Objekte bei jedem Aufruf unter Java und C# genauso neu erstellt. Das Speichern von Objekten (inkl. aktuellem Zustand) ist wie in Java oder C# auch in PHP möglich. Es sind doch einige Unterschiede zwischen PHP und Java oder C#, dennoch kann man mit PHP mittlerweile einiges anstellen - wünsche dir auf jeden Fall viel Spass damit. Gruß xmurrix
  3. Überprüfe doch mal in der php.ini die Werte für session.save_handler, session.save_path und session.use_cookies. Folgende Einstellungen sollten drin stehen: session.save_handler = "files" ; kann auch ein anderer ordner sein (hier braucht php schreibrechte) session.save_path = "C:\\WINDOWS\\Temp" ; sonst wird die sessionid nicht mit dem cookie übertragen. session.use_cookies = 1 [/PHP] Gruß xmurrix
  4. Hallo, du kannst auch das onScroll-Event per JavaScript hinzufügen, also ohne es als Attrubut im body-Tag anzugeben. ... <script type="text/javascript"><!-- // <![CDATA[ function onScroll(){ //todo on scroll event } // add onscroll-event if (window.addEventListener) { window.addEventListener("scroll", onScroll, false); } else if (window.attachEvent){ window.attachEvent("onscroll", onScroll); } //]]> --></script> ... Das ist auch XHTML-Strict. Per CSS wäre es eleganter, aber da du ja sowieso JavaScript verwendest, spielt es keine Rolle... Gruß xmurrix
  5. Die JavaScript-Funktion, die auf den Body-Tag zugreift, sollte nicht im Head sein, da das Script beim Client dann ausgeführt wird, bevor das Body Element beginnt. Also falls im Head, dann beim onload-Event, z. B.: <script type="text/javascript"><!-- function changeBody(){ alert(document.body.style.width); document.body.style.width = "100px"; alert(document.body.style.width); } onload = changeBody; // --></script> oder nach dem öffnen des Body-Tags: <body> <script type="text/javascript"><!-- alert(document.body.style.width); document.body.style.width = "100px"; alert(document.body.style.width); // --></script> Gruß xmurrix
  6. Hallo, der horizontale Scrollbalken wird eigentlich nur vom IE angezeigt, weil dieser von einer 100% Breite ausgeht. Ist der Inhalt länger als, die vorhandene Höhe, wird die Breite des entstehenden vertikalen Scrollbalkens zur der Breite hinzugerechnet und somit ist der Inhalt breiter als 100%. Wenn du das umgehen möchtest, kannst du in der CSS die Breite vom body-Tag auf z. B. auf 95% setzen, oder du gibst eine feste Breite in Pixel ein (definierte breite - breite des scrollbalkens). Beim Weglassen der Doctype-Angabe XHTML-Transitional, läuft der IE im Quirks-Modus und zeigt keinen horizontale Scrollbalken, aber das ist wohl nicht im Sinne von validem HTML-Code. Gruß xmurrix
  7. xmurrix

    md5 erzeugen

    Hallo burnersk, hast du schon die VB-Implementationen unter http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html ausprobiert? Gruß xmurrix
  8. In allen if()-Aweisungen überprüfst du auf Werte von $_FILES, also wird die SQL-Anweisung nie vollständig und halb fertig an die DB geschickt das solltest du mit $_REQUEST machen, also if(!empty($_REQUEST['Name'])) { $insert_sql.=", Name='".mysql_escape_string($_REQUEST['Name'])."'"; //$insert_sql.="', Name='".htmlentities($_REQUEST['Name'], ENT_NOQUOTES); } [/PHP] Außerdem solltest du einen Schalter einbauen, der auf True gesetzt wird, wenn mindesten ein Feld korrekte Daten hat. Ansonsten hast du wieder ein unvollständiges Statement, wenn der User nichts eingibt und das Formular abschickt.
  9. Das onChange-Event funktioniert nicht bei hidden-Feldern, da musst du auf auf eine JavaScript-Funktion im Opener ausweichen. window.opener.testsript(); Gruß xmurrix
  10. Muss meine Aussage bezgl. IFrame korrigieren. Natürlich ist die Sache mit Lösung I-Frame nur dann die beste Möglichkeit, die Session zu behalten, wenn: - php,ini nicht geändert werden kann/soll - ini_set() deaktiviert ist Oder irre ich mich da?
  11. Hallo, man kann eine eigene Session-Verwaltung programmieren (z. B. DB basierend). Ist natürlich sehr zeitaufwändig. Eine andere Möglichkeit ist z. B. in einem vesteckten I-Frame die Seite mit JavaScript alle 5 Minuten neu zu laden. Geht natürlich nur wenn JavaScript aktiviert ist, ist aber die einfachste Art, die Session beizubehalten, ohne die php.ini ändern zu müssen. Noch einfacher ist es mit ini_set(), wenn der Provider die Funktion ini_set() aus Sicherheitsgründen nicht gesperrt hat. Gruß xmurrix
  12. Bist schon auf dem richtigen Weg - Schreibe mal nur folgendes in deine .htaccess rein: RewriteEngine on RewriteRule ^(.*).html$ t.php?id=$1
  13. Also, so ist's auf jeden Fall nicht richtig (nicht valides HTML/XHTML), eher folgendermaßen: CSS: div#Menu .indented{margin-left:3em;} HTML: <div id="Menu"> <ul> <li><a href="./index.html">Home & News</a></li> <li><a href="ftp://mychrisoft.game-host.org/">Downloads</a></li> <li><a href="./tcl-projects.html">Tcl Projekte</a></li> <li> <ul class="indented"> <li><a href="./tcl-projects.html">4 Gewinnt</a></li> <li><a href="./tcl-projects.html">Chess</a></li> <li><a href="./tcl-projects.html">Screen</a></li> <li> <ul class="indented"> <li><a href="./tcl-projects.html">4 Gewinnt</a></li> <li><a href="./tcl-projects.html">Chess</a></li> <li> <ul class="indented"> <li><a href="./tcl-projects.html">4 Gewinnt</a></li> <li><a href="./tcl-projects.html">Chess</a></li> <li><a href="./tcl-projects.html">Screen</a></li> <li><a href="./tcl-projects.html">Tetris</a></li> <li><a href="./tcl-projects.html">Space</a></li> </ul> </li> <li><a href="./tcl-projects.html">Screen</a></li> <li><a href="./tcl-projects.html">Tetris</a></li> <li><a href="./tcl-projects.html">Space</a></li> </ul> </li> <li><a href="./tcl-projects.html">Tetris</a></li> <li><a href="./tcl-projects.html">Space</a></li> </ul> </li> <li><a href="/phpMyAdmin/index.php">phpMyAdmin</a></li> </ul> </div>
  14. Hallo CHris08156, ein Untermenü sollte innerhalb eines Listenelementes (<li>) untergebracht sein, und auch am besten als eine neue Liste, also: <div id="Menu"> <ul> <li><a href="./index.html">Home & News</a></li> <li><a href="ftp://mychrisoft.game-host.org/">Downloads</a></li> <li><a href="./tcl-projects.html">Tcl Projekte</a></li> <li> <ul> <li><a href="./tcl-projects.html">4 Gewinnt</a></li> <li><a href="./tcl-projects.html">Chess</a></li> <li><a href="./tcl-projects.html">Screen</a></li> <li><a href="./tcl-projects.html">Tetris</a></li> <li><a href="./tcl-projects.html">Space</a></li> </ul> </li> <li><a href="/phpMyAdmin/index.php">phpMyAdmin</a></li> </ul> </div> Gruß, xmurrix
  15. Hallo SNOWMAN, Dateihandle ist "$configfile" und in der while-Bedingung steht !feof($file)) drin. Merkst du was? Du überprüfst den Dateizeiger einer anderen offenen Datei aber nicht von $configfile -> also Endlosschleife :-) Gruß xmurrix
  16. Hallo, mit dem Network-Objekt kannst du untrer anderem den Rechnernamen auslesen - Beispiel: Dim oWshNw Dim sComputerName Set oWshNw = WScript.CreateObject("WScript.Network") sComputerName = oWshNw.ComputerName WScript.Echo sComputerName Gruß xmurrix
  17. Hallo, über das target-Attribut kann nur die Bezeichnung für das Ziel-Fenster angegeben werden. Mit reinem HTML lässt sich die Größe eines zu öffnenden Fensters nicht bestimmen. Beispiel, mit dem sich ein Fenster mit oder ohne JS öffnen lässt: <script type="text/javascript"><!-- function openNewWin(url, name){ window.open(url, name, 'width=800,height=600'); } // --></script> <a href="http://forum.fachinformatiker.de/showthread.php?t=80632" target="newWin" onclick="openNewWin('http://forum.fachinformatiker.de/', 'newWin'); return false;" title="fachinformatiker.de oeffnen" >fachinformatiker.de oeffnen</a> Unabhängig davon, wird die Seite trotzden nicht angezeigt, wenn ein User Popup-Blocker verwendet und diesen restriktiv konfiguriert hat. Gruß xmurrix
  18. Hallo, wenn Du über LWP::UserAgent eine Anfrage an einen Server schickst, wird per Default 'libwww-perl/xxx' im Header der Anfrage verschickt. Viele Server sind so konfiguriert, dass Anfragen auf Ressourcen von bestimmten UserAgents gesperrt sind. Ersezte einfach den Standard LWP::UserAgent String gegen einen anderen z. B. 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4'. $uastr = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4'; $ua->agent($uastr); $response = $ua->request($request, $file); Gruß xmurrix
  19. Hallo, ich denke, es liegt an der Zeile: $tn->waitfor('/Password[: ]*$/'); Die Methode waitfor sucht nach dem Ausdruck '/Password[: ]*$/' aus dem Stream. Soweit ich weis, sollte der Anfangsbuchstabe klein geschrieben sein, also '/password[: ]*$/'. Sehr wahrscheinlich liegt es daran, dass '/Password[: ]*$/' nicht gefunden wird, und Telnet läuft dann in den Timeout. Gruß xmurrix
  20. Hallo, ich habe bisher mit der dbExpress-Komponente nicht gearbeitet und meine Borland C++ Kenntnisse sind gering (Letztes Projekt vor 5 Jahren). Es scheint, dass die Verbindung zwischen SQLConnection und TSQLQuery fehlt. Kann es sein, dass man einer neuen TSQLQuery-Instanz, die SQLConnection1 übergeben muss TSQLQuery* Query = new TSQLQuery(SQLConnection1); oder vielleicht so: TSQLQuery* Query = SQLConnection1->Query; Gruß xmurrix
  21. Hallo, probiere es mal mit "TSQLDataSet" oder "TSQLQuery". Gruß xmurrix
  22. Hallo, eine Möglichkeit für Rahmen geht z. B. mit CSS: <img src="..." style="border:1px #000 dotted" ...> Mit "padding" kann man die Innenabstände zum Rahmen setzen u. mit "background-color" die Hintergrund-Farbe. Das wäre ein Vorschlag von mit. Funzt halt mit NS 4 nicht. Gruß, xmurrix
  23. Hallo, um einen Registryzweig mit einer .Reg-Datei zu löschen brauchst du nur ein Minus-Zeichen vor dem Eintrag angeben, z. B.: [-HKEY_CURRENT_USER\<Pfad zum Registry-Zweig>] Gruß, xmurrix
  24. Morgen zusammen, auch mit POP ist es möglich, von mehreren Rechnern aus E-Mails abzurufen. Für Outlook Express sind folgende Einstellungen nötig: 1. Extras -> Konten 2. Konto -> Eigenschaften 3. Registerkarte Erweitert Unter Zustellung den Haken bei "Kopie aller Nachrichten auf dem Server belassen" setzen. Grüße xmurrix
  25. Es stimmt, dass ASP.NET einem einiges an Arbeit abnimmt. Das Formularmanagement ist mit ASP.NET um eines besser als mit PHP. Die Validierung der Formulareingaben findet trotzdem auf dem Server statt, also muss die Seite wieder an den Server geschickt werden. Habe mal ein sehr vereinfachtes Beispiel für eine Formularüberprüfung in ASP.NET gefunden und zum Vergleich die PHP-Variante: ASP.NET: <%@ Page Language="VB" Debug="True" Strict="True" %> <script runat="server"> Sub Page_Load (ByVal Sender As Object, ByVal E As EventArgs) If IsPostBack Then Page.Validate If IsValid Then meldung.Text = "Hallo, " & txtName.Value End If End If End Sub </script> <html> <head> <title>Begrüßung</title> </head> <body> <h1>Begrüßung</h1> <form runat="server"> Wie heißen Sie?<br> <br> <input runat="server" id="txtName" type="text" > <asp:RequiredFieldValidator id="reqTxtName" ControlToValidate="txtName" Display="dynamic" runat="server"> Bitte geben Sie hier Ihren Namen ein. </asp:RequiredFieldValidator> <br> <br> <input runat="server" type="submit" value=" OK " ><br> <br> <asp:Label id="meldung" runat="server" /> </form> </body> </html> PHP <?php if (!isset($_POST['txtName'])) { $msg = ''; } elseif(trim($_POST['txtName']) == '') { $msg = '<font color="red">Bitte geben Sie hier Ihren Namen ein.</font>'; } else { $msg = 'Hallo, ' & trim($_POST['txtName']); } ?> <html> <head> <title>Begrüßung</title> </head> <body> <h1>Begrüßung</h1> <form name="formTest" action="test.php" target="_self" method="post"> Wie heißen Sie?<br> <br> <input name="txtName" type="text" > <br> <br> <input type="submit" value=" OK " ><br> <br> <?php echo $msg; ?> </form> </body> </html> Wie man sieht, machen beide im Grunde das Gleiche, die ASP.NET-Variante hat aber eine ganz andere Ausgabe, als die PHP-Variante (Siehe ASP-Bespiel bei Galileo ) Gruß xmurrix

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...