Immer diese Cookies
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
all
ausgabe
browser
code
date
email
gast
jahr
logik
menge
monat
ordern
ort
problem
session
set
tag
text
update
-
Htag/all">allo Zusammen,
Ich stehe wieder vor der verzweiflung. Nie lassen sich Cookies erstellen. Wisst ihr was ich falsch mache?
<?php session_start(); ?> <!DOCTYPE HTML> <!-- Arcana 2.1 by HTML5 UP html5up.net | @n33co Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) --> <html> <head> <title>MarvinKleinMusic - Login</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <link rel="shortcut icon" type="image" href="/images/favicon.ico" /> <link href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,300italic,700" rel="stylesheet" /> <script src="/js/jquery.min.js"></script> <script src="/js/config.js"></script> <script src="/js/skel.min.js"></script> <script src="/js/skel-panels.min.js"></script> <noscript> <link rel="stylesheet" href="/css/skel-noscript.css" /> <link rel="stylesheet" href="/css/style.css" /> <link rel="stylesheet" href="/css/style-desktop.css" /> </noscript> <!--[if lte IE 9]><link rel="stylesheet" href="css/style-ie9.css" /><![endif]--> <!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]--> <!-- Apple touch icons --> <link rel="apple-touch-icon" sizes="72x72" href="/images/icons/72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/images/icons/76x76.png"> <link rel="apple-touch-icon" sizes="120x120" href="/images/icons/120x120.png"> <link rel="apple-touch-icon" sizes="152x152" href="/images/icons/152x152.png"> <link rel="stylesheet" href="/css/form.css" /> </head> <body> <!-- Header --> <div id="header-wrapper"> <header class="container" id="site-header"> <div class="row"> <div class="12u"> <div id="logo"> <h1>Community</h1> </div> <nav id="nav"> <ul> <li class="current_page_item"><a href="/index.php">Home</a></li> <li><a href="#">Board</a></li> </ul> </nav> </div> </div> </header> </div> <!-- Main --> <div id="main-wrapper"> <div class="container"> <div class="row"> <div class="12u"> <?php if(isset($_POST['submit_login'])){ // Random id 20 chars mt_srand((double) microtime() * 1000000); // chars $set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIKLMNPQRSTUVWXYZ123456789"; $pin = ""; //generate 20 char code for ($n=1;$n<=20;$n++) $pin .= $set[mt_rand(0,(strlen($set)-1))]; @$db = mysqli_connect("mysql.lima-city.de", "USER", "pw", "db_zahl_4"); if($db == false){ echo "Database is unavailable."; }else{ // Get data from form $login_email = mysqli_real_escape_string($db, $_POST['login_email']); $login_password = mysqli_real_escape_string($db, hash("sha512", $_POST['login_password'])); $login_autologin = mysqli_real_escape_string($db, $_POST['login_autologin']); $check_data = $db->query("SELECT * FROM users WHERE email='$login_email' AND password='$login_password'"); $check_data_num = $check_data->num_rows; //start session if $check_data_num = 1 if($check_data_num == 1){ if($login_autologin == 1){ setcookie("autologin", "usr=" . $login_email . "&cookie_id=" . $pin, time() + 3600); } $ip = $_SERVER['REMOTE_ADDR']; $date = date("d.m.y") . " - " . date("H:i:s"); $update_user_table = $db->query("UPDATE users SET ip='$ip', last_login='$date', cookie_id='$pin' WHERE email='$login_email'"); $_SESSION['username'] = $login_email; } } } else{ echo"There was a problem by submit the data."; } ?> </div> </div> </div> </div> <!-- Footer --> <div id="footer-wrapper"> <footer class="container" id="site-footer"> <div class="row"> <div class="3u"> <section class="first"> <h2>Information</h2> <ul class="link-list"> <li><a href="#">Contact</a></li> <li><a href="#">FAQ & Privacy Policy</a></li> </ul> </section> </div> <div class="3u"> <section> <h2>Social Media</h2> <ul class="link-list"> <li><a href="http://bit.ly/marvinkleinmusic">Facebook</a></li> <li><a href="https://twitter.com/MagicPianoApp">Twitter</a></li> <li><a href="http://instagram.com/marvinkleinmusic">Instagram</a></li> <li><a href="https://plus.google.com/+MarvinKleinMusic/posts">Google+</a></li> <li><a href="http://ask.fm/marvinkleinmusic ">ask.fm</a></li> </ul> </section> </div> <div class="3u"> <section> <h2>YouTube friends</h2> <ul class="link-list"> <li><a href="http://youtube.com/smule">Smule</a></li> <li><a href="http://youtube.com/connormartin88">Con Bro Chill</a></li> <li><a href="http://youtube.com/TheDexterGFX">Feres MicClub</a></li> <li><a href="http://youtube.com/magicpianopro">MagicPianoPro</a></li> </ul> </section> </div> <div class="3u"> <section class="last"> <h2>Partners</h2> <ul class="link-list"> <li><a href="http://smule.com" alt="Smule">Smule</a></li> <li><a href="https://www.facebook.com/microsoft.tech.club.isims">Microsoft SFAX</a></li> <li><a href="https://www.facebook.com/SINGTOPIA">Singtopia</a></li> <br /> <h2>Guest counter:</h2> <?php @$db = mysqli_connect("mysql.lima-city.de", "USER", "pw", "db_zahl_1"); /// G崴ez婬er ////Variabeln $tag = date("j"); $monat = date("m"); $jahr = date("Y"); $ort = $_SERVER["REQUEST_URI"]; $woher = $_SERVER["HTTP_REFERER"]; $browser = $_SERVER["HTTP_USER_AGENT"]; $timenow = mktime(0,0,0,$monat,$tag,$jahr); $ip = $_SERVER['REMOTE_ADDR']; ///Abfrage ob Neuer Gast & L��ung der Alten $counter_del = $db->query("SELECT * FROM counter WHERE `timed` < '" . $timenow . "'"); while($del = $counter_del->fetch_object()){ $db->query("DELETE FROM counter WHERE `id`='" . $del->id . "'"); } /////Eintragung neuer G崴e $counter_new = $db->query("SELECT * FROM counter WHERE ip = '$ip'"); $menge = $counter_new->num_rows; $timenow = time(); if($menge == "0"){ $db->query("INSERT INTO counter (ip,timed,username,ort,woher,browser) VALUES ('$ip','$timenow','$username','$ort','$woher','$browser')"); } elseif($menge == "1"){ $db->query("UPDATE counter SET timed='$timenow',ort='$ort' WHERE ip='$ip'"); } ////Ausgabe der Datenbankwerte $counter_stats = $db->query("SELECT * FROM counter"); $heute = $counter_stats->num_rows; $gesammt_sql = $db->query("SELECT * FROM counter ORDER BY id DESC"); $gesammt = $gesammt_sql->fetch_object(); ////Ausgabe von User die Online sind $time = time(); $zeit = $time-900; $sql_online = $db->query("SELECT * FROM counter WHERE timed > '$zeit'"); $online = $sql_online->num_rows; mysqli_close($db); ?> <ul class="link-list"> <li><?php echo"today: $heute | total: $gesammt->id | online: $online ";?></li> </ul> </ul> </section> </div> </div> <div class="row"> <div class="12u"> <div class="divider"></div> </div> </div> <div class="row"> <div class="12u"> <div id="copyright"> © 2014 - 2015 MarvinKleinMusic. All rights reserved. </div> </div> </div> </footer> </div> </body> </html>
Selbst wenn ich die Cookiezeile in die allererste Zeile stecke geschieht nichts.
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Cookies können nur gesetzt werden, wenn davor noch überhaupt keine Ausgabe (auch kein Leerzeichen oder Zeilenumbruch) stattgefunden hat.
Versuch mal dein Cookie an der Stelle zu setzen, wo du auch die Session startest, und es wird funktionieren. Falls es dann immer noch nicht funktioniert hast du eventuell davor (vor dem
) ein Leerzeichen / … oder einen UTF-8-BOM.<?php
-
Utf-8 Ohne Bom war die Lösung.
Jetzt stellt sich mir jedoch die Frage, wie ich die Usereingaben (email) dareinbekomme. Da diese ja auch noch erst escaped werden muss. Und das Cookie nur dann erstellt werden soll, wenn die Checkbox gesetzt ist.
Ich habe es mit einer Funktion probiert:
function cookie($mail, $cookie_id){ setcookie("autologin", "usr=" . $mail . "&cookie_id=" . $cookie_id, time() + 3600); }
Und später wird dann bei einer if-abfrage folgendes aufgerufen:
cookie($login_email, $pin);
Leider ohne Erfolg.
Hast du vielleicht noch eine Idee?
LG -
Am einfachsten wäre es, wenn du zuerst all deine Logik ausführst und die Ausgabe erst ganz am Ende erfolgt, dann hast du das Problem nicht. PHP und HTML mischen ergibt genau solche Probleme wie du jetzt hast
Also z.B. so:<?php // Logik, mit setcookie usw $text = date('d.m.Y'); // Ausgabe echo(<<< ETX <html><body> Hallo, deine IP lautet {$_SERVER['REMOTE_ADDR']}. Ich sage dir: <b>$text</b>. </body></html> ETX ); exit();
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage