Seite 1 von 1
Cookies und Titel auslesen
Verfasst: 01.12.2006 14:20
von Alves
Hi Gemeinde.
Ich wollte mich mal ein bisschen mit emienr HP beschäftige unhd wollte deshalb mal fragen,
1. Wie lese und setze ich Cookies?
2. Wie lesen ich den den Titel einer U>Rl aus, also zB
http://alves666.de?url=index
Wie macht man das mit PHP?
Verfasst: 01.12.2006 19:20
von MVXA
Als PHP interne Funktion würde ich
sagen http://www.php.net/manual/de/function.setcookie.php
Würde dir aber
empfehlen die Funktion von hansel at gretel dot com
zu benutzen, da die SetCookie Funktion von PHP angeblich zickt:
Code: Alles auswählen
function set_cookie_fix_domain($Name, $Value = '', $Expires = 0, $Path = '', $Domain = '', $Secure = false, $HTTPOnly = false)
{
if (!empty($Domain))
{
// Fix the domain to accept domains with and without 'www.'.
if (strtolower(substr($Domain, 0, 4)) == 'www.') $Domain = substr($Domain, 4);
$Domain = '.' . $Domain;
// Remove port information.
$Port = strpos($Domain, ':');
if ($Port !== false) $Domain = substr($Domain, 0, $Port);
}
header('Set-Cookie: ' . rawurlencode($Name) . '=' . rawurlencode($Value)
. (empty($Expires) ? '' : '; expires=' . gmdate('D, d-M-Y H:i:s', $Expires) . ' GMT')
. (empty($Path) ? '' : '; path=' . $Path)
. (empty($Domain) ? '' : '; domain=' . $Domain)
. (!$Secure ? '' : '; secure')
. (!$HTTPOnly ? '' : '; HttpOnly'), false);
}
Zum Lesen da:
http://www.php.net/manual/de/reserved.variables.php
bis zum Abschnitt "HTTP Cookies: $_COOKIE" runter scrollen.
Verfasst: 02.12.2006 14:31
von Alves
Muss ich da irgendwas beachten bei der zweiten Funtkion oder füge ich diesen Code nur am Anfang einer Seite ein und rufe die Funktion dann auf?
Und wie setze ich ein Cookie, das nicht ausläuft (welcher expirewert)?
Verfasst: 02.12.2006 16:10
von bluejoke
Soweit ich mich erinnere, müsste das der Expire-Wert 0 sein. Sollte aber im Hilfetext zu SetCookie stehen.
Verfasst: 03.12.2006 15:33
von Alves
Okay, cookiesetzen hab ich jetzt. Aber was ist mit Titel auslesen? Ich hab dieFuntkion parse_url() gefunden, weiß aber nicht ganz, wie ich sie benutze. Weißt jemand Rat?
Verfasst: 03.12.2006 18:25
von bluejoke
Ääähm, der Titel einer Seite ist bei meinem Verständnis das, was zwischen den <title>-Tags steht, höchstens noch der Dateiname.
Ich glaub aber, du meinst so Parameter die nach der eigtl. Adresse kommen. Das Auslesen davon funktioniert wie bei nem Formular (wobei man bei so einem die Daten auch unsichtbar mitschicken kann). In der PHP-Hilfe findest du also am ehesten bei den Formularen was.
Ganz kurz zusammengefasst:
Code: Alles auswählen
$url = $_GET['url']; // Schreibt hier in $url den Wert "index"
$url = $_REQUEST['url']; // Macht das selbe, funktioniert aber auch für Daten die per Post-Methode übergeben wurden.
Anschauen:
http://tut.php-q.net/ !!!
Wenn du das dann wirklich verwendest, solltest du noch mit
überprüfen, ob der Parameter überhaupt gesetzt wurde. Zusammen mit Error-Reporting auf all kannst du dann viel besser debuggen...
Verfasst: 03.12.2006 18:29
von Alves
Ich meine die Queries, die mit ? eingeleitet werden.
Verfasst: 03.12.2006 22:03
von Tafkadasom2k5
Ja... das ist ja die Get-Request-Funktion... hat er doch alles beschrieben.
Einfach mal die Hilfe konsultieren und du wirst verstehen...
Verfasst: 03.12.2006 23:23
von bluejoke
Also wie oben geschrieben. War doch recht ausführlich. Und wenn du bei dem Link durch bist, den ich mitgeschickt hab, dann kannst auch gleich dein Vorhaben vollenden...
Zum Programmieren solltest du in deinen Codes auf jeden Fall so anfangen:
Das gibt alle Hinweise des Interpreters aus, z.B. dass eine Variable abgefragt, aber noch nicht definiert wurde (was streng genommen nicht passieren sollte und eine Fehlerquelle darstellt - Stichwort: enable explicit bei pb, soweit ich weiß).
Damit der Fehler nicht auftritt, testest du einfach davor, ob die Variable schon definiert wurde (also dass jemand die hier in unserem Beispiel beim Request mitsendet - muss er nämlich nicht, könnte ja nur nach index.php fragen, dann haste kein $_GET['url'] mehr). Und das machst du z.B. mit ner If-Abfrage und der obigen isset()-Funktion
Achja, zum Abschluss nochmal RTFM. read the fucking manual(s)!