Hallo,
Habe (mal wieder) ein kleines Problem...
Habe veruscht ein Script für eine Shoutbox zu schreiben, aber irgendwie gehts nicht :(...der interpretiert anscheinend das "$_GET['do'];" nicht.
$username und $id sind bereits definiert.
<?php
$stext="";
$name="";
$do="";
?>
<form name="shoutbox" method="post" action="index.sload?<?php echo"id=".$id; ?>&do=speichern">
<script language="JavaScript" type="text/javascript">
function loeschevalue(valuetext) {
document.shoutbox.name.value = '';
}
function fuellevalue(valuetext) {
if (document.shoutbox.name.value == '') {
document.shoutbox.name.value = valuetext;
}
}
</script>
<input name="name" type="text" id="name" onclick="javascript:loeschevalue('Dein Name')" value="Dein Name" onblur="javascript:fuellevalue('Dein Name')" class="stextinput" /><br />
<textarea name="stext" cols="" rows="2" class="stextinput" id="stext"></textarea>
<br />
<input name="input" type="submit" class="sbutton" value="Absenden">
<input name="input" type="reset" class="sbutton" value="Löschen">
</form>
<?php
if(!empty($_GET['do'])){
$do = $_GET['do'];
}
if($do == "speichern"){
$zeit = time();
$tmy = date("d.m.Y",$zeit);
$uhrzeit = date("H:i:s",$zeit);
$aktzeit = $tmy." - ".$uhrzeit;
$ip=$_SERVER['REMOTE_ADDR'];
$safetext = htmlspecialchars($_POST['stext']);
$name = htmlspecialchars($_POST['name']);
echo $name;
echo $safetext;
$Host = "localhost";
$User = "***";
$Pass = "***";
$Datenbank = "usr_web0_3";
$conn = @mysql_connect($Host, $User, $Pass) or die(" Verbindungsaufbau zum Datenbankserver fehlgeschlagen!");
$dbselect = @mysql_select_db($Datenbank, $conn) or die("Die Userdatenbank reagiert nicht!!");
$sentry = "INSERT INTO `mod_shoutbox` ( `id` , `entry_id` , `username` , `name` , `eintrag` , `user_currentip` , ` current_iptime` )
VALUES ( NULL , NULL , '$username', '$name', '$safetext', '$ip', '$aktzeit' );";
$serstelle = mysql_query($sentry);
echo "Eintrag gespeichert";
}
?>
Vielen xyz-48k, für jegliche hilfe =) ( im vorraus )
[COLOR=red][SIZE=10]edit (xyz-161): hab das mysql passwort zensiert[/SIZE][/COLOR]
danke^^
Ich kann da auf den ersten Blick keinen richtigen Fehler entdecken.
Ist die Dateiendung "sload" so gewollt?
<form name="shoutbox" method="post" action="index.sload?<?php echo"id=".$id; ?>&do=speichern">
Noch Tipps am Rande:
- zensier dein MySQL-Passwort lieber :)
- Bau noch eine Floodsperre ein, sodass die Einträge nicht doppelt und dreifach reingespammt werden.
Quote
Original von xyz-100
Ich kann da auf den ersten Blick keinen richtigen Fehler entdecken.
Ist die Dateiendung "sload" so gewollt?
<form name="shoutbox" method="post" action="index.sload?<?php echo"id=".$id; ?>&do=speichern">
Noch Tipps am Rande:
- zensier dein MySQL-Passwort lieber :)
- Bau noch eine Floodsperre ein, sodass die Einträge nicht doppelt und dreifach reingespammt werden.
-Jop, die Dateiendung ist so gewollt.
-Das ist eh nur das MySQL PW von meinen lokalen rechner, wäre sonst ärgerlich gewesen xD. ( xyz-48ke trotzdem )
Bevor ich floodsperre und captcha einbaue wollte ich erstmal die einträge abspeichern können ^^
zur fehlersuche:
1.) prüfen ob nach der schleife if($do == "speichern"){ eine ausgabe kommt z.b. mit echo 'test';
2.) wie immer in die anfrage "or die (mysql_error())"
ich vermute der fehler liegt an den feldern in der tabelle
gruß
xyz-126
Quote
Original von xyz-126
zur fehlersuche:
1.) prüfen ob nach der schleife if($do == "speichern"){ eine ausgabe kommt z.b. mit echo 'test';
2.) wie immer in die anfrage "or die (mysql_error())"
ich vermute der fehler liegt an den feldern in der tabelle
gruß
xyz-126
Nein...Es erfolgt keine Ausgabe...deswegen auch die vermutung, dass der PHP Compiler das "$_GET['do'];" nicht richtig interpretiert :(
Wenn ich auf Abschicken klicke ist die URL auch richtig gebildet:
[URL]http://t*****.s***load.de/index.sload?id=27&do=speichern[/URL]
Allerdings speichert er, wenn ich die if($do=="speichern") -Anweisung weglasse.
Was sagt error_reporting(E_ALL); ?
(diesen Befehl am Anfang des Scripts nach <?php setzen)
Quote
Original von xyz-52
Was sagt error_reporting(E_ALL); ?
(diesen Befehl am Anfang des Scripts nach <?php setzen)
Leider sagt es garnichts :/
solangsam verzweifle ich daran :(.
Das Error-Log zeigt mir auch keine Fehler :/
lass mal das ganze GET-Array ausgeben und schau ob du nicht irgendwo oben im Script den Wert verändert hast
...
if(!empty($_GET['do'])){
$do = $_GET['do'];
}
print_r($_GET);
if($do == "speichern"){
...
Quote
Original von xyz-52
lass mal das ganze GET-Array ausgeben und schau ob du nicht irgendwo oben im Script den Wert verändert hast
...
if(!empty($_GET['do'])){
$do = $_GET['do'];
}
print_r($_GET);
if($do == "speichern"){
...
Problem endlich erkannt...das script war völlig fehlerfrei, nur ich habe das $_GET['do']: nicht richtig an die shoutbox gesendet ( Ist jetzt zu kompliziert (für mich) zu erklären ^^). xyz-48ke trotzdem an alle, die mir so eifrig beim Fehlersuchen geholfen haben ;)
MFG,
Tobi