php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.12.2008, 11:23  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Der 2. Code in #15 ist ja eine Weiterverbesserung des ersten,. weil dort noch auf Fehler überprüft wird. Der sollte doch auch funktionieren, oder?
binäri ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.12.2008, 11:28  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

ähh joa is ja nix anderes... solange keine Ausgabe vorher gemacht wird ist es total egal wo du den Cookie setzt... und wenns der letzte Befehl vor der ersten Ausgabe is...
cycap ist offline  
Alt 19.12.2008, 11:30  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Da haben wir wohl etwas aneinander vorbeigeredet...
Ich werd den Code bei Gelegenheit mal ausprobieren
Danke erstmal
binäri ist offline  
Alt 23.12.2008, 10:44  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Wie erwartet funktioniert deine Version ohne Probleme.
Nur ist das für mich viel zu arbeitsaufwändig:

Code:
if(Feld_nicht_leer) {
if(Eingabe_enthält nur erlaubte_Zeichen) {
if(Eingabe_enthält_ein_@_und_einen_.) {
if(Eingabe_hat_mehr_als_8_Zeichen) {
if(sql_Statement_ist_fehlerfrei) {
setcookie();
} } } } }
Eine vereinfachte Form meines Codes. Es wäre irgendwie unpraktisch, diesen Code vor das ganze HTML-Zeug zu setzen, denn die gesamte Datei besteht nur aus diesem Code. Dann könnte ich gleich das include ganz an den Anfang setzen.
Ungefähr so:

Code:
<?php
 include($_GET['site'] . ".php");
?>
<html>
<div>
<?php
 echo $message; //$message wird in der includeten Datei deklariert und enthält z.B. 'Ihre Eingaben sind fehlerhaft'
 //Hier soll dann noch das Affenformular hin
 //include($_GET['site'] . "_html.php"; wäre eine Lösung mit einer 2. Datei, das würde ich aber gern umgehen
?>
</div>
</html>
Diese Version ist für mein Projekt aufjeden Fall günstiger, jedenfalls wenn ich wüsste, wie ich den HTML-Inhalt der weitrer oben includeten Datei in der Div anzeigen lassen könnte, teilweise ist auch php-Code dabei.
Nach Möglichkeit ohne neue Dateien anzulegen...
binäri ist offline  
Alt 23.12.2008, 16:09  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du kannst den Code in Funktionen packen.
Zum Beispiel
PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);

$functions = require 'xyz.php';
$functions['pre']();
?>
<html>
  <head><title>...</title></head>
  <body>
    <?php $functions['render'](); ?>

  </body>
</html>
PHP-Code:
<?php
function prepare_xyz() {
  if ( !isset(
$_COOKIE['xyzcookie']) ) {
    
setcookie('xyzcookie'time());
  }
}

function 
render_xyz() {
  echo 
'<form method="post" ><input type="submit" /></form>';
}

return array(
'pre'=>'prepare_xyz''render'=>'render_xyz');
David ist offline  
Alt 23.12.2008, 19:36  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Hmm, ich glaub ich bin selbst hier im Einsteiger Forum falsch *g*
Kannst du mir evtl erklären, was dieser Code macht und wie er funktioniert?

Insbesondere diese Zeilen hier:
Code:
$functions['pre']();
<?php $functions['render'](); ?>
return array('pre'=>'prepare_xyz', 'render'=>'render_xyz');
binäri ist offline  
Alt 23.12.2008, 21:51  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du kannst in PHP Funktionen über den Namen (als Zeichenkette) aufrufen.
PHP-Code:
function foo() {
  echo 
'o';
}

foo(); // ruft foo() auf
$x 'foo';
$x(); // ruft foo() auf

$x = array();
$x['xyz'] = 'foo';
$x['xyz'](); // ruft foo() auf

$x = array('xyz'=>'foo');
$x['xyz'](); // ruft foo() auf 
in xyz.php steht die Zeile
PHP-Code:
return array('pre'=>'prepare_xyz''render'=>'render_xyz'); 
Das wird von require zurückgegeben
PHP-Code:
$functions = require 'xyz.php'
$functions ist dann also das Feld ('pre'=>'prepare_xyz', 'render'=>'render_xyz')
Damit kann xyz.php an das Hauptskript zurückgeben, wann welche Funktionen aufgerufen werden sollen (das ist nur eine Möglichkeit).
$functions['pre'](); ruft in diesem Fall also die Funktion prepare_xyz() auf.
David ist offline  
Alt 23.12.2008, 22:04  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Zitat:
(das ist nur eine Möglichkeit).
Welche anderen gibt's denn noch?
Bevor ich nämlicch diese Variante so richtig nutzen kann, muss ich mir wohl nochmal Arrays und require anschauen
binäri ist offline  
Alt 23.12.2008, 22:11  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Eine andere (einfache) Möglichkeit ist, dass Du ein festes Namensschema verwendest.
Du bindest xyz.php ein, also werden xyz_prepare(), xyz_render usw aufgerufen.
David ist offline  
Alt 29.12.2008, 14:19  
Benutzer
 
Registriert seit: 25.05.2008
Beiträge: 50
binäri
Standard

Jo, danke, so ist's einfacher für mich.
Damit wär mein Problem gelöst
binäri ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Googles Cookies sterben künftig früher PHP Tipps 2007 0 03.08.2007 12:06
Problem mit Cookies JeeZ PHP Tipps 2006 2 08.10.2006 17:59
Cookies des Referers einbinden nickie12 PHP Tipps 2006 4 16.07.2006 15:46
Login-System ohne Cookies dethlef14 PHP Tipps 2006 7 27.03.2006 22:22
Verfolgende Cookies lessiv PHP Tipps 2006 12 08.01.2006 17:20
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
Sitzungsvariablen, Abfrage-Zeichenketten, Cookies dethlef14 PHP Tipps 2005-2 2 16.08.2005 15:42
anzahl von cookies irgendwann bedenklich?lieber DB-Anfrage? Crypi PHP Tipps 2005-2 9 16.08.2005 12:55
sessions und cookies... PHP Tipps 2005-2 7 31.07.2005 21:17
cookies auslesen PHP Tipps 2005-2 1 09.06.2005 18:11
problem mit cookies... d4rki PHP Tipps 2005 1 20.04.2005 12:19
Cookies socke PHP Tipps 2005 8 02.01.2005 15:52
Cookies auslesen funktioniert nicht... PHP Tipps 2004-2 2 25.12.2004 14:00
cookies immer zulassen PHP Tipps 2004 11 16.07.2004 20:39
Probleme mit Session ohne Cookies PHP Tipps 2004 6 06.06.2004 15:55


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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum