Willkommen in der Webstatt Zum Webstatt Blog und Stories
Cpt.Iglo am 14.09.07 14:50

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&ouml;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 Dank, für jegliche hilfe =) ( im vorraus )

[COLOR=red][SIZE=10]edit (nuit): hab das mysql passwort zensiert[/SIZE][/COLOR]
danke^^

netcup.de Warum gibt es hier Werbung?
Julian am 14.09.07 15:49

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.

Cpt.Iglo am 14.09.07 16:29

Quote
Original von Julian
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. ( Danke trotzdem )

Bevor ich floodsperre und captcha einbaue wollte ich erstmal die einträge abspeichern können ^^

mab mab am 14.09.07 16:53

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ß
mab

Cpt.Iglo am 14.09.07 17:31

Quote
Original von mab
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ß
mab


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.

der_nic der_nic am 14.09.07 17:46

Was sagt error_reporting(E_ALL); ?
(diesen Befehl am Anfang des Scripts nach <?php setzen)

Cpt.Iglo am 14.09.07 17:51

Quote
Original von der_nic
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 :/

der_nic der_nic am 14.09.07 18:13

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"){
...

Cpt.Iglo am 14.09.07 19:05

Quote
Original von der_nic
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 ^^). Danke trotzdem an alle, die mir so eifrig beim Fehlersuchen geholfen haben ;)

MFG,
Tobi

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt