WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php script läuft auf einem server auf dem anderen nicht ?? (http://www.wcm.at/forum/showthread.php?t=134983)

fenster 23.05.2004 10:22

php script läuft auf einem server auf dem anderen nicht ??
 
hallo

kann mir mal jemand sagen warum mein script
auf dem server fehlerfrei läuft

http://mitglied.lycos.de/fenster1/guest/guestarti2.php


und auf dem server nicht fehlerfrei läuft
http://www.nightman.at/Fenster/guestarti/guestarti2.php



gruß
fenster

Potassium 23.05.2004 11:50

vermutlich ist es in PHP 3 geschrieben. auf nightman.at läuft aber die neueste 4.x version....
die 3er verlangt iirc keien variablendeklaration die 4 indes schon....

fenster 23.05.2004 13:47

was muss ich ändern
 
hallo

was muss ich ändern ?

hier ist mal der code


Code:

<?php
if($sent==1)
{
$t1=chr(10);
$t2=chr(13);
$name=str_replace('~','',$name);
$betreff=str_replace('~','',$betreff);
$message=str_replace('~','',$message);
$name=trim($name);
$betreff=trim($betreff);
$message=trim($message);
$name=strip_tags($name);
$betreff=strip_tags($betreff);
$message=strip_tags($message);
If(!$name){$fehler="Bitte geben Sie einen Namen ein
";}
If(!$betreff){$fehler=$fehler."Bitte geben Sie den Betreff an
";}
If(!$message){$fehler=$fehler."Bitte geben Sie eine Nachricht ein
";}
if($fehler){$fehler="<font color=red><h4>".$fehler."</h4></font>";}
}
if($name AND $betreff AND $message)//Formular wurde ausgefüllt
{
$message=str_replace($t1,'
',$message);
$message=str_replace($t2,'
',$message);
IF(file_exists('gast.txt')){$ausgabe="\n";}
$comment=fopen('gast.txt','a');
$ausgabe=$ausgabe.$name."~".$betreff."~".$message;
fputs($comment,$ausgabe);
fclose($comment);
$name="";
$betreff="";
$message="";
}
?>

<html><head>
<title>Gästebuch</title>
</head><body>
<h3>Unser Gästebuch</h3>
<?php echo $fehler; ?>
<form action='<?php echo $PHP_SELF; ?>' method='post'>
<input type='hidden' name='sent' value=1>


Ihr Name:

<input type='text' name='name' size='30' value='<?php echo $name; ?>'>


Betreff:

<input type='text' name='betreff' size='30' value='<?php echo $betreff; ?>'>


Ihre Nachricht:

    <textarea name='message' rows='10' cols='30'>
<?php echo $message; ?>
</textarea>


<input type=submit value=abschicken>
</form>


<?php
$eintrag=file('gast.txt');
$ausgabe="
";
$temp=count($eintrag)-1;
for($i=$temp;$i>=0;$i--)
{
$element=explode('~',$eintrag[$i]);
$ausgabe.="<table>";
$ausgabe.="<tr><td>".$element[1]."</td></tr>";
$ausgabe.="<tr><td>".$element[0]."</td></tr>";
$ausgabe.="<tr><td>".$element[2]."</td></tr>";
$ausgabe.="</table>";
}
?>
<?php echo $ausgabe; ?>
</body></html>



gruß
fenster

Potassium 23.05.2004 13:49

werden die vars mit POST oder MIT GET gesendet?
je nachdem musst du schreiben
$name = $_POST['name_des_feldes_in_dem_name_steht'];
btw
$name = $_GET['name_des_feldes_in_dem_name_steht'];
oder damit es bei beidem geht:

$name = $_REQUEST['name_des_feldes_in_dem_name_steht'];

das am anfang bei allen vars

fenster 23.05.2004 15:47

sorry ich blick da noch nicht durch
 
hallo


sorry ich blick da noch nicht durch ???


also das formular wird mit post gesendet

aber wo muss ich deine änderungen vornehmen ?




gruß
fenster

heli2sky 23.05.2004 16:12

Es kommt auf die Einstellungen vom Server und PHP an... Bei dem einen Server funktioniert das:

seite: test.php?ausgabe=test
<?php
echo $ausgabe;
?>

...bei dem anderen nicht, da du die Variablen erst holen/"requesten" musst:

seite: test.php?ausgabe=test
<?php
echo $_REQUEST['ausgabe'];
?>
oder eben $_GET['ausgabe'] oder $_POST['ausgabe']

Das heißt, die Variable "ausgabe", die du in der URL oder im Formular, oder wo auch immer, mitlieferst, liegt nicht gleich in $ausgabe vor! ;)

fenster 23.05.2004 16:18

ein beispiel
 
hallo

könnt ihr mir mal ein beispiel zeigen

wie ich eine variable in meinem script
umändern Muss ?


damit ich das mal sehe



gruß
fenster

heli2sky 23.05.2004 16:23

Ein bisschen selbst überlegen wär aber auch nicht schlecht ;)

EIN Beispiel kannst du haben:
Dein Formular übergibt per Methode POST zuerst in der Variablen "sent" den Value "1".
Im php-Teil schreibst du: if($sent==1) {... -> das geht beim einen Server, beim anderen nicht! WEIL:
...es, wie schon geschrieben, so heißen müsste: if($_POST['sent']==1) {...

Und das machst du mit allen Variablen, die übergeben werden...

Oder besser (für die Übersichtlichkeit): Du machst einfach am Anfang der Datei die Zuweisung für alle benötigten Variablen:
$sent = $_POST['sent'];
$... = $_POST['...'];

Dann bleibt der Rest des Skriptes gleich.

_m3 24.05.2004 05:41

Wie lang schrieben die PHP Heinis schon, dass sich der Zugriff auf die GET und POST Variablen ändert? Über ein Jahr?

eAnic 24.05.2004 08:21

Liege ich richtig dass sich bei der Änderung sicherheitstechnisch nachgearbeitet wurde?
Wenn ja, was hat sich verändert?


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:35 Uhr.

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