Registrieren  •  Login 
  
 
im Forum


 FAQ   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

Compilation Error

 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
NoMoKeTo
Ehemaliger
Ehemaliger



Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 28.01.2007, 09:18    Titel: Compilation Error

Moin Ich habe folgendes Problem.

Folgendes Skript:
PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php 
//
// Tell a friend script integration by Madpiper
//

define('IN_PHPBB'true); 
$phpbb_root_path './'
include(
$phpbb_root_path 'extension.inc'); 
include(
$phpbb_root_path 'common.'.$phpEx); 

// 
// Start session management 
// 
$userdata session_pagestart($user_ipPAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 
if( !$userdata['session_logged_in'] || !isset($userdata)) 

    
redirect("login.$phpEx?redirect=tellfriend.$phpEx"); 
}

$self_name trim($_POST['self_name']);
$self_email trim($_POST['self_email']);
$recipient trim($_POST['recipient']);
$messagee trim($_POST['message']);
$mode trim($_POST['mode']);

include(
$phpbb_root_path 'includes/page_header.'.$phpEx); 

$tellafriend =  '<p style="font-size:12pt;">'.$lang['tell_a_friend'].'</p>';
$tellafriend .= $lang['tell_a_friend_formular'].'<br><br>';

if (
$mode == 'send') {
    
$emailcheck "/^[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]*)*@([a-ZA-Z0-9-_]+\.)+[a-zA-Z]{2,4}$/";

    
$message = Array();
    if (
preg_match($emailcheck$self_email) == 0) {
        
$message[] = $lang['tell_a_friend_error_email_from'];
    }
    if (
$self_name == '') {
        
$message[] = $lang['tell_a_friend_error_name_from'];
    }
    if (
preg_match($emailcheck$recipient) == 0) {
        
$message[] = $lang['tell_a_friend_error_email_to'];
    }

    if (
count($message) == 0) {
        
$nachricht $lang['tell_a_friend_error_email_text_a'].$self_name.$lang['tell_a_friend_error_email_text_b']."\n".'http://www.esperantoland.org/forum'."\n".'----------------------------'."\n".$message;
        
$headers 'From: "'.$self_name.'" <'.$self_email.'>'."\n";
        if (@
mail($recipient''stripslashes($message), $headers)) {
            
$message[] = $lang['tell_a_friend_confirm'];
            @
mail('Lu@esperantoland.org''Forum wurde Weiterempfohlen'stripslashes('...und zwar von <b>'.$self_name.'</b>, mit der eMail-Adresse <b>'.$self_email.'</b>, und zwar an <b>'.$recipient.'</b> mit der Nachricht...'."\n-------------------------------------------\n".$message), $headers);
            @
mail('Webmaster@nomoketo.de''Forum wurde Weiterempfohlen'stripslashes('...und zwar von <b>'.$self_name.'</b>, mit der eMail-Adresse <b>'.$self_email.'</b>, und zwar an <b>'.$recipient.'</b> mit der Nachricht...'."\n-------------------------------------------\n".$message), $headers);
        } else {
            
$message[] = $lang['tell_a_friend_cant_send'];
        }
    }

    
$tellafriend .= '<hr>'.implode('<br>'$message).'<hr>';
}

$tellafriend .= '<form action="tellafriend.php" method="post">';
$tellafriend .= $lang['tell_a_friend_formular_name_from'].'<br><input type="text" id="self_name" name="self_name" value="'.(($self_name == '' && $userdata['session_logged_in'])?$userdata['username']:$self_name).'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_email_from'].'<br><input type="text" id="self_email" name="self_email" value="'.(($self_email == '' && $userdata['session_logged_in'])?$userdata['user_email']:$self_email).'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_email_to'].'<br><input type="text" id="rec" name="recipient" value="'.$recipient.'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_message'].'<br><textarea cols="30" rows="6" id="mess" name="message">'.$messagee.'</textarea><br><br>';
$tellafriend .= '<input type="hidden" name="mode" value="send"><input type="submit" name="Submit" value="Submit">';
$tellafriend .= '</form>';

message_die(GENERAL_MESSAGE$tellafriend);

include(
$phpbb_root_path 'includes/page_tail.'.$phpEx); 

?>

funktioniert einwandfrei, jedoch wenn ich das Formular absende erhalte ich folgende Fehler:
Der blöde Server hat Folgendes geschrieben:
Warning: Compilation failed: range out of order in character class at offset 39 in /home/www/web1/html/forum/tellafriend.php on line 43

Warning: Compilation failed: range out of order in character class at offset 39 in /home/www/web1/html/forum/tellafriend.php on line 49

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web1/html/forum/tellafriend.php:43) in /home/www/web1/html/forum/includes/page_header.php on line 1280

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web1/html/forum/tellafriend.php:43) in /home/www/web1/html/forum/includes/page_header.php on line 1284

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web1/html/forum/tellafriend.php:43) in /home/www/web1/html/forum/includes/page_header.php on line 1286

Es ist klar, dass die letzten 3 Fehler natürlich ignoriert werden können.
Der Fehler scheint bei der anwenung des Regulären ausdrucks zu liegen, aber was ist da falsch?

Ich weiss nicht mehr weiter. Hoffe um Hilfe. Smile

NoMoKeTo
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13997
Wohnort: Wien

BeitragVerfasst am: 28.01.2007, 09:36    Titel:

Also in meiner Testumgebung wird mit folgender Fehler ausgegeben:
Code:
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 39 in C:\Programme\xampp\***\phpBB2\tellafriend.php on line 39


Das heißt folgender Code hat einen Fehler:
Code:
$emailcheck = "/^[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]*)*@([a-ZA-Z0-9-_]+\.)+[a-zA-Z]{2,4}$/";

Auf den ersten Blick sehe ich nur, dass die Bindestriche maskiert gehören, denn diese sind Sonderzeichen. Da es sich um eine E-Mail Prüfung handelt, hier eine bessere Funktion:
PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// eMail wird auf richtige Synthax überprüft
function check_mail($mail$stufe FALSE)
{
  Switch(
$stufe)
  {
    case 
1:
      
$muster '/^[^\.^ ^@.](\.{0,1}[^\.^ ^@.])*@[^\.^ ^@.](\.{0,1}[^\.^ ^@.])*((\.[a-z]{2,4}){1,2}|\.museum|\.name|\.info)$/i';
      break;

    default:
      
$nicht='^\(^\)^<^>^\[^\]^:^;^\\^,^ ^"^@^\.^'.chr(012).'^'.chr(015);
      
$muster='/^['.$nicht.'.](\.{0,1}['.$nicht.'.])*@['.$nicht.'.](\.{0,1}['.$nicht.'.])*((\.[a-z]{2,4}){1,2}|\.museum|\.name|\.info)$/i';
      break;
  }
  if(
preg_match($muster$mail))
  {
    return 
TRUE;
  }
  else
  {
    return 
FALSE;
  }
}
//Ende Funktion
?>



MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
NoMoKeTo
Ehemaliger
Ehemaliger



Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 28.01.2007, 09:43    Titel:

Der reguläre ausdruck sollte keine fehler haben, er hat schon oft genug funktioniert. Shocked Question
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von NoMoKeTo.
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13997
Wohnort: Wien

BeitragVerfasst am: 28.01.2007, 09:45    Titel:

ALso die Bindestriche gehören maskiert, denn diese sind Sonderzeichen im Ausdruck Wink
Code:
$emailcheck = '/^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]*)*@([a-ZA-Z0-9\-_]+\.)+[a-zA-Z]{2,4}$/';

Und versuche es mal mit einfachen Klammern, denn bei der Verwendung von doppelten Klammern, muss man irgendwie die Zeichen doppelt maskieren, so steht es in meinem PHP-Buch Wink


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
NoMoKeTo
Ehemaliger
Ehemaliger



Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 28.01.2007, 10:21    Titel:

Sorry, aber nein, gehören sie nicht.

Es funktioniert jetzt.

Ich habe es wie folgt gelöst:
PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<? 

