Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Syntax frage [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Syntax frage


 
eno24
08-11-2006, 21:38 
 
Erst mal möchte ich sagen das das Tutorial "Wie erstelle ich ein LogIn-Skript?" echt Klasse ist sehr verständlich geschrieben. Ich als Anfänger habe auch zum größten Teil die Syntax verstanden. Nur eine Frage habe ich noch was bedeutet "die" in der 5. Zeile und welche Auswirkung hat das.

01 <?php
02 session_start();
03 if(!session_is_registered('user') || $_SESSION['user'] == "") {
04 header("location:index.php");
05 die;
06 }
07 ?>

Ich bedanke mich jetzt schon für Ihre Antwort.

 
Benny-one
09-11-2006, 09:38 
 
Wenn du mit header ein location wechsel machst, darf nicht anderes ausgeben werden. Das die() verhindert, dass irgendwelche Ausgaben nach der header location ausgeben werden, in dem das PHP-Script abgebrochen wird.

 
Trashar
09-11-2006, 10:54 
 
btw equal to exit;

 
Benny-one
09-11-2006, 11:24 
 
Original geschrieben von Trashar
btw equal to exit; nö, bei die() kannste noch ne Ausgabe machen die("irgendwas ist schief gegangen"); bei exit geht das nicht. Aber in dem Falle wäre ein die() mit Fehlermeldung sehr schlecht :D

Daher nehme ich grundsätzlich ein exit; bei einem header("location");

 
Trashar
09-11-2006, 11:57 
 
so und dann lesen wir nun mal die doku und revidieren unsere aussage :goth:

 
Benny-one
09-11-2006, 12:29 
 
:confused:

http://de3.php.net/manual/de/function.die.php
http://de3.php.net/manual/de/function.exit.php

 
Trashar
09-11-2006, 12:30 
 
*Benny auf die Finger hau*
Les die englische Doku!!!

http://de3.php.net/manual/en/function.exit.php

 
Benny-one
09-11-2006, 12:32 
 
Tatsache. Aber das war doch nicht schon immer so oder?

 
eno24
09-11-2006, 14:34 
 
Hallo Benny und Trashar

möchte mich bei eurer schnellen Info bedanke. Ich bin jetzt mal wieder schlauer geworten. Diese Info hat mir sehr geholfen die Syntx zu verstehen.

lg eno

Wer nicht fragt der nicht gewinnt!

;)

 
eno24
09-11-2006, 14:44 
 
Wie ist das dann mit der Schreibweise ist die da richtig oder müsste die so aussehen?

01 <?php
02 session_start();
03 if(!session_is_registered('user') || $_SESSION['user'] == "") {
04 header("location:index.php");
05 die();
06 }
07 ?>

Ich meine mit () oder geht das auch ohne, was ist richtig?

 
TobiaZ
09-11-2006, 14:59 
 
selber ausprobiert?

 
eno24
09-11-2006, 21:51 
 
Wie selber ausprobiert??? Wie meinst du das? :confused:

 
TobiaZ
09-11-2006, 23:05 
 
na, was passiert denn wenn du die() mal ohne () verwendest? Keine angst, probier es ruhig aus, der Server wird schon nicht abrauchen...

 
Shurakai
09-11-2006, 23:52 
 
Original geschrieben von Benny-one
Tatsache. Aber das war doch nicht schon immer so oder? Doch, eigentlich schon...

 
Benny-one
10-11-2006, 10:22 
 
Toll dass die das seit Jahren in der Doku nicht mit reinschreiben...toll dass es wiedermal 2 Funktionen für den selben scheiß gibt...

 
TobiaZ
12-11-2006, 22:37 
 
Original geschrieben von Benny-one
Toll dass die das seit Jahren in der Doku nicht mit reinschreiben...toll dass es wiedermal 2 Funktionen für den selben scheiß gibt... Sind beides keine Funktionen, sondern Sprachkonstrukte!

 
eno24
13-11-2006, 17:19 
 
hi TobiaZ

habs ausprobiert mit und ohne () hatte aber keine veränderung gesehen außer wenn ich was in die () geschrieben habe. für mich war aber die richtige schreibweise mal wichtig oder ist das egal?

Habe noch ne doffe frage was ist den nun ein Sprachkonstrukt? wie muss man das verstehen?

 
TobiaZ
13-11-2006, 17:49 
 
Eigentlich alles Fragen fürs Manual. ;)

 
eno24
13-11-2006, 18:20 
 
hi TobiaZ

warum fragen fürs Manual wenn sie im Zusammenhang mit einem Tut stehen? Da ist es doch naheliegend es auch in dem entsprechenden Forum zu bereden. Wenn ich eine Antwort zu einem Tut suche dann sehe ich ja besimmt auch erst im Forum unter Tutorial nach ob ich dazu was finde. ODER sehe ich das falsch?

 
TobiaZ
13-11-2006, 19:36 
 
nee, ich bezog mich auf die Fragen "ob mit oder ohne klammer" und was "langage constructs" (um einen weiteren suchbegriff in spiel zu bringen) sind. Die sind doch ziemlich allgemein, als dass sie irgendwas mit dem usermanagement-tutorial zu tun hätten. ;)

 
eno24
15-11-2006, 00:44 
 
Ok dann werde ich mich halt mal auf die Suche begeben

 
jahlives
15-11-2006, 02:32 
 
Es wird häufig der Fehler gemacht Sprachkonstrukte mit Funktionen zu verwechseln. Um das generell zu vermeiden sollte man die Sprachkonstrukte nicht wie Funktionen nutzten. Das heißt bei 'include' zum Beispiel sollte man keine Klammern setzen:

Man dürfte behaupten, dass Funktionen immer einen Rückgabewert haben. Sprachkonstrukte hingegen nicht. Wobei dann bei print resp echo ein Problem entstünde weil echo im Gegensatz zu print keinen Rückgabewert hat, also void.

Gruss

tobi

 
TobiaZ
15-11-2006, 12:33 
 
Original geschrieben von jahlives
Man dürfte behaupten, dass Funktionen immer einen Rückgabewert haben. Sprachkonstrukte hingegen nicht. Wobei dann bei print resp echo ein Problem entstünde weil echo im Gegensatz zu print keinen Rückgabewert hat, also void.

Du meinst genau das gegenteil. Denn Print und echo sind Sprachkonstrukte und dürften nach deiner Definition keinen Rückgabewert haben, was aber bei print sehr wohl der Fall ist, nämlich immer 1.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:00 Uhr.