PHP mit "input type=image"

Pacific

Grünschnabel
Findet jemand heraus weshalb mein selber kreirter Button nicht funktioniert? Ich bin leider zu wenig aus dem Gebiet .... Das ganze ist zusammen auf einer Seite. Wenn ich das genaugleiche Script mit dem Code:

<input type=submit name=senden value=schicken> mache, dann klappt's.
Wär supergenial wenn mir jemand helfen könnte



<?php
if ($senden){
include('../xxx/xxx.php');
$query=mysql_query("SELECT * FROM user WHERE email='$email'");
if (!$query) echo "Fehler";
$count=mysql_num_rows($query);
if ($count<>1){
echo "Sie sind noch nicht registriert!";
exit();
}
if ($count==1){

$array=mysql_fetch_array($query);
$vorname=$array['vorname'];
$nachname=$array['nachname'];
$passwort=$array['passwort'];
//email an den neuen user
$to=$email;
$headers .="From: xxx";
$betreff = "Ihr Passwort";
$text = "Hallo " . $vorname . " " . "Dein Passwort lautet ". $passwort;

"Damit kannst Du Dich jederzeit wieder bei uns einloggen";

mail($to, $betreff, $text, $headers);

echo "Das Passwort ist unterwegs";
}


}
?>
<?php
if (!$senden){
?>
<form action=index.php?seite=1 method=post>

<table width="100%" border="0" cellspacing="5" cellpadding="0">
<tr>
<td colspan="3">Passwort vergessen dann suchen Sie es:-)</td>
</tr>
<tr>
<td>nein, im Ernst, Ihre Email-Adresse</td>
<td><input type=text name=email class=field1></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<input type=image name=senden src=senden.jpg>


</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

</form>
<?php
}
?>
 
Was genau geht denn nicht? Schickt er das Formular nicht ab?

Hast du es mal mit " um die Attribut-Werte probiert?

Ansonsten kann ich nämlich auch nichts sagen, was da falsch sein sollte.
 
bei image-inputs kriegst du nach dem post die x/y koordinaten des klickpunktes auf dem image wieder und nicht den imagenamen an sich.

d.h. $senden_x und $senden_y. frag einfach danach ...
 
Stimmt. Und was auch noch nicht gehen kann ist.
if (!$senden)
bzw auch dann nicht mit $senden_x.
Das Stichwort hier lautet register_globals=off und du müsstest
if(!$_POST['senden_x']) {
machen, damit es sicher läuft.
 
hat er ja scheinbar an wenn $senden bei ihm funktioniert. aber du solltest trotzdem mit den _POST/_GET arrays arbeiten, schliesslich will man ja wissen wo die werte herkommen.
 
Leute, es ist mega cool dass ihr mir helft, aber ich bin Anfänger und verstehe das Fachchinesisch nicht so gut :rolleyes: Kann das auch einfacher formuliert werden :-)
 
Original geschrieben von Pacific
Leute, es ist mega cool dass ihr mir helft, aber ich bin Anfänger und verstehe das Fachchinesisch nicht so gut :rolleyes: Kann das auch einfacher formuliert werden :-)
An und für sich: NEIN. Wer sich nicht mit den grundlegenden Sicherheits Aspekten und Methoden der Verarbeitung in PHP auskennt, der sollte solange nichts mit PHP machen, bis er eben dies nachgeholt hat. Sonst läuft er Gefahr, übelst auf die "Fresse" zu fallen. <- Und das ist noch vergleichsweise harmlos ausgedrückt.

Da mich aber grade irgendein Teufel der Gnädigkeit reitet:
PHP:
<?php
if (isset($_POST['senden_x'])){
// [...]
}
?>
<?php
if (!isset($_POST['senden_x'])){
?>
<form action="index.php?seite=1" method="post">

[...]

<td><input type="text" name="email" class="field1"></td>

[...]

<input type="image" name="senden" src="senden.jpg">
<?php
}
?>
Was ich dir jetzt noch nicht angepasst habe ist folgendes. Du wirst wohl noch versuchen, auf den Wert aus dem Feld email über $email zuzugreifen. Das musst du allerdings ebenfalls über $_POST['email'] lösen.
 
Ich habe nicht vor, übelst auf die Fresse zu fallen - ob nun harmlos ausgedrückt oder nicht - da ich nur eine kleine Homepage mache, kann mir da auch nicht passieren. Nichts desto trotz, herzlichen Dank für deine Erklärungen. Ich habe es jetzt wenigstens verstanden.
 
da ich nur eine kleine Homepage mache, kann mir da auch nicht passieren

Ich denke Du unterschätzt die Gefahr. Auch durch kleine BUGs in Deinem Code kann ein "Angreifer" von außen unter Umständen beliebigen Code über Deine Scripte ausführen. Und der dadurch entstandene Schaden (möglicherweise auch beim Webhoster selbst) geht zu allererst auf Dich zurück.

snuu
 
Zurück