Cookies setzen und auslesen?

  • PHP

  • pHaRyNx
  • 1448 Aufrufe 14 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Cookies setzen und auslesen?

    Hallo!
    Ich will zwecks Verhinderung einer doppelten anmeldung einen cookie setzen, der die IP-Sperre ergänzen soll. Allerdings klappt es nicht:

    folgender code (aus einer if-else kombinantion), der zuerst einen vorhandenen Cookie abfragt und wenn nicht vorhanden einen setzt:

    else if ($mycookie56826 == reg)
    {
    echo "Du bist bereits registriert. Sorry, nur eine Anmeldung möglich!<br>\nSolltest du Probleme bezüglich deiner Anmeldung haben, wende dich an pHaRyNx@freenet.de";
    }
    else
    {
    function tage ($anzahl) {
    $sekunden = time()+ 3600 * 24 * $anzahl;
    return $sekunden;
    }
    SetCookie("mycookie56826","reg",tage(30),"/",".de");
  • probier's mal so!
    in deiner variante, setzt du immer ein cookie, ganz egal, ob schon vorhanden oder nicht!
    hilfreich waere auch eine fehlermeldung oder ein andere hinweis! Allerdings klappt es nicht is ein bisserl wenig info fuer user, die dir helfen wollen!!

    PHP-Quellcode

    1. <?php
    2. function tage ($anzahl) {
    3. $sekunden = time()+ 3600 * 24 * $anzahl;
    4. return $sekunden;
    5. }
    6. else if ($mycookie56826 == 'reg') {
    7. echo "Du bist bereits registriert. Sorry, nur eine Anmeldung möglich!<br>\nSolltest du Probleme bezüglich deiner Anmeldung haben, wende dich an pHaRyNx@freenet.de";
    8. } else {
    9. SetCookie('mycookie56826', 'reg ', tage(30), '/', '.de');
    10. }
    11. ?>
    Alles anzeigen


    ceeyaa.MeX
  • okok, das genau problem ist folgendes:
    ich bekomme keinen cookie rein, es wird kein neuer cookie erstellt, obwohl der explorer schon auf alle cookies annehmen steht!!!!!
    es müsste eigentlich ein cookie namens computername@mycookie56826.txt, oda ?
    die 2. methode mit dem auslesen bringt mich also auch nicht weiter!
    ich blick da echt nicht durch!
    mfg pHaRyNx
  • teste mal den code!
    beim ersten aufruf sollte ein cookie testCookie mit dem wert 1 gesetzt werden!
    bei jedem weiteren aufruf wird der wert fuer testCookie um eins erhoeht!

    PHP-Quellcode

    1. <?php
    2. if (isset($_COOKIE['testCookie'])) {
    3. setcookie('testCookie', $_COOKIE['testCookie']+1, time()+3600);
    4. echo 'Cookie value: '.$_COOKIE['testCookie'];
    5. } else {
    6. echo 'Setzte Cookie mit wert "1"';
    7. setcookie('testCookie', 1, time()+3600);
    8. } // END ifelse
    9. ?>


    es sollte dir jetzt auch keine allzugrossen muehen machen den code fuer deine beduerfnisse anzupassen!!

    ceeyaa.MeX
  • ...trying :) aha, jetzt hab ich schonmal nen cookie! n1....
    @BloodVortex: ist etwas umständlich, aber der rest klappt (sind noch andere dateien betroffen, aber das ist die mit dem code!)
    hat jemand vielleicht noch so ne IP sperre in php, die klappt, die ich habe, klappen nicht!

    <?php
    $vorna = $_POST['vorna'];
    $nick = $_POST['nick'];
    $street = $_POST['street'];
    $ort = $_POST['ort'];
    $email = $_POST['email'];
    $sitz = $_POST['sitz'];
    $datum = date("d.m.Y");
    $zeit = date("H:i");

    if(($email == "") || ($vorna == "") || ($nick == "") || ($street == "") || ($ort == ""))
    {
    echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
    }
    else if ($mycookie56826 == reg)
    {
    echo "Du bist bereits registriert. Sorry, nur eine Anmeldung möglich!<br>\nSolltest du Probleme bezüglich deiner Anmeldung haben, wende dich an pHaRyNx@freenet.de";
    }
    else
    {
    function tage ($anzahl) {
    $sekunden = time()+ 3600 * 24 * $anzahl;
    return $sekunden;
    }
    SetCookie("mycookie56826","reg",tage(30),"/",".de");


    switch($sitz)
    {
    case "01":
    $zhtmla1 = fopen("platz/01.txt","w");
    fwrite($zhtmla1, "//");
    fclose($zhtmla1);
    break;
    case "02":
    $zhtmla2 = fopen("platz/02.txt","w");
    fwrite($zhtmla2, "//");
    fclose($zhtmla2);
    break;
    case "03":
    $zhtmla3 = fopen("platz/03.txt","w");
    fwrite($zhtmla3, "//");
    fclose($zhtmla3);
    break;
    case "04":
    $zhtmla4 = fopen("platz/04.txt","w");
    fwrite($zhtmla4, "//");
    fclose($zhtmla4);
    break;
    case "05":
    $zhtmla5 = fopen("platz/05.txt","w");
    fwrite($zhtmla5, "//");
    fclose($zhtmla5);
    break;
    case "06":
    $zhtmla6 = fopen("platz/06.txt","w");
    fwrite($zhtmla6, "//");
    fclose($zhtmla6);
    break;
    case "07":
    $zhtmla7 = fopen("platz/07.txt","w");
    fwrite($zhtmla7, "//");
    fclose($zhtmla7);
    break;
    case "08":
    $zhtmla8 = fopen("platz/08.txt","w");
    fwrite($zhtmla8, "//");
    fclose($zhtmla8);
    break;
    case "09":
    $zhtmla9 = fopen("platz/09.txt","w");
    fwrite($zhtmla9, "//");
    fclose($zhtmla9);
    break;
    case "10":
    $zhtmla10 = fopen("platz/10.txt","w");
    fwrite($zhtmla10, "//");
    fclose($zhtmla10);
    break;
    case "11":
    $zhtmla11 = fopen("platz/11.txt","w");
    fwrite($zhtmla11, "//");
    fclose($zhtmla11);
    break;
    case "12":
    $zhtmla12 = fopen("platz/12.txt","w");
    fwrite($zhtmla12, "//");
    fclose($zhtmla12);
    break;
    case "13":
    $zhtmla13 = fopen("platz/13.txt","w");
    fwrite($zhtmla13, "//");
    fclose($zhtmla13);
    break;
    case "14":
    $zhtmla14 = fopen("platz/14.txt","w");
    fwrite($zhtmla14, "//");
    fclose($zhtmla14);
    break;
    case "15":
    $zhtmla15 = fopen("platz/15.txt","w");
    fwrite($zhtmla15, "//");
    fclose($zhtmla15);
    break;
    case "16":
    $zhtmla16 = fopen("platz/16.txt","w");
    fwrite($zhtmla16, "//");
    fclose($zhtmla16);
    break;
    case "17":
    $zhtmla17 = fopen("platz/17.txt","w");
    fwrite($zhtmla17, "//");
    fclose($zhtmla17);
    break;
    case "18":
    $zhtmla18 = fopen("platz/18.txt","w");
    fwrite($zhtmla18, "//");
    fclose($zhtmla18);
    break;
    case "19":
    $zhtmla19 = fopen("platz/19.txt","w");
    fwrite($zhtmla19, "//");
    fclose($zhtmla19);
    break;
    case "20":
    $zhtmla20 = fopen("platz/20.txt","w");
    fwrite($zhtmla20, "//");
    fclose($zhtmla20);
    break;
    case "21":
    $zhtmla21 = fopen("platz/21.txt","w");
    fwrite($zhtmla21, "//");
    fclose($zhtmla21);
    break;
    case "22":
    $zhtmla22 = fopen("platz/22.txt","w");
    fwrite($zhtmla22, "//");
    fclose($zhtmla22);
    break;
    case "23":
    $zhtmla23 = fopen("platz/23.txt","w");
    fwrite($zhtmla23, "//");
    fclose($zhtmla23);
    break;
    case "24":
    $zhtmla24 = fopen("platz/24.txt","w");
    fwrite($zhtmla24, "//");
    fclose($zhtmla24);
    break;
    case "25":
    $zhtmla25 = fopen("platz/25.txt","w");
    fwrite($zhtmla25, "//");
    fclose($zhtmla25);
    break;
    case "26":
    $zhtmla26 = fopen("platz/26.txt","w");
    fwrite($zhtmla26, "//");
    fclose($zhtmla26);
    break;
    case "27":
    $zhtmla27 = fopen("platz/27.txt","w");
    fwrite($zhtmla27, "//");
    fclose($zhtmla27);
    break;
    case "28":
    $zhtmla28 = fopen("platz/28.txt","w");
    fwrite($zhtmla28, "//");
    fclose($zhtmla28);
    break;
    default:
    $zhtmla = fopen("platz/xxx.txt","a");
    fwrite($zhtmla, "xxx<br>\n");
    }
    $aa = fopen ("reg/anmeldung.html","a");
    fwrite($aa, "$datum $zeit<br>\nName: $vorna aka $nick<br>\nAdresse: <br>\n$street<br>\nOrt: $ort<br>\nEmail:$email<br>\n<br><u>Platz: $sitz</u><br>\n");
    fwrite($aa, "-----------------------------------------------------------------------------------------------------------------------<br><br>\n\n");
    fclose($aa);

    echo "<body bgcolor=#000000 text=#ffffff>";
    echo "Danke $vorna, du hast dich erfolgreich angemeldet!<br><br>\n";
    echo "Datum: $datum Uhrzeit: $zeit <br>\n<table cellspacing=3>\n<tr>\n<td>\nName:</td>\n<td>$vorna aka $nick</td>\n</tr>\n<tr>\n<td>\nAdresse:</td>\n<td>$street</td></tr>\n<tr>\n<td></td>\n<td>$ort</td>\n</tr>\n<tr>\n<td>Email</td>\n<td>$email</td>\n</tr>\n<tr>td<u>Platz: $sitz</u></table><br><br>\n\n";
    echo "Solltest du noch Fragen haben, wende dich an pHaRyNx@freenet.de";
    echo "<br><br><br><br><br><hr><div align=right>&copy; 2005 by pHaRyNx</div>";
    }

    ?>

    thx leudz
    mfg pHaRyNx
  • Hmm... nutzt du eine MySQL Datenbank?

    habe erstmal ein paar kleine fehlerchlen beseitigt und das Ding etwas optimiert (mit empty() ;))

    PHP-Quellcode

    1. if(empty($email) || empty($vorna) || empty($nick) || empty($street) || empty($ort))
    2. {
    3. echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
    4. }
    5. elseif ($_COOKIE['mycookie56826'] == reg)
    6. {
    7. echo "Du bist bereits registriert. Sorry, nur eine Anmeldung möglich!<br>\nSolltest du Probleme bezüglich deiner Anmeldung haben, wende dich an pHaRyNx@freenet.de";
    8. }
    9. else {
    10. ...

    habs net getestet, müsste aber funtzen ;P
  • ich werd mir mal die verbesserungsvorschläge zu gemüte führen *lol*
    mysql benutze ich nicht, der code dient nur dazu, ein formular auszulesen und den inhalt in eine datei zu schreiben! immer schrittweise, mysql kommt demnächst mal!!!
    mfg pHaRyNx
  • Hallo!
    ich habe jetzt selbst was auf php-einfach.de gefunden!

    <?php
    //session_set_cookie_params(10800);
    session_start();

    $vorna = $_POST['vorna'];
    $nick = $_POST['nick'];
    $street = $_POST['street'];
    $ort = $_POST['ort'];
    $email = $_POST['email'];
    $tel = $_POST['telefon'];
    $sitz = $_POST['sitz'];
    $datum = date("d.m.Y");
    $zeit = date("H:i");
    $remote = getenv("REMOTE_ADDR");

    if(($email == "") || ($vorna == "") || ($nick == "") || ($street == "") || ($ort == ""))
    {
    echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
    }

    elseif(!session_is_registered('u_ip'))
    {
    session_register('u_ip');
    ...
    }

    was genau macht eigentlich der session cookie??? ich habe einfach mal die verfallszeit weggelassen, kann man die session cookies auch so löschen????

    thx 2 @ll pros in this thread
    mfg pHaRyNx
  • tse...
    haste meins überhaupt ausprobiert?
    es funtzt ;)
    da brauchste nicht mit sessions zuarbeiten, wenn du nicht mal weißt, wie die funktionieren ;)
    Hier noch mal der Code, wie ich ihn ausprobiert habe...

    PHP-Quellcode

    1. <?php
    2. $email = 'hallo';
    3. $nick = '34';
    4. $street = 'sd';
    5. $vorna = '23';
    6. $ort = ' ';
    7. if(empty($email) || empty($vorna) || empty($nick) || empty($street) || empty($ort)) echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
    8. elseif($_COOKIE['mycookie'] == 'reg') echo "Du bist bereits registriert. Sorry, nur eine Anmeldung möglich!<br>\nSolltest du Probleme bezüglich deiner Anmeldung haben, wende dich an pHaRyNx@freenet.de";
    9. else setcookie('mycookie','reg',time()+100);
    10. echo "<br> ok, alles gut ;)";
    11. ?>
    Alles anzeigen


    Aber na ja, musst du wissen, ob du deins nutzt, oder was von ner Seite^^"

    Gruß
    BloodVortex