You are not logged in.

steven27

Unregistered

1

Monday, August 11th 2008, 1:41pm

Address is not a valid IPv4 or IPv6 address

Hi@all,

Ich hoffe hier kann kir jemand helfen. Ich habe ein Gästebuch mit php und mysql, heute habe ich gesehen das ich folgende Fehlermeldung bekomme, wenn ich einen neuen Eintrag schreiben will. Am Code habe ich nichts geändert.

Warning: gethostbyaddr() [function.gethostbyaddr]: Address is not a valid IPv4 or IPv6 address in /var/www/web122/html/chaos_cats/gaestebuch/eintragen.php on line 9

Woran kann das Liegen?
<code>

$tempip = $REMOTE_ADDR;
$hosti=gethostbyaddr($tempip);
</code>


RichBone

Administrator

Posts: 34

  • Send private message

2

Tuesday, August 12th 2008, 9:22am

Hallo

In Ihrem Fall konnte die IP nicht richtig aufgelöst werden.

Wird hier nach der Server IP oder nach der Besucher IP abgefragt?

Mit freundlichen Grüßen

Martin Krüger

Viper

Unregistered

3

Wednesday, December 3rd 2008, 8:45pm

Hi,

ich hab das gleiche prob. aber er sucht die Client IP also die Besucher IP und Host auszulesen.

MfG Viper

Viper

Unregistered

4

Wednesday, December 3rd 2008, 11:05pm

Hi,

ich habs geschafft......



$host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
$ip=$_SERVER['REMOTE_ADDR'];



aber jetzt geht mein kontaktformular nicht mehr also angezeigt wirds aber wenn ich meine daten eingebe kommt normalerweiße "Ihre E-Mail wurde an uns Weitergeleitet. Wir werden uns so schnell wie möglich bei Ihnen melden."

aber jetzt kommt gar nichts mehr und ne mail wird auch nicht geschickt.

bitte um hilfe ;)

MfG

Andreas

Beginner

Posts: 34

Location: Berlin

Occupation: Student

  • Send private message

5

Thursday, December 4th 2008, 8:10am

Kleiner Hinweis um vorallem das lange Timeout beim Fehlschlagen von "gethostbyaddr" zu umgehen:
Deine beiden Zeilen wären so viel besser:

PHP Source code

1
2
$ip=$_SERVER['REMOTE_ADDR'];
$host=gethost($ip);

und die Funktion gethost definierst Du Dir wie folgt:

PHP Source code

1
2
3
4
5
6
7
8
function gethost($ip) {
   $host = `host $ip`;
   $host=end(explode(' ',$host));
   $host=substr($host,0,strlen($host)-2);
   $chk=split("\(",$host);
   if($chk[1]) return $ip." (".$chk[1].")";
   else return $host;
}

Probier es aus und Du wirst sehen, dass es erheblich schneller ist von der Laufzeit her!
Allerdings musst Du auch den Safe_Mode abschalten, sonst gehen die Backtick-Operationen nicht!

Gruß Andreas

Viper

Unregistered

6

Sunday, December 7th 2008, 11:58am

also wie gesagt die Host und die Ip das hab ich hinbekommen geht auch alles aber ich hab jetzt herausgefunden das ich das kontaktformular auf perl umschreiben muss aber ich kenn mich nciht mit perl aus

Viper

Unregistered

7

Thursday, December 11th 2008, 11:15am

Hi,

mein kontaktformular hab ich jetzt soweit hinbekommen ausser ein paar fehler ;)

kann mir da noch einer helfen????

und zwar ich hab den code:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']); 
$ip=$_SERVER['REMOTE_ADDR']; 

$recipient=xxx@xxx.de$recipient1=xxx@xxx.de$subject$betreff $header="From: " $_POST[email] . ""$email_body ="Die Mail wurde vom Kontakt Formular am " date("d.m.Y") . " um " date("H:i") . "Uhr gesendet!\n"$email_body.="Folgendes wurde eingetragen:\n\n"$email_body.="Name : " $_POST[name] . "\n"$email_body.="Vorname : " $_POST[vorname] . "\n"$email_body.="Betreff : " $_POST[betreff] . "\n"$email_body.="eMail : " $_POST[email] . "\n"$email_body.="Telefonnummer : " $_POST[telefon] . "\n"$email_body.="Rückantwort per : " $_POST[select] . "\n"$email_body.="Nachricht :"$email_body.=$_POST[nachricht] . "\n\n 


IP-Adresse: $ip 
Host: $host\n\n"mail($recipient,$subject,$email_body,$header); 
mail($recipien1t,$subject,$email_body,$header);




so das ist jetzt ohne überprüfung ob überhaupt was drin steht.....

das war eigentlich das:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
if($Submit){ 
if(strlen($name)<3){ 
$error_msg.="Bitte geben Sie ihren Namen an.<br>"; 
} 
if(strlen($vorname)<3){ 
$error_msg.="Bitte geben Sie ihren Vornamennamen an.<br>"; 
} 
if(strlen($betreff)<3){ 
$error_msg.="Bitte geben Sie einen betreff an.<br>"; 
} 
if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$email)){ 
$error_msg.="Bitte geben Sie eine gültige eMail-Adresse an.<br>"; 
} 
if(strlen($nachricht)<3){ 
$error_msg.="Bitte geben Sie eine Nachricht an!<br>"; 
} 
if($error_msg){ 
echo "Ihre Nachricht konnte aus folgenden Gründen leider nicht verschickt werden:<br><br>"; 
echo $error_msg; 
echo "<br>Bitte füllen Sie alle Felder aus."; 
}else{ 
$recipient=xxx@xxx.de$subject$betreff $header="From: " $email "\n"$mail_body ="Die Mail wurde vom Kontakt Formular am " date("d.m.Y") . " um " date("H:i") . "Uhr gesendet!\n"$mail_body.="Name: " $name ."\n"$mail_body.="Vorname: " $vorname ."\n"$mail_body.="Betreff " $betreff ."\n"$mail_body.="eMail: " $email ."\n"$mail_body.="Telefonnummer: " $telefon ."\n"$mail_body.="Rückantwort bitte per: " $select ."\n"$mail_body.="Nachricht: "$mail_body.=$nachricht ."\n 

\n 
IP-Adresse:$ip 
Host:$host"mail($recipient,$subject,$mail_body,$header); 

echo "Ihre E-Mail wurde an uns Weitergeleitet.\n<br> 
Wir werden uns so schnell wie möglich bei Ihnen melden."; 
} 
}




die überprüfung geht aber nicht mehr auf dem neuen server wie muss ich die umbauen das die wieder geht??
MfG

Viper

P.S.: Danke schon im vorraus an alle.

Andreas

Beginner

Posts: 34

Location: Berlin

Occupation: Student

  • Send private message

8

Friday, December 12th 2008, 9:51pm

Hallo!

Quoted

mein kontaktformular hab ich jetzt soweit hinbekommen ausser ein paar fehler

:S und sagst noch nicht mal WAS Du für Fehler hast, wo's klemmt? ?(

Nur mal eine kleine Frage: Warum willst Du das Rad neu erfinden?
Du musst Dir doch nicht den Kopf damit zerbrechen ein eigenes Kontakformular von Grund auf zu schreiben. Stattdessen nimm doch einfach eines dieser zu Hauf frei verfügbaren und pass Dir das dann minimal an Deine Wünsche an.
Kleine Empfehlung wäre: http://www.gaijin.at/scrphpcform.php
Da sparst Du Dir eine Menge Ärger, denn anpassen und erweitern eines funktionierenden Scripts ist erheblich leichter und nervenschonender :D

Gruß Andreas

Viper

Unregistered

9

Saturday, December 13th 2008, 1:45pm

Hallo!







Quoted

mein kontaktformular hab ich jetzt soweit hinbekommen ausser ein paar fehler

:S und sagst noch nicht mal WAS Du für Fehler hast, wo's klemmt? ?(

Nur mal eine kleine Frage: Warum willst Du das Rad neu erfinden?
Du musst Dir doch nicht den Kopf damit zerbrechen ein eigenes Kontakformular von Grund auf zu schreiben. Stattdessen nimm doch einfach eines dieser zu Hauf frei verfügbaren und pass Dir das dann minimal an Deine Wünsche an.
Kleine Empfehlung wäre: http://www.gaijin.at/scrphpcform.php
Da sparst Du Dir eine Menge Ärger, denn anpassen und erweitern eines funktionierenden Scripts ist erheblich leichter und nervenschonender :D

Gruß Andreas


Hi Andreas,

also 1. ist es immer besser ein eigenes zu machen weil dann weißt du was du hast und es ist dann deines was du selber gemacht hast.

2. das was du mir da vorschlägst geht nicht bei mir auf dem server das hab ich schon prob. aber guter einfall.



so und jetzt nochmal zu meinem fehler ;)

also wie gesagt das script geht jetzt soweit aber wenn ich die abfrage if am anfang rein mache:

PHP Source code

1
if($Submit){

dann geht das script nicht mehr wenn ich das aber rauslasse gehts ich bekomme nur am anfang wenn ich auf die seite gehe schon mal fehler das die felder nicht ausgefüllt sind.

jetzt ist es die frage wie kann ich das anstellen das ich die if abfrage wieder reinmachen kann so das es am anfang nicht überprüft wird.

MfG Viper

gadean

Unregistered

10

Friday, April 30th 2010, 3:02am

Moin Moin,
was du versuchen könntest wäre folgendes

PHP Source code

1
2
3
4
5
6
7
8
<?php
if(isset($Submit)) {
#dein Code
}
else {
#deine Kontaktform
}
?>

Counter:

Hits today: 1 | Hits yesterday: 485 | Hits record: 5,348 | Hits total: 235,284
Bookmark and Share