![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
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 |
|
|
|
|
|
#2 |
|
Inventar
![]() |
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.... |
|
|
|
|
|
#3 |
|
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
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 |
|
|
|
|
|
#4 |
|
Inventar
![]() |
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 |
|
|
|
|
|
#5 |
|
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
hallo
sorry ich blick da noch nicht durch ??? also das formular wird mit post gesendet aber wo muss ich deine änderungen vornehmen ? gruß fenster |
|
|
|
|
|
#6 |
|
Master
![]() |
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! ![]()
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele. Lucius Annaeus Seneca ...:::www.modellbaulexikon.org:::... www.acrobat-se.org | www.ams-8c.de.vu |
|
|
|
|
|
#7 |
|
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
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 |
|
|
|
|
|
#8 |
|
Master
![]() |
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.
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele. Lucius Annaeus Seneca ...:::www.modellbaulexikon.org:::... www.acrobat-se.org | www.ams-8c.de.vu |
|
|
|
|
|
#9 |
|
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
Wie lang schrieben die PHP Heinis schon, dass sich der Zugriff auf die GET und POST Variablen ändert? Über ein Jahr?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
|
|
|
|
#10 |
|
Inventar
![]() |
Liege ich richtig dass sich bei der Änderung sicherheitstechnisch nachgearbeitet wurde?
Wenn ja, was hat sich verändert?
____________________________________
... back in business |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|