myorgbook u. Co
am 12.08.2006 17:42:00 von Dietmar Segbert
Hallo,
ich habe mir vor ein paar Tagen auf meinem Slackware 10.2 System den
apache Server sowie php installiert. Ebenso habe ich mysql installiert.
Ich möchte den Server nur lokal für mich utzen, um Termine, Notizen,
Adressen und meine gesammelten Dateien zu verwalten.
den webcalendar habe ich auch auf Anhieb zum Laufen bekommen, finde ihn
aber mit lynx und mit Hilfe von Sprachausgabe und Braillezeile, sehr
unübersichtlich und schwer zu bedienen.
Ich bin nun auf myorgbook gestoßen. Das Anlegen der Datenbank und die
Installation klappte.
Wenn ich nun myorgbook mittels lynx http://localhost/myorgbook/index.php
aufrufe, erscheint auch die Startseite und zwar in deutsch.
Ich habe nun versucht, einen neuen User anzlegen, Vorname, Nachname und e-
Mail wie Folgt eingegeben: Dietmar, Segbert, segbertd@localhost und
abgeschickt.
Nun erscheint die Fehlermeldung "ungültige Mailadresse".
Also nix mit Anmeldung.
In php.ini ist der Pfad zu sendmail mit /usr/bin/sendmail -t eingetragen.
Ich habe mit dem Befehl "sendmail -t" von der Konsole aus probiert lokal
eine Mail an einen anderen Account zu senden. Das klappt auch. Das
Versenden von Mail lokal klappt also.
Was kann ich noch versuchen?
Vielen Dank.
MFG.
Dietmar
Re: myorgbook u. Co
am 12.08.2006 18:00:43 von Helmut Chang
Dietmar Segbert schrieb:
> Wenn ich nun myorgbook mittels lynx http://localhost/myorgbook/index.php
> aufrufe, erscheint auch die Startseite und zwar in deutsch.
> Ich habe nun versucht, einen neuen User anzlegen, Vorname, Nachname und e-
> Mail wie Folgt eingegeben: Dietmar, Segbert, segbertd@localhost und
> abgeschickt.
>
> Nun erscheint die Fehlermeldung "ungültige Mailadresse".
>
> Also nix mit Anmeldung.
>
> In php.ini ist der Pfad zu sendmail mit /usr/bin/sendmail -t eingetragen.
>
> Ich habe mit dem Befehl "sendmail -t" von der Konsole aus probiert lokal
> eine Mail an einen anderen Account zu senden. Das klappt auch. Das
> Versenden von Mail lokal klappt also.
>
> Was kann ich noch versuchen?
Das ganze hat nix mit sendmail zu tun. Sondern ich rate, dass myorgbook
die eingegebene EMAil-Adresse validiert und dabei eine übliche, aber
falsche Regex benutzt, die beim Domain-Part auf einen '.' gefolgt von 2
bis 4 Buchstaben prüft. Was eben genau bei 'localhost' fehlschlägt.
gruss, heli
Re: myorgbook u. Co
am 13.08.2006 10:40:00 von Dietmar Segbert
Hallo,
....>
....> Das ganze hat nix mit sendmail zu tun. Sondern ich rate, dass
> myorgbook die eingegebene EMAil-Adresse validiert und dabei eine
> übliche, aber falsche Regex benutzt, die beim Domain-Part auf einen
> '.' gefolgt von 2 bis 4 Buchstaben prüft. Was eben genau bei
> 'localhost' fehlschlägt.
Hier ist ein Stück aus signup.php:
// check if the e-mail, first and last name is realistic if
(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-
z]{2,6}$",$_REQUEST['uemail'])) { // Check for MX records and/or hostname
(doesn't work on windows, function automagically succeeds then
:-) $emailcheck = explode('@',$_REQUEST['uemail']); $mailhost =
$emailcheck[1]; $mailhost=$mailhost."."; $IsWindows = stristr(PHP_OS,
"win"); if (!is_bool($IsWindows)) $IsWindows = true; if
((getmxrr($mailhost, $mxhosts) == FALSE && gethostbyname($mailhost) ==
$mailhost) || $IsWindows) { $Error = msg('Invalid Email Address. Please
Try Again.'); } else { if ((ereg("^[ _a-zA-Z0-
9-]+$",$_REQUEST['user_fname'])) && (ereg("^[ _a-zA-Z0-
9-]+$",$_REQUEST['user_lname']))) { // checking if user already exists
Wie könnte ich Abhilfe schaffen, ich bin PHP-Neuling.
Gruss
Dietmar
Re: myorgbook u. Co
am 13.08.2006 11:13:47 von Norbert Melzer
Am 13 Aug 2006 10:40:00 +0200 schrieb Dietmar Segbert:
> Hallo,
>
> ...>
> ...> Das ganze hat nix mit sendmail zu tun. Sondern ich rate, dass
>> myorgbook die eingegebene EMAil-Adresse validiert und dabei eine
>> übliche, aber falsche Regex benutzt, die beim Domain-Part auf einen
>> '.' gefolgt von 2 bis 4 Buchstaben prüft. Was eben genau bei
>> 'localhost' fehlschlägt.
>
> Hier ist ein Stück aus signup.php:
>
> [chaos pur]
ARG!!! Wer soll denn das lesen können????
+---- [ code: signup.php ]
| // check if the e-mail, first and last name is realistic
| if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uemail']))
| {
| $emailcheck = explode('@',$_REQUEST['uemail']);
| $mailhost = $emailcheck[1];
| $mailhost=$mailhost.".";
| $IsWindows = stristr(PHP_OS, "win");
| if (!is_bool($IsWindows)) $IsWindows = true;
| if ((getmxrr($mailhost, $mxhosts) == FALSE && gethostbyname($mailhost) == $mailhost) || $IsWindows)
| {
| $Error = msg('Invalid Email Address. Please Try Again.');
| }
| else
| {
| if ((ereg("^[ _a-zA-Z0-9-]+$",$_REQUEST['user_fname'])) && (ereg("^[ _a-zA-Z0-9-]+$",$_REQUEST['user_lname'])))
| {
+----
Ersteinmal, ereg ist deprecated, man sollte preg_* nutzen, ist aber nicht
Dein Script, also hast Du da keinen einfluss drauf.
Ändere diese Zeile:
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uemail']))
in
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,}$",$_ REQUEST['uemail']))
dann kann der Teil nach dem letzten Punkt unendlich lang sein aber muss mindestens
2 Zeichen haben, das sollte vieles abdecken. Das Problem ist dabei aber wirklich,
daß die Gültigkeit von eMail Adressen nicht anhand einer RegEx prüfbar ist (irgendwo
gibt es angeblich eine RegEx die das kann aber die soll über mehrere DIN-A4 Seiten
gehen, so daß man sagt ein Parser sei schneller).
> Wie könnte ich Abhilfe schaffen, ich bin PHP-Neuling.
Bitte poste Deinen Code beim nächsten mal besser formatiert, daß hat mich jetzt fast 15 Minuten gekostet das gerade zu ziehen....
> Gruss
>
> Dietmar
HTH
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 13.08.2006 13:05:53 von Helmut Chang
Norbert Melzer schrieb:
> Ersteinmal, ereg ist deprecated, man sollte preg_* nutzen, ist aber nicht
> Dein Script, also hast Du da keinen einfluss drauf.
Wenn du ohnehin Änderungen empfiehlst, warum soll der OP keinen EInfluss
haben?
> Ändere diese Zeile:
>
> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uemail']))
>
> in
>
> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,}$",$_ REQUEST['uemail']))
>
> dann kann der Teil nach dem letzten Punkt unendlich lang sein aber muss mindestens
> 2 Zeichen haben, das sollte vieles abdecken.
Aber genau "segbertd@localhost" wieder nicht.
Zusätzlich wage ich zu behaupten, dass
| if ((getmxrr($mailhost, $mxhosts) == FALSE...
bei "localhost" wahrscheinlich auch fehlschlägt, außer man verwendet
seinen eigenen DNS.
gruss, heli
Re: myorgbook u. Co
am 13.08.2006 13:48:30 von Norbert Melzer
Am Sun, 13 Aug 2006 13:05:53 +0200 schrieb Helmut Chang:
> Norbert Melzer schrieb:
>
>> Ersteinmal, ereg ist deprecated, man sollte preg_* nutzen, ist aber nicht
>> Dein Script, also hast Du da keinen einfluss drauf.
Ich bezog mich in diesem Falle auf das gesammte myorgbook Script und
seine Zukunftstauglichkeit.
> Wenn du ohnehin Änderungen empfiehlst, warum soll der OP keinen EInfluss
> haben?
>
>> Ändere diese Zeile:
>>
>> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uemail']))
>>
>> in
>>
>> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,}$",$_ REQUEST['uemail']))
>>
>> dann kann der Teil nach dem letzten Punkt unendlich lang sein aber muss mindestens
>> 2 Zeichen haben, das sollte vieles abdecken.
>
> Aber genau "segbertd@localhost" wieder nicht.
Args... Stimmt, den Fall habe ich nicht bedacht.
> Zusätzlich wage ich zu behaupten, dass
>
>| if ((getmxrr($mailhost, $mxhosts) == FALSE...
>
> bei "localhost" wahrscheinlich auch fehlschlägt, außer man verwendet
> seinen eigenen DNS.
Hast auch recht. Die Zeile habe ich übersehen.
Und wie bereits geschrieben, am besten prüft man eMail-Angaben mit einem
Parser, denn die Eingabe "norbert Melzer@gmx.net " ist
laut der RegExp ungültig, gemäß RFC 28xx (habs grad nicht im Kopf) aber
schon.
> gruss, heli
MfG
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 13.08.2006 17:13:00 von Dietmar Segbert
Hallo Norbert,
> Am 13 Aug 2006 10:40:00 +0200 schrieb Dietmar Segbert:
> Ändere diese Zeile:
> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQ
> UEST['uemail']))
> in
> if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,}$",$_ REQU
> EST['uemail']))
> dann kann der Teil nach dem letzten Punkt unendlich lang sein aber
> muss mindestens 2 Zeichen haben, das sollte vieles abdecken. Das
Ich habe die Zeilen von oben getauscht, funktioniert aber nicht. Ich kann
immer noch keinen User mit Vornamen Dietmar, Name Segbert und E-Mail
segbertd@localhost registrieren.
> Bitte poste Deinen Code beim nächsten mal besser formatiert, daß
> hat mich jetzt fast 15 Minuten gekostet das gerade zu ziehen....
Sorry, habe die Datei von linux nach DOS kopiert und nicht umgewandelt.
Dazu kommt noch, dass ich nur unter DOS mittels crosspoint (freexp)
schreibe und der Editor bei 80 Zeichen umbricht. Ich glaube Dir sogar,
dass Du Schwierigkeiten hattest, den Code zu lesen, die habe ich so
manches mal, denn meine Braillezeile kann nur 40 Zeichen einer Zeile
darstellen bzw. die Sprachausgabe folgt zunächst einmal der Zeile, in der
der Cursor steht, wenn sie dann blubbert, macht das maximal 80 Zeichen,
ansonsten heißt es navigieren.
spricht
Viele Grüße und "Danke"
Dietmar
Re: myorgbook u. Co
am 13.08.2006 17:52:47 von Norbert Melzer
Am 13 Aug 2006 17:13:00 +0200 schrieb Dietmar Segbert:
> Ich habe die Zeilen von oben getauscht, funktioniert aber nicht. Ich kann
> immer noch keinen User mit Vornamen Dietmar, Name Segbert und E-Mail
> segbertd@localhost registrieren.
Ja, das stimmt, beachte dazu Helmuts Antwort mit der MID
<4k8fceFaqtlkU1@individual.net> :-)
>> Bitte poste Deinen Code beim nächsten mal besser formatiert, daß
>> hat mich jetzt fast 15 Minuten gekostet das gerade zu ziehen....
> Sorry, habe die Datei von linux nach DOS kopiert und nicht umgewandelt.
> Dazu kommt noch, dass ich nur unter DOS mittels crosspoint (freexp)
> schreibe und der Editor bei 80 Zeichen umbricht.
Mein Dialog bricht bereits bei 76 Zeichen, aber es gibt dank Hamster und
KorrNews (OK, unter Linux keine mir bekannten, aber bestimmt auch)
Mittel und wege das für einzelne Zeilen zu unterbinden.
> Ich glaube Dir sogar, dass Du Schwierigkeiten hattest, den Code zu
> lesen, die habe ich so manches mal, denn meine Braillezeile kann nur
> 40 Zeichen einer Zeile darstellen bzw. die Sprachausgabe folgt
> zunächst einmal der Zeile, in der der Cursor steht, wenn sie dann
> blubbert, macht das maximal 80 Zeichen, ansonsten heißt es
> navigieren.
OK, das Problem der kurzen Braillezeile kenne ich von einem bekannten.
Und er muss dazu auch noch ohne Screenreader auskommen, weil die
Soundkarte in seinem Laptop von Linux nicht erkannt wird.
Aber ich bin bis eben davon ausgegangen daß du Sehender bist, es steht
halt nicht Deinen Posts nicht in die Header geschrieben daß dem nicht so
ist. Ich hoffe Du kannst eine Entschuldigung akzeptieren.
> spricht
>
> Viele Grüße und "Danke"
Bitte!
> Dietmar
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 13.08.2006 17:54:21 von Carsten Wiedmann
Norbert Melzer schrieb:
> if
> (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uemail']))
>
> in
>
> if
> (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,}$",$_ REQUEST['uemail']))
>
> dann kann der Teil nach dem letzten Punkt unendlich lang sein aber muss
> mindestens
> 2 Zeichen haben, das sollte vieles abdecken.
Da er ja nur "localhost" nach dem "@" hat, tut das auch nicht. Wenn
überhaupt, würde ich hier nur was einfaches wie:
| if (eregi('^[0-9a-z_.-]+@[0-9a-z.-]+$', $_REQUEST['uemail']))
nehmen.
> Das Problem ist dabei aber wirklich,
> daß die Gültigkeit von eMail Adressen nicht anhand einer RegEx prüfbar
> ist (irgendwo gibt es angeblich eine RegEx die das kann aber die soll
> über mehrere DIN-A4 Seiten gehen, so daß man sagt ein Parser sei
> schneller).
Sind nur 82 Zeilen bei einer Textbreite von 78 Zeilen (Regex nach RFC 822).
Gruß
Carsten
Re: myorgbook u. Co
am 13.08.2006 17:54:48 von Norbert Melzer
Am Sun, 13 Aug 2006 13:48:30 +0200 schrieb Norbert Melzer:
[...]"norbert Melzer@gmx.net "[...]
Natürlich muss die eMailadresse "norbert.melzer@gmx.net
Melzer>" lauten :-)
MfG
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 13.08.2006 17:58:10 von Niels Braczek
Dietmar Segbert schrieb:
> Hier ist ein Stück aus signup.php:
>=20
> // check if the e-mail, first and last name is realistic if
> (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-
> z]{2,6}$",$_REQUEST['uemail'])) { // Check for MX records and/or hostn=
ame
> (doesn't work on windows, function automagically succeeds then
> :-) $emailcheck =3D explode('@',$_REQUEST['uemail']); $mailhost =3D
> $emailcheck[1]; $mailhost=3D$mailhost."."; $IsWindows =3D stristr(PHP=
_OS,
> "win"); if (!is_bool($IsWindows)) $IsWindows =3D true; if
> ((getmxrr($mailhost, $mxhosts) == FALSE && gethostbyname($mailhost)=
==
> $mailhost) || $IsWindows) { $Error =3D msg('Invalid Email Address. Pl=
ease
> Try Again.'); } else { if ((ereg("^[ _a-zA-Z0-
> 9-]+$",$_REQUEST['user_fname'])) && (ereg("^[ _a-zA-Z0-
> 9-]+$",$_REQUEST['user_lname']))) { // checking if user already exis=
ts
Wie Norbert schon sagte: Poste Code bitte in aufgeräumten Zustand.
Ersetze die Zeile
if
(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUEST['uem=
ail']))
{
durch
if ( strpos( $_REQUEST['uemail'], '@' ) !=3D false ) {
und
if ((getmxrr($mailhost, $mxhosts) == FALSE
&& gethostbyname($mailhost) == $mailhost) || $IsWindows) {
durch
if ( 1 ) {
Damit wird die Prüfung der E-Mail-Adresse auf ein Minimum reduziert.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: myorgbook u. Co
am 13.08.2006 18:16:18 von Norbert Melzer
Am Sun, 13 Aug 2006 17:54:21 +0200 schrieb Carsten Wiedmann:
> Norbert Melzer schrieb:
>
>> Das Problem ist dabei aber wirklich,
>> daß die Gültigkeit von eMail Adressen nicht anhand einer RegEx prüfbar
>> ist (irgendwo gibt es angeblich eine RegEx die das kann aber die soll
>> über mehrere DIN-A4 Seiten gehen, so daß man sagt ein Parser sei
>> schneller).
>
> Sind nur 82 Zeilen bei einer Textbreite von 78 Zeilen (Regex nach RFC 822).
Ich sagte doch, ein Parser ist warscheinlich einfacher zu schreiben und
dazu noch besser überschaubar, auch wenn ich mich mit den Seiten
anscheinend geirrt habe. Ausserdem ist RFC 822 nicht mehr ganz aktuell:
Blockquote1:
Teilzitat aus RFC 2822
-
Abstract
This standard specifies a syntax for text messages that are sent between
computer users, within the framework of "electronic mail" messages.
This standard supersedes the one specified in Request For Comments
(RFC) 822, "Standard for the Format of ARPA Internet Text Messages",
updating it to reflect current practice and incorporating incremental
changes that were specified in other RFCs.
#
Und "supersedes" bedeutet wenn ich mich recht entsinne "ersetzt".
Und ich bezweifle daß ein RFC 2822 konformer RegEx kürzer ist als der
RFC 822 konforme.
MfG
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 13.08.2006 19:01:18 von Niels Braczek
Norbert Melzer schrieb:
> Ich sagte doch, ein Parser ist warscheinlich einfacher zu schreiben und=
> dazu noch besser überschaubar, auch wenn ich mich mit den Seiten
> anscheinend geirrt habe. Ausserdem ist RFC 822 nicht mehr ganz aktuell:=
Zurzeit gilt RfC822 als Std11 (siehe
http://www.rfc-editor.org/rfcxx00.html). Bei RfC2822 handelt es sich um
einen Vorschlag, der nicht in Kraft ist.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: myorgbook u. Co
am 13.08.2006 19:14:01 von Norbert Melzer
Am Sun, 13 Aug 2006 19:01:18 +0200 schrieb Niels Braczek:
> Zurzeit gilt RfC822 als Std11 (siehe
> http://www.rfc-editor.org/rfcxx00.html). Bei RfC2822 handelt es sich um
> einen Vorschlag, der nicht in Kraft ist.
Achso ist das, danke für die Info.
MfG
Norbert
--
Link zur PHP-FAQ http://www.php-faq.de
Re: myorgbook u. Co
am 18.08.2006 20:42:00 von Dietmar Segbert
Hallo,
> Dietmar Segbert schrieb:
....
> Ersetze die Zeile
> if
> (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$ _REQUES
> T['uemail'])) {
> durch
> if ( strpos( $_REQUEST['uemail'], '@' ) != false ) {
> und
> if ((getmxrr($mailhost, $mxhosts) == FALSE
> && gethostbyname($mailhost) == $mailhost) || $IsWindows) {
> durch
> if ( 1 ) {
> Damit wird die Prüfung der E-Mail-Adresse auf ein Minimum
> reduziert.
Das habe ich gemacht, aber ohne Erfolg.
Ich habe nun in der letzten Woche postfix 2.0.14 gegen 2.3.22 ersetzt. Mir
war eingefallen, dass postfix mit virtualhosts umgehen kann. Ich habe mir
eine Adresse Dietmar.Segbert@pielepatten.pc angelegt, die auf den user
segbertd umgelenkt wird. Lokal klappt der Mailversand auch an diese
Adresse egal ob von root oder sonst wo her. Nur vom signup.php script von
myorgbook kommt immer die fehlermeldung ungültige Mailadresse.
(ausprobiert mit Original signup.php und wie oben geändertem script).
Kann/muss ich in der Php.ini bzw. in main.cf von postfix noch was
eintragen?
MfG
Dietmar