ilch Forum » Allgemein » HTML, PHP, SQL,... » cookie setzten

Geschlossen
  1. #1
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    hi all

    habe zeit gestern angefangen php zu lernen das habe ich bis jetzt geschafft
    <?
    $fehler = "";
    $name = $_POST['name'];
    $adresse = $_POST['mail'];
    $nachricht = $_POST['nachricht'];
    $nz = chr(13); chr(10);
    if (empty($name)) $fehler.= "<li>Sie haben kein Name angegeben</li>";
    if (empty($adresse)) $fehler.= "<li>Sie haben keine adresse angegeben</li>";
    if (empty($nachricht)) $fehler .= "<li>Sie haben keine nachricht angegeben</li>" ;
    if (empty($fehler)){
    $an = "Jason-Forhie@gmx.de";
    $betreff = "Nachricht von $name";
    $from = "From:Kontaktformular:<goa6>";
    $datum = "Datum: ".date("j.n.Y").$nz;
    $zeit = "Zeit: ".date("H:i").$nz;
    $von = "Von:  ".$name." <".$adresse.">".$nz;
    $linie = "----------------------".$nz;
    $text = $datum. $zeit. $von. $linie. $nachricht;
    $titel = "Ihre nachricht wurde versandt";
    mail($an, $betreff, $text, $from);
    } 
    else{
    $title = "Nachrcht konnte nicht abgesendet werden";
    }
    ?>
    
    <div style="width:100px; style:float:left;">Ihr Name</div><input type="text" name="name"><br>
    <div style="width:100px; style:float:left;">Ihre Mailadresse</div><input type="text" name="mail"><br>
    <div style="width:100px; style:float:left;">Ihre Nachricht </div><textarea cols="15" rows="15" name="nachricht"></textarea><br>
    <div style="width:100px; style:float:left;">&nbsp;</div><input type="submit" value="Absenden">
    <? 
    if(empty($fehler)){
    $text = strip_tags($text);
    $text = htmlentities($text);
    $text = str-replace($nz);
    echo "<p>Ihre nachricht wurde verschickt</p>";
    echo "<p>$text</p>";
    }
    else
    {
    echo "<p>Ihre nachricht konnte leider nicht verschickt werden weil";
    echo "<ul>$fehler</ul>";
    echo "</p>";
    }
    
    ?>


    jetzt ich will ich einen cookie stezten was verhindert das die mail mehrfach abgesendet wir das wollte ich so machen
    if(empty($fehler)){
    $text = strip_tags($text);
    $text = htmlentities($text);
    $cookie = $_COOKIE['absenden'];
    $text = str-replace($nz);
    setcookie(absenden, ja); 
    echo "<p>Ihre nachricht wurde verschickt</p>";
    echo "<p>$text</p>";
    }
    else
    {
    echo "<p>Ihre nachricht konnte leider nicht verschickt werden weil";
    echo "<ul>$fehler</ul>";
    echo "</p>";
    }


    nja falls euch noch mehr fehler auffallen bitte posten
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Du musst das Cookie ja erstmal setzen, das geht mit setcookie(), danach könntest du es über $_COOKIE['name'] abfragen, höchstwahrscheinlich in einem if.

    $nz = chr(13).chr(10);
    Zeile 6 soll bestimmt so aussehen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    ja genau also so müsste des gehen
    setcookie(absenden, ja);
    und dan halt noch eine variable setzten
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Hey, -GoA][-Sniper!

    Für den Anfang gar net so schlecht.
    Aber
    <?php
    // nicht mit <? anfangen immer <?php nutzen
    if( isset( $_POST['submit'] ) ){  // Abfrage, ob Varibale submit gesetzt ist, also ob auf den Button gedrückt wurde
    .....
    $nz = chr(13) . chr(10); // nicht mit ; Verbinden sondern mit einem Punkt .
    // obwohl auch  \n   als Zeilenumbruch geht
    ...
    else{ 
    $title = "Nachrcht konnte nicht abgesendet werden"; 
    } 
    
    } // Ende -> Button gedrückt wurde
    ?> 
    ...
    <div style="width:100px; style:float:left;">&nbsp;</div><input name="submit" type="submit" value="Absenden"> // name="submit" -> muss sein, wegen der Abfrage oben mit isset()
    <?php
    if( isset( $_POST['submit'] ) ){ // Button gedrückt, weil sonst der TExt ausgegeben wird
    .....
    $text = str-replace($nz); // was willst du machen? $nz durch <br> ersetzen???
    $text = str_replace($nz, "<br>", $text); // $nz ersetzen mit <br> im String $text


    Sonst alles ok, somit ist dann gewährleistet das wenn der User auf den Button klickt, erst dann eine Aktion erfolgt. Und doppelmails durch Cookies sperren lassen ist keine gute Lösung.

    Tipp: Verwende size und maxlenght in Inputfelder, mit size kannt du bestimmen, wie breit das Feld ist und mit maxlenght kannst du bestimmen, weviele Zeichen der User schreiben darf. Nur aus Sicherheitsgründen für Namen wie
    asdasfjksdvjidihjruehggdfgdfgdf gfd gdfg dfgdfgew v bcvnbfvnjncxyvjkneafjoisoyxhcjhwieoarhgfoxynvc oasnofgvosyndvcwanoerfosjycn dnfg e2ru93 m


    zwinker

    Und zum Schluß wäre wohl noch eine Überprüfung der E-Mail wichtig, ob es überhaupt eine gültige ( xxx@xxx.xx ) ist.

    Mit böhsen Grüßen
    BöhserDavid
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    ok danke das du mir so gut geholfen hast aber was kann man sonst noch machen damit man eine e-mail nur ein mal abschicken kann und nicht wen man die seite ausversehen neu laden tuht wieder eine e-mail bekommt
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Zum verhindern von versehentlichen Doppelsenden, kann man natürlich auch ein Cookie verwenden, allerdings reicht auch schon ein Weiterleiten nach Auswerten des Formulars aus, um nicht bei Aktualisierung der Seite nochmals eine Mail zu schicken.
    Dazu könntest du z.B. header('Location: ADRESSE'); verwenden, um das zu verwenden, darf aber vorher noch nix ausgegeben worden sein.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    <?php
    if( isset($_POST['submit']) AND $absendermail == ''){
    $absendermail = "total egal";
    ......


    $absendermail wird nach dem Absenden auf irgendeinen Wert gesetzt und wenn der User F5 drückt, wird gefragt ob $absendermail NIX ist.

    Es würde auch $_SESSION['absender'] gehen, aber nur als Notlösung.
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    ________________________

    habe dan gleich noch eine andere frage ich habe des mal gesehen das wenn man eine select felld angeklickt hat das dan links daneben ein input feld gekommen ist mit isset habe ich es mal versucht ging aber leider nicht kann des vil auch sein das man des mit java macht??


    edit: Danke boehser david habe es erst geshen nach dem mein post schon agesendet war


    Zuletzt modifiziert von -GoA][-Sniper am 22.04.2008 - 12:30:23
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    andere frage du hast gesagt ich sollte noch des mit der e-mail machen also denke mal des geht da so eine variabel setzten und dan die zeichen die erlaubt sind dran aber es geht irgenwie nicht richtig


    Zuletzt modifiziert von -GoA][-Sniper am 22.04.2008 - 12:55:16
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten