WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php 5 am server, aber buch für php4 :( (http://www.wcm.at/forum/showthread.php?t=210627)

oitt 23.02.2007 03:51

php 5 am server, aber buch für php4 :(
 
hallo!

bevor ich mit dem buch überhaupt was anfangen kann müsste ich die aktuelle programmierweise (oder sagt man bei php scripten?) wissen:

<html>
<head>
<?php
if ($gesendet)
{echo "Sie haben $auswahl gewählt!";}
?>
</head>


<body>
Bitte waehlen Sie eine Datei aus:
<form action = "<?php $PHP_SELF ?>" method = "post">
<select name = "auswahl">
<option value = "bla" selected> blatext
<option value = "bla2"> bla2text
<option value="bla3"> bla3text
</select>
<input type = "submit" name = "gesendet">
</form>

</body>
</html>

Warum funktioniert das nicht, dass mir der $auswahl ausgibt?
wie gehört das unter php5?

Danke :(

eAnic 23.02.2007 05:49

Vermutlich, weil register.globals nicht aktiv ist? ;)

probiers mal hiermit:

PHP-Code:

<?php
if ($_GET['do']=="submit")
{
   echo 
"Sie haben $auswahl gewählt!";
}
?>

<body>
Bitte waehlen Sie eine Datei aus:
<form action = "<?php $PHP_SELF&do=submit?>" method = "post">
<select name = "auswahl">
<option value = "bla" selected> blatext
<option value = "bla2"> bla2text
<option value="bla3"> bla3text
</select>
<input type = "submit" name = "gesendet">
</form>


zAPPEL 23.02.2007 07:46

Also wenn das Formular mit POST gesendet wird kannst auf die Variable nicht mit Get zugreifen sondern mit $_POST (oder mit $_REQUEST)

Ah gerade gesehen, du mischt da Get und Post zusammen.. das sollte man nicht unbedingt machen (und ist auch nicht notwendig)

PHP-Code:

<html>
<head>
<?php
if (isset($_POST["auwahl"]))
{echo 
"Sie haben"$_POST["auswahl"]." gewählt!";}
?>
</head>


<body>
Bitte waehlen Sie eine Datei aus:
<form action = "<?php $PHP_SELF ?>" method = "post">
<select name = "auswahl">
<option value = "bla" selected> blatext
<option value = "bla2"> bla2text
<option value="bla3"> bla3text
</select>
<input type = "submit" name = "gesendet">
</form>

</body>
</html>


Philipp 23.02.2007 09:33

$PHP_SELF sollte außerdem in $_SERVER['PHP_SELF'] geändert werden

oitt 23.02.2007 09:37

merci

oitt 23.02.2007 14:05

so, hab über Nacht PHP "gelernt" nachdem der böse(!) mendaxx mir keinen Homepage-SWF-Player programmieren wollte :hammer: :heul:

Da gibts paar SWF Files zum Ausprobieren:
http://megamacy.de/files/list.php

Upload der index.php und .swf Dateien
$touch SWF-Files.txt
$chmod 777 SWF-Files.txt
Die .swf Dateien in die SWF-Files.txt eintragen (pro Zeile 1)

index.php:

PHP-Code:

<!--
#################################################
# Program: SSWFGPLP                                #
#                                                #                                              #
#                                                #
# License:    Public Domain                         #
#################################################
-->


<html>
<head>
<title>
SSWFPDP
</title>
<?
function aktDatum() 
    {
        
$zeit time();
        
$datum getdate($zeit);
        echo 
$datum[mday] . ". " $datum[month] . " " $datum[year];
    }
aktdatum();
?>

</head>


<body>




[b]<h1>SIMPLE SWF PUBLIC DOMAIN PLAYER (SSWFGPLP)</h1>[/b]






Bitte waehlen Sie eine Datei aus:




<?
####################################
# : $ chmod 777 SWF-Files.txt !!!  #
####################################
$datei "SWF-Files.txt";
if (
file_exists($datei))
{
    
$fp=fopen($datei"r+");
    echo 
"<form action = \"" $_SERVER['PHP_SELF'] . "\" method = \"post\">";
    echo 
"<select name = \"auswahl\">";
    while (!
feof($fp))
    {
        
        
$zeile fgets($fp);    
        echo 
"<option value=\"" $zeile "\"> " $zeile " ";
    }
    echo 
"</select>";
    echo 
"

"
;
    echo 
"<input type = 'submit'>";
    echo 
"</form>";
    echo 
"



"
;        
    
fclose($fp);
}
else if (!
file_exists($datei))
{
    echo 
"Datei SWF-Files.txt existiert nicht! \nBitte legen Sie die Datei an und schreiben Sie Ihre SWF Dateien (je Zeile eine) hinein! Danke.";
}





if (isset(
$_POST[auswahl]))
    {
        echo 
"Sie sehen " $_POST[auswahl] . "

"
;
        echo 
"<embed src = '" $_POST[auswahl] . "' height = 480 width =640>"
    }
?>


</body>
</html>

:D gut geproggt, ned wahr?! :D

Philipp 23.02.2007 14:36

Da sind noch einige Probleme:

1) Wozu gibt es eine Funktion aktdatum(); wenn die Zeit nur einmal gebraucht wird?

2) Bei else if (!file_exists($datei)) genügt ein einfaches else

3) $_POST[auswahl] sollte überprüft werden bevor eine HTML Ausgabe stattfindet. Siehe auch http://de.wikipedia.org/wiki/Cross-Site_Scripting

Potassium 26.02.2007 00:35

warum liest du nicht einfach das directory aus und gibst sämtliche dateien aus, die darin enthalten sind? die kannst eventuell noch filtern. somit wäre das ganze wirklich dynamisch. so hats doch noch was statisches.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag