PHP Formular fehler (The requested URL .. was not found on this server)

09/06/2013 15:57 vbacoder#1
Hi. ich bekomme Immer die NOT FOUND Meldung vom Server wnen ich Versuche mein Formular abzusenden :(

Hier Das Formular:

PHP Code:
<?php
error_reporting
(E_ALL);
/**************************************************

    COPYRIGHT BY VBACODER. ALL RIGHTS REVERSED!

**************************************************/
$error false;
$errors = array();
$receiver '[Only registered and activated users can see links. Click Here To Register...]';

function 
check_email ($string) {
    
// RegEx created by Myle Ott, found at regexlib.com
    
return preg_match('/^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$/i'$string);
}

function 
check_onlynumbers ($string) {
    return 
preg_match('/^[0-9,.]{1,}$/'$string);
}

function 
check_onlyletters ($string) {
    return 
preg_match('/^[a-zA-ZäöüÄÖÜß]{1,}$/'$string);
}

function 
send_email ($subject$body$receiver$html 1) {
    if (
$html != 1) {
        
$body str_replace('<br />'"\n"$body);
        
$body str_replace('<br>'"\n"$body);
        
$body strip_tags($body);
    }

    
$subject str_replace('\n'''$subject);
    
$subject str_replace('\r'''$subject);

    if (
$html) {
        
$header    'MIME-Version: 1.0' "\n";
        
$header .= 'Content-type: text/html; charset=iso-8859-15'."\n";
        
$header .= 'From: '.$receiver.' <'.$receiver.'>'."\n";
    } else {
        
$header    'MIME-Version: 1.0' "\n";
        
$header .= 'From: '.$receiver.' <'.$receiver.'>'."\n";
    }

    if (
mail($receiver$subject$body$header)) {
        return 
true;
    } else {
        return 
false;
    }
}

function 
array_stripslashes(&$var) {
    if(
is_string($var)) {
        
$var stripslashes($var);
    } else {
        if(
is_array($var))
            foreach(
$var as $key => $value)
                
array_stripslashes($var[$key]);
    }
}

if(
get_magic_quotes_gpc()){
  
array_stripslashes($_GET);
  
array_stripslashes($_POST);
  
array_stripslashes($_REQUEST);
  
array_stripslashes($_COOKIE);
}

if (!empty(
$_POST)) {
    
// Prüfung "Account ID:"
    
$errors['AccountID'] = null;    if (empty($_POST['AccountID'])) {
        
$error true;
        
$errors['AccountID'] = ' class="error"';    }

    
// Prüfung "Paysafecard-Doe:"
    
$errors['Paysafecard_CODE'] = null;    if (empty($_POST['Paysafecard_CODE'])) {
        
$error true;
        
$errors['Paysafecard_CODE'] = ' class="error"';    }

    
// Prüfung für "Wert der Paysafecard:"
    
$errors['PaysafecardWert'] = null;    if (empty($_POST['PaysafecardWert'])) {
        
$error true;
        
$errors['PaysafecardWert'] = ' class="error"';    }

    
// Prüfung für "Möchten Sie [VIP] vor Ihrem namen und eine Krone(Nur bei 100€ Spende)"
    
$errors['_VIP_aktivieren_'] = null;    if (empty($_POST['_VIP_aktivieren_'])) {
        
$error true;
        
$errors['_VIP_aktivieren_'] = ' class="error"';    }

    
// Prüfung für "Captcha:"
    
$errors['CAPTCHA'] = null;    if (empty($_POST['CAPTCHA'])) {
        
$error true;
        
$errors['CAPTCHA'] = ' class="error"';    }

}
    
$_text_AccountID = (!empty($_POST['AccountID']) ? htmlspecialchars($_POST['AccountID'], ENT_QUOTES'iso-8859-15') : null);

    
$_text_Paysafecard_CODE = (!empty($_POST['Paysafecard_CODE']) ? htmlspecialchars($_POST['Paysafecard_CODE'], ENT_QUOTES'iso-8859-15') : null);

    
$_select_PaysafecardWert_10_10_000Novo_Coins_ = (!empty($_POST['PaysafecardWert']) && $_POST['PaysafecardWert'] == '10_10_000Novo_Coins_' ' selected="selected"' null);
    
$_select_PaysafecardWert_25_30_000Novo_Coins_ = (!empty($_POST['PaysafecardWert']) && $_POST['PaysafecardWert'] == '25_30_000Novo_Coins_' ' selected="selected"' null);
    
$_select_PaysafecardWert_50_70_000Novo_Coins_ = (!empty($_POST['PaysafecardWert']) && $_POST['PaysafecardWert'] == '50_70_000Novo_Coins_' ' selected="selected"' null);
    
$_select_PaysafecardWert_100_150_000Novo_Coins_ = (!empty($_POST['PaysafecardWert']) && $_POST['PaysafecardWert'] == '100_150_000Novo_Coins_' ' selected="selected"' null);

    
$_checkbox__VIP_aktivieren__Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_ = (!empty($_POST['_VIP_aktivieren_']) && in_array('Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_'$_POST['_VIP_aktivieren_']) ? ' checked="checked"' null);
    
$_checkbox__VIP_aktivieren__Nein_kein_VIP_verwendenund150kCoinsgutschreiben_ = (!empty($_POST['_VIP_aktivieren_']) && in_array('Nein_kein_VIP_verwendenund150kCoinsgutschreiben_'$_POST['_VIP_aktivieren_']) ? ' checked="checked"' null);

    
$_text__VIP_Charaktername_nurbei100_Spende_ = (!empty($_POST['_VIP_Charaktername_nurbei100_Spende_']) ? htmlspecialchars($_POST['_VIP_Charaktername_nurbei100_Spende_'], ENT_QUOTES'iso-8859-15') : null);

    
$_text_CAPTCHA = (!empty($_POST['CAPTCHA']) ? htmlspecialchars($_POST['CAPTCHA'], ENT_QUOTES'iso-8859-15') : null);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<title>Jetzt Novo-Coins mit Paysafecard kaufen!</title>
<style type="text/css">
body {
    font: 12px Verdana, Tahoma, Arial, Helvetica, sans-serif;
    color: #444;
}

h1, p {
    margin: 10px; padding: 0px;
}

textarea {
    width: 350px;
    padding: 2px;
    font: normal 12px Verdana, sans-serif;
    border: 1px solid #828790;
    height: 100px;
    color: #777;
}

input.button {
    margin: 0;
    font: bolder 12px Arial, Sans-serif;
    border: 1px solid #828790;
    padding: 1px;
    background: #FFF;
    color: #CC0000;
}

.error_msg {
    padding: 4px;
    background-color: #ffeeee;
    border: 1px dotted #cc0000;
    margin: 5px 10px 5px 10px;
    color: #cc0000;
}

.error { color: #cc0000; }

fieldset { width: 570px; }

div.formulargenerator-4webmaster label,
div.formulargenerator-4webmaster .controlset span {
    width: 150px;
    display: block;
    float: left;
    text-align: right;
}

div.formulargenerator-4webmaster label { margin: 5px; }
div.formulargenerator-4webmaster .controlset span {    margin: 0px 0px 0px 5px; }
div.formulargenerator-4webmaster .controlset label {
    display: inline;
    float: none;
}

div.formulargenerator-4webmaster .controlset input { margin: 0px 0px 0px 10px; }
div.formulargenerator-4webmaster input,
div.formulargenerator-4webmaster select,
div.formulargenerator-4webmaster textarea {
    margin: 2px 2px 2px 5px;
}


div.formulargenerator-4webmaster div { clear: both; }
</style>
</head>
<body>
<?php
if ($error || empty($_POST)) {?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES'iso-8859-15'); ?>" method="post">
<fieldset>
<legend>Jetzt Novo-Coins mit Paysafecard kaufen!</legend>
<div class="formulargenerator-4webmaster">
<?php if ($error) { ?>
<div class="error_msg">Bitte alle mit * markierten Felder ausfüllen.</div>
<?php ?><div>
    <label for="AccountID"<?php echo !empty($errors['AccountID']) ? $errors['AccountID'] : null ?>>Account ID: *</label>
    <input tabindex="1" type="text" maxlength="20" id="AccountID" name="AccountID" value="<?php echo $_text_AccountID?>" />
</div>
<div>
    <label for="Paysafecard_CODE"<?php echo !empty($errors['Paysafecard_CODE']) ? $errors['Paysafecard_CODE'] : null ?>>Paysafecard-Code: *</label>
    <input tabindex="2" type="text" maxlength="19" id="Paysafecard_CODE" name="Paysafecard_CODE" value="<?php echo $_text_Paysafecard_CODE?>" />
</div>
<label for="PaysafecardWert"<?php echo !empty($errors['PaysafecardWert']) ? $errors['PaysafecardWert'] : null ?>>Paysafecard Wert: *</label>
    <select tabindex="3" id="PaysafecardWert" name="PaysafecardWert">
        <option value="10_10_000Novo_Coins_"<?php echo $_select_PaysafecardWert_10_10_000Novo_Coins_?>>10€ [10.000 Novo-Coins]</option>
        <option value="25_30_000Novo_Coins_"<?php echo $_select_PaysafecardWert_25_30_000Novo_Coins_?>>25€ [30.000 Novo-Coins]</option>
        <option value="50_70_000Novo_Coins_"<?php echo $_select_PaysafecardWert_50_70_000Novo_Coins_?>>50€ [70.000 Novo-Coins]</option>
        <option value="100_150_000Novo_Coins_"<?php echo $_select_PaysafecardWert_100_150_000Novo_Coins_?>>100€ [150.000 Novo-Coins]</option>
    </select> <br style="clear: both;" />
<div class="controlset">
    <span<?php echo !empty($errors['_VIP_aktivieren_']) ? $errors['_VIP_aktivieren_'] : null ?>>S-VIP aktivieren?**</span>
    <input tabindex="4" type="checkbox" id="Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_" name="_VIP_aktivieren_[]" value="Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_"<?php echo $_checkbox__VIP_aktivieren__Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_?> /><label for="Ja_ichhabe100_gespendetundmoechte_VIP_verwenden_">Ja.</label> 
    <input tabindex="5" type="checkbox" id="Nein_kein_VIP_verwendenund150kCoinsgutschreiben_" name="_VIP_aktivieren_[]" value="Nein_kein_VIP_verwendenund150kCoinsgutschreiben_"<?php echo $_checkbox__VIP_aktivieren__Nein_kein_VIP_verwendenund150kCoinsgutschreiben_?> /><label for="Nein_kein_VIP_verwendenund150kCoinsgutschreiben_">Nein.</label> 
</div> <br style="clear: both;" />
<div>
    <label for="_VIP_Charaktername_nurbei100_Spende_"<?php echo !empty($errors['_VIP_Charaktername_nurbei100_Spende_']) ? $errors['_VIP_Charaktername_nurbei100_Spende_'] : null ?>>Charaktername (nur ausfüllen wenn Sie S-VIP beantragen):</label>
    <input tabindex="6" type="text" maxlength="20" id="_VIP_Charaktername_nurbei100_Spende_" name="_VIP_Charaktername_nurbei100_Spende_" value="<?php echo $_text__VIP_Charaktername_nurbei100_Spende_?>" />
</div>
<div>
    <label for="CAPTCHA"<?php echo !empty($errors['CAPTCHA']) ? $errors['CAPTCHA'] : null ?>>Captcha: *</label>
    <input tabindex="7" type="text" maxlength="10" id="CAPTCHA" name="CAPTCHA" value="<?php echo $_text_CAPTCHA?>" />
    <img src="http://inside.novo-world.com/captcha.gif" alt="Captcha">
</div>
<div style="text-align: center; margin: 5px;">
    <input type="submit" value="Absenden" />
</div>
</fieldset>
</form>
<?php
} else {
    
$body '';
    
$body .= 'AccountID: '.htmlspecialchars(!empty($_POST['AccountID']) ? $_POST['AccountID'] : ''ENT_QUOTES'iso-8859-15').'<br>';
    
$body .= 'Paysafecard_CODE: '.htmlspecialchars(!empty($_POST['Paysafecard_CODE']) ? $_POST['Paysafecard_CODE'] : ''ENT_QUOTES'iso-8859-15').'<br>';
    
$body .= 'PaysafecardWert: '.htmlspecialchars(!empty($_POST['PaysafecardWert']) ? $_POST['PaysafecardWert'] : ''ENT_QUOTES'iso-8859-15').'<br>';
    
$body .= '_VIP_aktivieren_: ';
    if(!empty(
$_POST['_VIP_aktivieren_'])) {
        foreach (
$_POST['_VIP_aktivieren_'] as $value) {
            
$body .= htmlspecialchars($valueENT_QUOTES'iso-8859-15').', ';
        }
    }
    
$body .= '<br>';
    
$body .= '_VIP_Charaktername_nurbei100_Spende_: '.htmlspecialchars(!empty($_POST['_VIP_Charaktername_nurbei100_Spende_']) ? $_POST['_VIP_Charaktername_nurbei100_Spende_'] : ''ENT_QUOTES'iso-8859-15').'<br>';
    
$body .= 'CAPTCHA: '.htmlspecialchars(!empty($_POST['CAPTCHA']) ? $_POST['CAPTCHA'] : ''ENT_QUOTES'iso-8859-15').'<br>';
    if(
send_email('Jetzt Novo-Coins mit Paysafecard kaufen!'$body$receiver)) {
        
?>
        <h1>Jetzt Novo-Coins mit Paysafecard kaufen!</h1>
        <p>Vielen Dank für Ihre Bestellung! Sie erhalten die Coins nachdem wir Ihren eingegebenen Paysafecard Code überprüft haben. Sollten sie die [VIP] Funktion verwendet haben und keinen 100€ Code, wird dies ignoriert und Sie erhalten ganz normal Ihre Coins.</p>
        <?
    
} else {
        
?>
        <h1>Jetzt Novo-Coins mit Paysafecard kaufen!</h1>
        <p>Das Formular konnte leider nicht abgesendet werden. Bitte versuchen Sie es später noch einmal.</p>
        <?
    
}
}
?>
</body>
</html>

weis jemand wieso? :)
Währe nett
09/09/2013 20:42 ©ross#2
Falls es noch besteht:
Grade mal auf meiner Webmaschine getestet -> Klappt wunderbar.
Hatte erst nen Fehler das shortopentags nicht an waren, aber das ist ja nebensächlich und von der PHP Einstellung abkommend.

An sich im Code ist also kein Fehler - wie es scheint. Da es bei mir läuft (PHP 5.4/IIS 7.5)
09/10/2013 22:49 MrSm!th#3
#moved
09/11/2013 04:03 Mikesch01#4
PHP Code:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES'iso-8859-15'); ?>" method="post">
Was wird denn das? :D

