php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-09-2015, 16:42
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard Cookies funktionieren nicht

Ich möchte mir die Cookie-Values ausgeben lassen, bekomme aber stets die Notiz:
Notice: Undefined index: cookiedateiname in C:\xampp\htdocs\Mehr.php on line 36

Notice: Undefined index: cookiezeilen in C:\xampp\htdocs\Mehr.php on line 37

Hier ist der Code:

<!DOCTYPE html>
<html>

<header> <title>Textausgabe</title> </header>

<body>

<form action="Mehr.php" method="post">
<?php
$count = 0;
if(!isset($_COOKIE["cookiezeilen"])){
$count2 = 0;
$zeilenMax = 10;
} else{
$count2 = $_COOKIE["cookiezeilen"];
$zeilenMax = $count2 + 10;
}

$file = $_POST['dateiname'];

$file_handle = fopen($file, 'r');

for($count; $count < $zeilenMax; $count++)
{
$line = fgets($file_handle);
echo $line . "<br>";
$count2++;

}

fclose($file_handle);


setcookie("cookiedateiname",$_POST['dateiname'],time() + 30);
setcookie("cookiezeilen",$count2,time() + 30);
$cookie1 = $_COOKIE["cookiedateiname"];
$cookie2 = $_COOKIE["cookiezeilen"];
echo "Dateiname: " . $cookie1 . "<br>";
echo "Zeilenanzahl: " . $cookie2 . "<br>";

?>


<input type="submit" value="Mehr">


</form>

<form action="Start.php" method="post">
<input type="submit" value="Ende">
</form>

</body>


</html>

Gestartet wird es mit Firefox über XAMPP Apache.
Mit Zitat antworten
  #2 (permalink)  
Alt 07-09-2015, 20:47
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Dann gibts die Cookie-Werte wohl nicht.

Du solltest übrigens das EVA-Prinzip einhalten und Programmlogik nicht mit HTML-Ausgabe vermischen. Befehle wie setcookie() funktionieren nur vor der HTML-Ausgabe.
Mit Zitat antworten
  #3 (permalink)  
Alt 08-09-2015, 12:48
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Der dateiname existiert in der Start.php, die davor aufgerufen wird:

<form action="Mehr.php" method="post">

<input type="text" name="dateiname" placeholder="Dateiname">
<input type="submit" value="Generieren">

</form>
Mit Zitat antworten
  #4 (permalink)  
Alt 08-09-2015, 13:44
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Die Meldung bezieht sich aber nicht auf einen Index "dateiname", sondern "cookiedateiname".

Du versuchst hier einfach auf Einträge in $_COOKIE zuzugreifen, ohne vorher zu prüfen, ob diese denn existieren. Weiter oben machst du es ja noch korrekt, indem du mit isset vorher prüfst – warum dann weiter unten nicht genauso?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 08-09-2015, 13:50
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Habe es jetzt überprüft mit:

if(isset($_COOKIE['cookiedateiname'])){
echo "Cookie akzeptiert";
} else {
echo "Cookie nicht akzeptiert";
}

Ausgegeben wird "Cookie nicht akzeptiert.
Mit Zitat antworten
  #6 (permalink)  
Alt 08-09-2015, 14:39
SysOp
 Registrierter Benutzer
Links : Onlinestatus : SysOp ist offline
Registriert seit: May 2005
Beiträge: 69
SysOp befindet sich auf einem aufstrebenden Ast
Standard

Schon mal an print_r($_COOKIE); gedacht?
Mit Zitat antworten
  #7 (permalink)  
Alt 08-09-2015, 16:07
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Das gibt lediglich "Array ()" aus.
Mit Zitat antworten
  #8 (permalink)  
Alt 08-09-2015, 16:16
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Dass gerade eben erste gesetzte Cookies aber erst mit dem nächsten Scriptaufruf in $_COOKIE verfügbar sind, hast du aber berücksichtigt?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 08-09-2015, 16:20
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Bin leider noch recht neu bei PHP.

Mein script sieht momentan so aus:


<!DOCTYPE html>
<html>
<?php
$cookie = $_POST['dateiname'];
setcookie("cookiedateiname", $cookie, time() + 30, '/');
setcookie("cookiezeilen", 10, time() + 30, '/');
$count = 0;
if(!isset($_COOKIE["cookiezeilen"])){
$count2 = 0;
$zeilenMax = 10;
} else{
$count2 = $_COOKIE["cookiezeilen"];
$zeilenMax = $count2 + 10;
}

if(isset($_COOKIE['cookiedateiname'])){
echo "Cookie akzeptiert";
} else {
echo "Cookie nicht akzeptiert";
}
print_r($_COOKIE);
?>
<header>
Mit Zitat antworten
  #10 (permalink)  
Alt 08-09-2015, 16:52
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Ich muss Text in ein Feld eingeben und diesen als Cookie speichern. Wenn ich versuche ihn in der ersten PHP-File anzulegen bekommen ich undefined index, wenn ich $_POST benutze.
Und in der zweiten File (in der ich die Cookies auslesen möchte) kann ich sie nicht anlegen, da sie erst mit dem nächsten Skriptaufruf wirksam werden.

Das ist so ziemlich mein Dilemma.
Mit Zitat antworten
  #11 (permalink)  
Alt 08-09-2015, 20:52
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.604
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Befasse dich bitte mit den Grundlagen von HTTP. Das ist eigentlich kein PHP-Problem, sondern ein HTTP-Problem.

1. Client schickt einen HTTP-Request an den Webserver.
2. Das PHP-Script wird vom Webserver ausgeführt. Hier kannst du Cookie-Werte im Header des HTTP-Response setzen.
3. Server schickt HTTP-Response an Client.

4. Client schickt einen HTTP-Request mit den Cookie-Werten an den Webserver.
5. Das PHP-Script wird vom Webserver ausgeführt. Erst an dieser Stelle kann PHP die Cookie-Werte vom HTTP-Request auswerten und sie deinem Script zur Verfügung stellen.

Bitte beachte nochmal meinen Hinweis, dass vor setcookie() und jeder anderer PHP-Funktion, die etwas im HTTP-Header setzt, keine HTML-Ausgabe stattfinden darf, was es bei dir aber tut. setcookie() wird bei dir also so nicht funktioneren, außer beim Server ist zufällig Output-Buffering aktiv, worauf man sich aber nicht verlassen sollte und was so oder so nur ein schmutziger Hack wäre.
Mit Zitat antworten
  #12 (permalink)  
Alt 08-09-2015, 21:15
Ansreng
 Registrierter Benutzer
Links : Onlinestatus : Ansreng ist offline
Registriert seit: Sep 2015
Beiträge: 8
Ansreng befindet sich auf einem aufstrebenden Ast
Standard

Ich werde es jetzt damit im Hinterkopf weiter versuchen.

Trotzdem vielen Dank für die Hilfe!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Links funktionieren nicht!? ^^ nichtsooft HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 0 04-10-2012 16:36
Frameset funktionieren nicht!! bobderplanet HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 22-05-2006 14:23
Gästebücher funktionieren nicht Yung Wun Webmaster 13 17-04-2005 15:23
Cookies funktionieren nicht Rankin PHP Developer Forum 3 07-04-2004 17:13
seitenzahlen funktionieren nicht.. WhiZZler SQL / Datenbanken 10 09-06-2003 14:51

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 Uhr.