PHP script niet meer naar het bewerken met FrontPage 2003

Pagina: 1
Acties:
  • 73 views sinds 30-01-2008

  • mysterieworld
  • Registratie: Augustus 2003
  • Niet online
Correctie: PHP script werkt niet meer na het bewerken met Frontpage 2003


Hallo, Ik heb een script dat gewerkt heeft, maar het werkt nu niet meer.

Bij verzenden van de formulier, kreeg ik een fout meldingen
Ik weet totaal niet waar dat aan lig. Ik had het toen getest,en toen deed ie het . Daarna had ik met frontpage 2003 de e-mail adres veranderd, en had het idee dat het wel goed is.

En sinds dien werkt het niet, wat ik nu pas achter komt. Deze script is zeer belangrijk, omdat het voor andere mensen is bedoelt en niet voor me zelf. Ik had gezegd dat het werkte, maar blijkbaar toch niet. En ik heb maar geen oplossing. Ik ken me helemaal niet uit PHP


Fout melding:

Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/[host].com/httpdocs/login/KB1967/ppwhformsend.php:1) in /home/httpd/vhosts/[host].com/httpdocs/login/KB1967/ppwhformsend.php on line 50

Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/[host].com/httpdocs/login/KB1967/ppwhformsend.php:1) in /home/httpd/vhosts/[host].com/httpdocs/login/KB1967/ppwhformsend.php on line 58


Zeer erg dankbaar, als iemand de oplossing voor me weet. Als iemand meer informatie nodig heeft over het script, dan maak ik dat graag openbaar. Zou het heel erg veel werk zijn om het probleem te vinden, dan beloon ik netjes de persoon die mij kan helpen met dit probleem.

Met vriendelijke groet Maurice

maurice.m@home.nl

Het gaat hier om 3 bestanden. 1 html bestand , en 2 PHP scripts

Index.htm / pphformsend.php / class.phpmailer.php

'ppwhformsend.php' script:

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
<?
  $sToEmail = "test@home.nl";
    
    require("class.phpmailer.php");
    if ($_POST['Status'] != '1')
        { // exit;
        }
    $aExcludeArray = array ('Subject','Submit','RedirectTo','Recipient','RecipientName','FromName','FromEmail','Status','SendError','Copy');
    $Message = "Onderstaand formulier is verzonden vanaf je website, de ingevulde informatie is als volgt: ({$_SERVER["HTTP_REFERER"]})\n\n";

    foreach ($_POST as $FieldName => $Value)
    {
        if (!in_array($FieldName,$aExcludeArray))
        {
            $Message .= $FieldName . " : " . $Value ."\n";
        }
    }

    $mailer = new phpmailer;
    if ($_POST[fromEmail]) $sFromEmail = $_POST[fromEmail];
    else $sFromEmail = "noreply@beautybenelux.com";
    
    $mailer->From     = $sFromEmail;
    $mailer->FromName = "Website : " . $_POST['FromName'];
    
    $mailer->AddAddress($sToEmail);
    
    $mailer->Subject = "Ingezonden formulier: ". stripslashes($_POST['Subject']);


    if (count($_FILES)>0)
    {
        foreach ($_FILES as $sFileInputName => $aFile)
        {
            $sFileName  = $aFile[name];
            $sFileType  = $aFile[type];
            $nFileSize  = $aFile[size];
            
            $Message .= "\nAttached file: $sFileName [$nFileSize Bytes] ($sFileType)\n";
            $mailer->AddAttachment($aFile[tmp_name], $sFileName);
        }
        
    }

    $mailer->IsHTML(false); // HTML mail
    $mailer->Body = stripslashes("$Message");


    header("Location:" . $_POST['RedirectTo']);

    if ($mailer->Send())
    {
        header("Location:" . $_POST['RedirectTo']);
    }
    else
    {
        header("Location:" . $_POST['SendError']);
    }

?>

[ Voor 1% gewijzigd door JHS op 28-04-2007 15:04 ]


  • OxiMoron
  • Registratie: November 2001
  • Laatst online: 08-07 14:27
Zou zeggen open hem eens met notepad en kijk naar de eerste regel.. het lijkt erop dat er een spatie of misschien een lege regel aan het begin staan.

Albert Einstein: A question that sometime drives me hazy: Am I or are the others crazy?


  • mysterieworld
  • Registratie: Augustus 2003
  • Niet online
Bedankt, dat had ik al gedaan, geen spatie was het probleem.
Nogmaals bedankt voor je reactie.
OxiMoron schreef op vrijdag 23 maart 2007 @ 14:57:
Zou zeggen open hem eens met notepad en kijk naar de eerste regel.. het lijkt erop dat er een spatie of misschien een lege regel aan het begin staan.

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 10:32
Je verstuurt de header-line "Location" dubbel. Eerst redirect je naar $_POST['RedirectTo'] en vervolgens nog eens naar $_POST['RedirectTo'] of naar $_POST['SendError']. Je moet zowiezo niet twee keer dezelfde header-line veranderen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
    header("Location:" . $_POST['RedirectTo']);

    if ($mailer->Send())
    {
        header("Location:" . $_POST['RedirectTo']);
    }
    else
    {
        header("Location:" . $_POST['SendError']);
    }
?>


Vervolgens kan de spatie of break ook in een geinclude file zitten. Als je probleem nog niet opgelost was, dan zou ik class.phpmailer.php maar eens na gaan kijken op output.

Laatste (lelijke) noodoplossing is het gebruik maken van ob_start() en ob_flush() .
http://nl2.php.net/ob_start


tipje: zet bij de code-teg even erbij =php, dan is de code wat overzichtelijker.

[ Voor 32% gewijzigd door doeternietoe op 23-03-2007 15:10 ]


  • IntToStr
  • Registratie: December 2003
  • Laatst online: 10:18
De foutmelding betekent dat er ergens al data naar de browser is verstuurd voor regel 50. Aangezien er nergens een print of echo of iets dergelijks wordt gedaan in het bestand dat je hier post kan het zijn dat dit wel het geval is bij het bestand dat je hier met "require" aanroept.

Regel 50 komt trouwens ook niet overeen met de aanroep van header (regel 49), maar je zei al dat er geen regel voor staat.

Staat je host wel de verkorte vorm van de <?php tag toe? Je gebruikt namelijk <? ... ?> ipv <?php ... ?>, al zou je dan volgens mij ook de foutmeldingen niet moeten krijgen...

Ook geen warnings of notices of iets dergelijks die naar de browser worden verstuurd door code voor regel 50 die dit kunnen veroorzaken?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

De foutmelding zegt het al: op regel 1 wordt er al uitvoer gestuurd naar je browser. Dat kan een spatie zijn, of een enter, of mogelijk zelfs een Byte Order Mark (BOM) als je met UTF-8 aan het werken bent. Wat er precies staat zul je zelf met debuggen wel kunnen vinden.

Verder is dit bijna exact hetzelfde topic dat gisteren al door dusty op slot is gezet, namelijk PHP script werkt niet meer. Als we een slotje zetten doen we dat niet voor niets. Als je denkt dat een slotje onterecht is, dan kun je de sluitende moderator een mailtje sturen; zie ook Je topic is dicht en het is onterecht? Lees hier! Eventueel zou je ook ons moderatiebeleid aan de kaak kunnen stellen in Feedback op moderatie binnen de Devschuur.

Dit topic gaat in elk geval, net als dat van gisteren, dicht. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.