Die Servervariable wird sicherlich nicht manipuliert und braucht eig. nicht escaped zu werden. Am besten sowieso den Namen der Datei reinschreiben und PHP_SELF weglassen.
09/11/2013 09:31 Synatex#5
Quote:
Originally Posted by Mikesch01 View Post
PHP Code:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES'iso-8859-15'); ?>" method="post">
Was wird denn das? :D

Die Servervariable wird sicherlich nicht manipuliert und braucht eig. nicht escaped zu werden. Am besten sowieso den Namen der Datei reinschreiben und PHP_SELF weglassen.
Oh mein Gott. Warum sollte die nicht manipuliert werden? $_SERVER['PHP_SELF'] zeigt auf den momentan angegebenen Pfad - nicht die Datei! D.h. wenn du anstatt der index.php die index.php?"><script>alert('Hallo');</script> angibst wird er das Formular schließen und dir JavaScript ausgeben - schlimmste XSS Lücke die man haben kann.

Das geht mit mindestens 30-40% der Variablen die dort übergeben werden, sei es der Useragent oder sonstige Infos. Aufjedenfall escapen. Wenn, dann benutzt man

PHP Code:
<?php echo $_SERVER['SCRIPT_NAME']; ?>
Da somit die Usereingabe ignoriert wird.

Ob man nun den Namen der Datei reinschreibt oder dies ist Codeabhängig, wenn man weiß das sich die Datei in den X Wochen öfters ändert könnte es durchaus ein Faktor sein eine dynamische Variable anstatt zu nutzen.

@TE: Hat deine Datei irgendwelche Sonderzeichen o.Ä.? Wenn ISO-Encodierung genutzt wird kanns durchaus zum ein oder anderen Fehler kommen, nimm da lieber UTF-8, ist universeller.