Archief - PHP/JS: werkt wel op localhost maar niet on

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Battousai

Legacy Member
Hey,

Ik heb het volgende scriptje om een contactformulier te laten mailen, als ik het op localhost test werkt het perfect en krijg ik gelijk mijn mails toe, maar als ik het op http://simon.servlogic.nl/contact.php test, dan zegt hij telkens echo "Je bent je naam, e-mail adres, contactreden of bericht vergeten in te vullen. Ook kan het zijn ";
echo "dat je een verkeerd e-mail adres hebt ingevuld.<p>";

servlogic ondersteund op die site php, dat heb ik al nagevraagd.

Dank bij voorbaat,

Simon

Code:
<? 
// geef e-mail adres op van ontvanger 
$mail_ontv = "[email protected]";
$smtp = "uit.telenet.be";

// is niet 100% !!! 
function checkmail($mail) 
{ 
    $email_host = explode("[email protected]", $mail); 
    $email_host = $email_host['1']; 
    $email_resolved = gethostbyname($email_host); 

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail)) 
        $valid = 1; 

    return $valid; 
} 

// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is 
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['contactreden'])) 
{ 
    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['contactreden']))   
    { 
        echo "Je bent je naam, e-mail adres, contactreden of bericht vergeten in te vullen. Ook kan het zijn "; 
        echo "dat je een verkeerd e-mail adres hebt ingevuld.<p>"; 
    } 
      
    // form + tabel 
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; 
    echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">"; 
      
    // naam 
    echo "<tr><td>Naam:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E-mail adres:</td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\">"; 
        echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";  
             
    
    // space 
    echo "<tr><td>&nbsp;</td></tr>"; 
    
    // mail
    
    echo "<tr><td>Gsm-nummer of telnummer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contactreden: </td></tr>"; 
    echo "<tr><td><input type=\"text\" name=\"gsmnr\" size=\"10\" value=\"" . htmlentities($_POST['gsmnr']) . "\">"; 
    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"text\" name=\"contactreden\" value=\"" . $_POST['contactreden'] . "\"></td> </tr>";

    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail 
    echo "<tr><td>Bericht:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"submit\" value=\"Versturen\"><input type=\"reset\" name=\"wis\" value=Wis alles></td></tr>"; 
    echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"2\" COLS=\"16\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>"; 
            
    // sluit form + tabel 
    echo "</form>"; 
    echo "</table>"; 
} 
// versturen naar 
else 
{      
    // set datum 
    $datum = date("d.m.Y H:i"); 
      
    // set ip 
    $ip = $_SERVER['REMOTE_ADDR']; 
      
    $inhoud_mail = "===================================================\n"; 
    $inhoud_mail .= "Ingevulde contact formulier\n"; 
    $inhoud_mail .= "===================================================\n\n"; 
      
    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n"; 
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n"; 
    $inhoud_mail .= "GSM-nummer: " . $_POST['gsmnr'] . "\n";
    $inhoud_mail .= "Contactreden: " . $_POST['contactreden'] . "\n";
    $inhoud_mail .= "Bericht:\n"; 
    $inhoud_mail .= $_POST['msggs'] . "\n\n"; 
      
    $inhoud_mail .= "Verstuurd op $datum via het ip " . $ip . "\n\n"; 
      
    $inhoud_mail .= "===================================================\n\n"; 
    
    // -------------------- 
    // spambot protectie 
    // ------ 
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/ 
    // ------ 
    
    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
    
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n 
    $headers = str_replace("\r", "", $headers); // Verwijder \r 
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes 
    
    $_POST['contactreden'] = str_replace("\n", "", $_POST['contactreden']); // Verwijder \n 
    $_POST['contactreden'] = str_replace("\r", "", $_POST['contactreden']); // Verwijder \r 
    $_POST['contactreden'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['contactreden'])); // Slashes van quotes 
     
    mail($mail_ontv = "[email protected]", $_POST['contactreden'], $inhoud_mail, $headers); 
     
    echo "<h1>Je e-mail is verstuurd</h1>";
    
    echo "<p>Bedankt voor het versturen van een e-mail. Je zult snel een antwoord "; 
    echo "krijgen indien dit nodig is.</p>"; 
     
    echo "<p>We nemen alles serieus en zullen vertrouwelijk omgaan met de informatie "; 
    echo "die we binnen krijgen. Je e-mail adres zal nooit aan derden worden verstrekt.</p>"; 
} 
?>

orez

Legacy Member
1. Gebruik <?php ?> en niet <? ?>
2. Leer je HTML Excluden van je PHP ...

Tyfius

Legacy Member
Hier werkt het online als ik die checkmail weglaat.
Volgens mij ligt daar het probleem bij die gethostbyname functie.

Battousai

Legacy Member
Tyfius zei:
Hier werkt het online als ik die checkmail weglaat.
Volgens mij ligt daar het probleem bij die gethostbyname functie.
bedankt voor u hulp, zal nu wel werken :)

Fr3aK

Legacy Member
Je explode een mailadres met "[email protected]" als string separator terwijl je gewoon "@" moet gebruiken.

Dus:
PHP:
$email_host = explode("@", $mail);
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan