PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spamschutz Abfrage mit ID


bonfires
27.07.2009, 20:16:58
Hallo Profis,
ich habe eine Spamschutzabfrage gebastelt, die sieht so aus:

<?php
$id = $_GET['id'];
$test = isset($_POST["test"]) ? $_POST["test"] : "";
#$kopie_check = ((isset($_POST["kopie"])) ? ' checked="checked"' : "");
$id1 = isset($_POST["id"]) ? $_POST["id"] : "";
$eingabefehler = "";
$zufallszahl1 = mt_rand(1, 100);
$zufallszahl2 = mt_rand(1, 9);
$ergebnis = md5($zufallszahl1 + $zufallszahl2);
$hexcode = "&#" . (48 + $zufallszahl2) . ";";
$formular = "
<form name=\"Formular\" method=\"post\" action=\"" . $_SERVER["SCRIPT_NAME"] . "\">
<table border=\"0\" cellPadding=\"4\" cellSpacing=\"1\">
<caption><strong>Spamschutz</strong></caption>
<tr>
<td>
<strong>ID:</strong>
</td>
<td>
<input type=\"text\" name=\"id\" size=\"47\" maxlength=\"60\" value=\"" . $id . $id1 ."\">
</td>
</tr>
</tr>
<td>
<input type=\"hidden\" name=\"test\" size=\"40\" maxlength=\"45\" value=\"" . $test . "\">
</td>
</tr>
<tr>
<td colspan=\"2\">
<strong>Spamschutz:</strong> <em>" . $zufallszahl1 . " + " . $hexcode . "</em> =
<input type=\"text\" name=\"zip\" size=\"5\">
<input type=\"hidden\" name=\"zip2\" value=\"" . $ergebnis . "\">
</td>
</tr>
<tr>
<th colspan=\"2\"><br>
<input type=\"submit\" value=\"absenden\">
</th>
</tr>
</table>


</form>";

if (isset($_POST["test"])) {
if (md5($_POST["zip"]) != $_POST["zip2"]) {
$eingabefehler .= "&bull; Der Spamschutz ist leider falsch!<br />";
}
if ($eingabefehler == "") {
echo "ID = ";
echo $id;
echo "<br>ID1 = ";
echo $id1;
echo "Ihre Nachricht wurde gesendet - Vielen Dank!";
echo'<script language="javascript">
window.location.href="count.php?id=2"
</script>';




}
else {
echo "<span style=\"color: #000000\"><strong>Bitte korrigieren:</strong><br>";
echo $eingabefehler . "</span>" . $formular;
}
}
else {
echo $formular;
}
?>
<?
echo $id;
?>

dieses Formular wird mit einer ID aufgerufen, wenn ich jetzt das Formular absende
( mit oder ohne eingaben ) wird die ID aus der URL entfernt.
Wie kann ich das verhindern, denn ich brauche diese an der gelb markierten stelle.
Die ID muss als Variable an die gelb markierte Stelle übergeben werden

Aufruf Spamschutz.php
http://www.???.de/?????/????/Spamschutz.php?id=1
http://www.???.de/?????/????/Spamschutz.php?id=2
http://www.???.de/?????/????/Spamschutz.php?id=3 usw.

Ich hoffe Ihr könnt mir helfen
Gruss André

Damir
27.07.2009, 20:30:36
Mal ne Frage am Rande...

Was für ein Schutz soll das werden wenn du das Ergebnis als hidden-field direkt mit übergibst oder habe ich da was total übersehen;-)

Damir

Damir
27.07.2009, 20:33:15
Und zu Deiner Frage.

Entweder gibst du die id als hidden-Field mit und musst dann per POST abfragen oder du hängst sie wieder an die URL mit dran...

bonfires
27.07.2009, 23:59:50
Hallo Damir,
ich möchte erreichen das Bots nicht auf die Dateien zugreifen können dafür soll der
Schutz sein.
Die ID brauche ich um den richtigen Download zu übergeben nur wird die ID die vorher vergeben wird beim absenden zurückgesetzt.
Beispiel:
vor absenden
http://www.???.de/?????/????/Spamschutz.php?id=1

nach absenden
http://www.???.de/?????/????/Spamschutz.php

zudem soll die ID an
window.location.href="count.php?id=??
angehängt werden.

Meine Versuche die ID aktiv zu halten ist leider gescheitert.
In den verschiedensten Beiträgen die ich gelesen habe stand immer die ID würde im Script aktiv bleiben, anscheinend nur bei mir nicht.
Woran kann das liegen?
Gruss André

s1r10n
28.07.2009, 01:19:04
was repräsentiert die id denn?
und du versuchst ja nicht die $id innerhalb des scripts "aktiv" zu halten sondern über mehrere script aufrufe hinweg



wenn du per get die id übergeben willst kannst du natürlich ein weiteres hidden inputelement setzen das die id übergibt

<input type=\"hidden\" name=\"id\" size=\"40\" maxlength=\"45\" value=\"" . $id . "\">
die würde dann in $id1 landen nach dem sich das script auf buttondruck neu lädt


da sie aus der $_POST kommt und nicht aus $_GET und deins cript das so handled

bonfires
28.07.2009, 07:59:24
Hallo,
das macht das Script auch, wie bekomme ich die ID1 an den Link angegangen

window.location.href="count.php?id=$id1"

es scheint als ob dort keine Variablen verarbeitet werden

Besten Dank

bonfires
28.07.2009, 20:21:52
Hallo Profis,
ich bekomme es einfach nicht hin das die ID an dieser Stelle übertragen wird:

window.location.href="count.php?id="$id"";

<?php
#$id = $_GET['id'];
$test = isset($_GET["test"]) ? $_GET["test"] : "";
#$kopie_check = ((isset($_POST["kopie"])) ? ' checked="checked"' : "");
#$id1 = isset($_POST["id"]) ? $_POST["id"] : "";
$eingabefehler = "";
$zufallszahl1 = mt_rand(1, 100);
$zufallszahl2 = mt_rand(1, 9);
$ergebnis = md5($zufallszahl1 + $zufallszahl2);
$hexcode = "&#" . (48 + $zufallszahl2) . ";";
$formular = "
<form name=\"Formular\" method=\"get\" action=\"" . $_SERVER["SCRIPT_NAME"] . "\">
<table border=\"0\" cellPadding=\"4\" cellSpacing=\"1\">
<caption><strong>Spamschutz</strong></caption>
<tr>
<td>
<strong>ID:</strong>
</td>
<td>
<input type=\"hidden\" name=\"id\" size=\"47\" maxlength=\"60\" value=\"" . $id ."\">
</td>
</tr>
</tr>
<td>
<input type=\"hidden\" name=\"test\" size=\"40\" maxlength=\"45\" value=\"" . $test . "\">
</td>
</tr>
<tr>
<td colspan=\"2\">
<strong>Spamschutz:</strong> <em>" . $zufallszahl1 . " + " . $hexcode . "</em> =
<input type=\"text\" name=\"zip\" size=\"5\">
<input type=\"hidden\" name=\"zip2\" value=\"" . $ergebnis . "\">
</td>
</tr>
<tr>
<th colspan=\"2\"><br>
<input type=\"submit\" value=\"absenden\">
</th>
</tr>
</table>


</form>";

if (isset($_GET["test"])) {
if (md5($_GET["zip"]) != $_GET["zip2"]) {
$eingabefehler .= "&bull; Der Spamschutz ist leider falsch!<br />";
}
if ($eingabefehler == "") {
echo "ID = ";
echo $id;
echo "<br>ID1 = ";
echo $id1;
echo "<br>get = ";
echo $_GET[$id];
echo "Ihre Nachricht wurde gesendet - Vielen Dank!";
echo'<script language="javascript">
window.location.href="count.php?id="$id"";
</script>';
echo "ID = ";
echo $id;
echo "<br>ID1 = ";
echo $id1;
echo "<br>get = ";
echo $_GET[$id];
}
else {
echo "<span style=\"color: #000000\"><strong>Bitte korrigieren:</strong><br>";
echo $eingabefehler . "</span>" . $formular;
}
}
else {
echo $formular;
}
?>
<?
echo $id;
?>

Könnt ihr mir helfen?

s1r10n
29.07.2009, 13:44:23
echo "<input type=\"hidden\" name=\"id\" size=\"47\" maxlength=\"60\" value=\"" . $id ."\">";


kannst du übrigens so schreiben



echo "<input type=\"hidden\" name=\"id\" size=\"47\" maxlength=\"60\" value=\"$id\">";


oder so


echo '<input type="hidden" name="id" size="47" maxlength="60" value="'.$id.'">';


du vereinst in deinem script die "nachteile" von beidem


was auch dein problem ist
echo '$id'; gibt $id aus
echo "$id" gibt den wert von $id aus

informier dich da nochmal drüber

edit: mitagessen kam dazwischen


echo "Ihre Nachricht wurde gesendet - Vielen Dank!";
echo'<script language="javascript">
window.location.href="count.php?id="$id"";
</script>';
echo "ID = ";
echo $id;
echo "<br>ID1 = ";
echo $id1;
echo "<br>get = ";
echo $_GET[$id];


sollte vlt eher so aussehen

echo "Ihre Nachricht wurde gesendet - Vielen Dank!
<script language=\"javascript\">window.location.href=\"count.php?id=$id\"</script>
ID = $id
<br>ID1 = $id1
<br>get = {$_GET[$id]}";

DokuLeseHemmung
29.07.2009, 14:13:17
Wieso sehe ich nichtgendwo session_start()?

bonfires
29.07.2009, 16:50:00
Hallo,
habe es jetzt so gelöst:
window.location.href="count.php?id='.$id.'";

Da dieses Script in einem Popupfenster geöffnet wird und daraus ein Download,
möchte ich gerne das sich das Fenster automatisch schließt.
Tut es auch aber der Download wird dann nicht ausgeführt.
Das ist was ich gemacht habe:
echo'<script language="JavaScript">window.close();</script>';

Habt Ihr einen Tipp wie der Download bzw. die count.php abgearbeitet wird und anschließend das Popup geschlossen wird?

Besten Dank im voraus.