define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// 
// Start session management 
// 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 
if( !$userdata['session_logged_in'] || !isset($userdata)) 

    redirect("login.$phpEx?redirect=tellfriend.$phpEx"); 
}

$self_name = trim($_POST['self_name']);
$self_email = trim($_POST['self_email']);
$recipient = trim($_POST['recipient']);
$messagee = trim($_POST['message']);
$mode = trim($_POST['mode']);

$tellafriend =  '<p style="font-size:12pt;">'.$lang['tell_a_friend'].'</p>';
$tellafriend .= $lang['tell_a_friend_formular'].'<br><br>';

if ($mode == 'send') {
    $message = Array();
    if ( !(preg_match("|^[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]*)*@([a-zA-Z0-9-_]+\.)+[a-zA-Z]{2,4}$|", $self_email) ) ) {
        $message[] .= $lang['tell_a_friend_error_email_from'];
    }
    if ($self_name == '') {
        $message[] .= $lang['tell_a_friend_error_name_from'];
    }
    if ( !(preg_match("|^[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]*)*@([a-zA-Z0-9-_]+\.)+[a-zA-Z]{2,4}$|", $recipient) ) ) {
        $message[] .= $lang['tell_a_friend_error_email_to'];
    }

    if (count($message) == 0) {
        $nachricht = $lang['tell_a_friend_error_email_text_a'].$self_name.$lang['tell_a_friend_error_email_text_b']."\n".'http://www.esperantoland.org/forum'."\n".'----------------------------'."\n".$message;
        $headers = 'From: "'.$self_name.'" <'.$self_email.'>'."\n";
        if (@mail($recipient, '', stripslashes($message), $headers)) {
            $message[] = $lang['tell_a_friend_confirm'];
            @mail('Lu@esperantoland.org', 'Forum wurde Weiterempfohlen', stripslashes('...und zwar von <b>'.$self_name.'</b>, mit der eMail-Adresse <b>'.$self_email.'</b>, und zwar an <b>'.$recipient.'</b> mit der Nachricht...'."\n-------------------------------------------\n".$message), $headers);
            @mail('Webmaster@nomoketo.de', 'Forum wurde Weiterempfohlen', stripslashes('...und zwar von <b>'.$self_name.'</b>, mit der eMail-Adresse <b>'.$self_email.'</b>, und zwar an <b>'.$recipient.'</b> mit der Nachricht...'."\n-------------------------------------------\n".$message), $headers);
        } else {
            $message[] = $lang['tell_a_friend_cant_send'];
        }
    }

    $tellafriend .= '<hr>'.implode('<br>', $message).'<hr>';
}

$tellafriend .= '<form action="tellafriend.php" method="post">';
$tellafriend .= $lang['tell_a_friend_formular_name_from'].'<br><input type="text" id="self_name" name="self_name" value="'.(($self_name == '' && $userdata['session_logged_in'])?$userdata['username']:$self_name).'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_email_from'].'<br><input type="text" id="self_email" name="self_email" value="'.(($self_email == '' && $userdata['session_logged_in'])?$userdata['user_email']:$self_email).'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_email_to'].'<br><input type="text" id="rec" name="recipient" value="'.$recipient.'"><br><br>';
$tellafriend .= $lang['tell_a_friend_formular_message'].'<br><textarea cols="30" rows="6" id="mess" name="message">'.$messagee.'</textarea><br><br>';
$tellafriend .= '<input type="hidden" name="mode" value="send"><input type="submit" name="Submit" value="Submit">';
$tellafriend .= '</form>';

message_die(GENERAL_MESSAGE, $tellafriend);

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 

?>

_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von NoMoKeTo.
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13997
Wohnort: Wien

BeitragVerfasst am: 28.01.2007, 10:25    Titel:

Hauptsache es funktioniert, aber da die Bindestriche keinen Bereich angeben sollen, gehören sie eigentlich maskiert, so wirst du es überall finden Wink
Mit den doppelten Anführungszeichen ist das etwas anderes, da bin ich mir nicht zu 100% sicher.


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst Dateien in diesem Forum nicht hochladen.
Du kannst Dateien in diesem Forum nicht herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 04.06.2020, 19:25
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]