Maximilian Rath: HTTP 405 - Ressource nicht zugelassen

//'.$username.'.html
<form action="mail.php" method="post">
Wie gut kennst du '.$username.'? Mach mit! Und beweise '.$username.', dass du ihn sehr gut kennst!
<br>
<br>
<dl>
<dt>Wie lautet mein Nachname?</dt>
<dd><input type="text" name="nachname" /></dd>
<dt>Welche Farben haben meine Augen?</dt>
<dd><input type="text" name="augenfarbe" /></dd>
<dt>Was denke ich &uuml;ber dich?</dt>
<dd><input type="text" name="Was_denke_ich_uber_dich" /></dd>
<dt>Mein zweiter Vorname?</dt>
<dd><input type="text" name="2tername" /></dd>
<dt>Habe ich eine/n Freund/in?</dt>
<dd><input type="text" name="freund_in" /></dd>
<dt>Wann habe ich Geburtstag?</dt>
<dd><input type="text" name="geburtstag" /></dd>
<dt>Habe ich Haustiere?</dt>
<dd><input type="text" name="haustiere" /></dd>
<dt>Habe ich Geschwister?</dt>
<dd><input type="text" name="geschwister" /></dd>
<dt>War ich schoneinmal in dich verliebt?</dt>
<dd><input type="text" name="verliebt_in_dich" /></dd>
<dt>Was denkst du hatte ich schoneinmal Sex?</dt>
<dd><input type="text" name="sex" /></dd>
<dt>In welchem Verh&auml;ltniss stehst du zu mir?</dt>
<dd><input type="text" name="verhaeltniss" /></dd>
<dt>Dein Name:</dt>
<dd><input type="text" name="name_versender" /></dd>
<dt>&nbsp;</dt>
<dd><input type="hidden" name="email" value="'.$email.'" /></dd>
<dt>&nbsp;</dt>
<dd><input type="hidden" name="username" value="'.$username.'" /></dd>
</dl>

<input type="submit" value="Senden" />
<input type="reset" value="Zur&uuml;cksetzen" />
</form>

//mail.php
<?php
$username = $_POST['username']
$email = $_POST['email'];
$absendername = $_POST['versender_name'];
$betreff = "Post von Wie-Gut-Kennst-Du-Mich.de";

$nachname = $_POST['nachname'];
$augenfarbe = $_POST['augenfarbe'];
$was_denke_ich_ueber_dich = $_POST['Was_denke_ich_uber_dich'];
$zweiter_name = $_POST['2tername'];
$hatte_ich_schon_einen_freund = $_POST['freund'];
$geburtstag = $_POST['geburtstag'];
$haustiere = $_POST['haustiere'];
$geschwister = $_POST['geschwister'];
$verliebt_in_dich = $_POST['verliebt_in_dich'];
$sex = $_POST['sex'];
$verhaeltniss = $_POST['verhaeltniss'];

$mailtext = "

Hallo '.$username.'!<br>$absendername hat sich getestet und hier sind die Ergebnisse:
Wie lautet mein Nachname?<br>
$nachname
Welche Farben haben meine Augen?<br>
$augenfarbe
Was denke ich über dich? <br>
$was_denke_ich_ueber_dich
Mein zweiter Vorname? <br>
$zweiter_name
Habe ich einen Freund? <br>
$hatte_ich_schon_einen_freund
Wann habe ich Geburtstag? <br>
$geburtstag
Habe ich Haustiere? <br>
$haustiere
Habe ich Geschwister? <br>
$geschwister
War ich schoneinmal in dich verliebt? <br>
$verliebt_in_dich
Was denkst du hatte ich schoneinmal Sex? <br>
$sex
In welchem Verhältniss stehst du zu mir? <br>
$verhaeltniss

";
if(empty($name) || empty($email) || empty($text))
{
header("Location: danke_fehler.html");
}
else
{
mail("$email", "$betreff", "$mailtext", "From: $absendername");
header("Location: danke.html");
}
?>

WAS IST DARAN SO FALSCH, DASS ES NICHT GEHT?

  1. Hi Maximilian,

    WAS IST DARAN SO FALSCH, DASS ES NICHT GEHT?

    Lies dir bitte in der Charte die Tipps für Fragende durch - dann kannst du in diesem Thread noch mal eine Antwort schreiben in der du die dort genannten Punkte beachtest, bitte achte vor allem auf eine _genaue_ Problembeschreibung und hör auf zu schreien.

    Dann können wir dir weiterhelfen.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Patch zur Verwendung von PATHINFO in JLog
    Erst wenn der letzte FTP-Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass Geld nicht von alleine programmiert.
  2. Hallo,

    //'.$username.'.html
    [viel, viel Code]

    //mail.php
    <?php
    [viel, viel Code]
    if(empty($name) || empty($email) || empty($text))
    {
    header("Location: danke_fehler.html");

    Falsch: Im Location-Header muss eine vollständige, absolute URL stehen.

    mail("$email", "$betreff", "$mailtext", "From: $absendername");

    Unsinn: Warum stellst du die Variablen $email, $betreff, $mailtext nochmal in Anführungszeichen?
    Gefährlich: Nie, nie, nie darfst du email-Adressen, die dein Script als Parameter bekommt, einfach so weiterverwenden. Das ergibt eine 1a-Spamschleuder!

    header("Location: danke.html");

    Siehe oben.

    WAS IST DARAN SO FALSCH, DASS ES NICHT GEHT?

    Wie wäre es mit einer Problembeschreibung?
    Was passiert wirklich, welche Fehlermeldungen werden ausgegeben, was hast du schon versucht, um das Problem einzugrenzen? Und schrei hier bitte nicht so rum.

    Schönes Wochenende noch,
     Martin

    PS: Die HTTP-Statusmeldung 405, die du im Betreff erwähnst, deutet stark darauf hin, dass dein Provider kein PHP unterstützt. Scripte werden daher nicht ausgeführt, und POST-Requests wären sinnlos, werden also gar nicht akzeptiert.

    --
    Husten kann böse Folgen haben.
    Besonders im Kleiderschrank.
  3. hallo,

    mail("$email", "$betreff", "$mailtext", "From: $absendername");

    Damit rufst du eine Funktion mail() auf, die es aber in deinem Programm nicht gibt. error_reporting(E_ALL); sollte dir etwas mehr Auskunft geben.

    WAS IST DARAN SO FALSCH, DASS ES NICHT GEHT?

    Die Großbuchstaben sind falsch.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi Christoph,

      WAS IST DARAN SO FALSCH, DASS ES NICHT GEHT?

      Die Großbuchstaben sind falsch.

      nicht alle, ein einziger ist korrekt, ein gallischer Dorfbuchstabe sozusagen.

      Schönen Sonntag noch!
      O'Brien

      --
      Frank und Buster: "Heya, wir sind hier um zu helfen!"
    2. hi,

      mail("$email", "$betreff", "$mailtext", "From: $absendername");

      Damit rufst du eine Funktion mail() auf, die es aber in deinem Programm nicht gibt.

      Wenn wir mal von PHP ausgehen - nicht zuletzt auf Grund der verwendeten Dateinamen - wieso soll's dann kein mail() geben?

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. hallo,

        Wenn wir mal von PHP ausgehen [...] wieso soll's dann kein mail() geben?

        Die gibt es schon, aber in dem vorgestellten Script ist sie nicht vorhanden, weil das Script, wie Martin bereits dargelegt hat, wegen der falschen Location-Angabe abbrechen müßte.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. hi,

          Wenn wir mal von PHP ausgehen [...] wieso soll's dann kein mail() geben?

          Die gibt es schon, aber in dem vorgestellten Script ist sie nicht vorhanden, weil das Script, wie Martin bereits dargelegt hat, wegen der falschen Location-Angabe abbrechen müßte.

          Ungeachtet der Tatsache, dass ein HTTP Location Header per Definition einen vollständigen URL erfordert - "abbrechen" wird ein PHP-Script deswegen ganz bestimmt nicht, PHP hat keine Muße zu überprüfen, ob der Inhalt des Location-Headers (über PHPs eigene sprachsyntaktische Vorgaben hinaus) irgendeinen Sinn ergibt oder "korrekt" ist.
          Der Header wird an den Client gesendet, und ob der damit dann auch etwas anfangen kann oder nur die virtuelle Stirn runzelt, ist PHP vollkommen Wurscht.

          Damit rufst du eine Funktion mail() auf, die es aber in deinem Programm nicht gibt. error_reporting(E_ALL); sollte dir etwas mehr Auskunft geben.

          Selbst wenn wir die Aussage des ersten Satzes mal außer Acht lassen, bzw. entgegen der Realität als wahr annehmen würden:
          Was hätte dann das Error Reporting noch zu melden, wenn das Script wirklich - wie von dir anschließend behauptet - schon vorher abgebrochen wäre?

          Du hast dich auch schon mal besser aus objektiv falschen Aussagen herausgeredet - aber, das sei zugestanden, selten so phantasievoll.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }