You are not logged in.

  • Login

1

Wednesday, January 24th 2007, 7:58am

PHP Notice: Undefined offset

In meinem Script tauchen plötzlich Fehler auf. Ich kann nicht lokalisieren was am Script der Fehler sei soll.

Hier mal das Script:

PHP Quellcode

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
45
46
47
48
49
50
function abfrage($server,$domainname,$endung) {
	settype($ausgabe,"array");
    $domain = $domainname.$endung;
    $fp = fsockopen ($server, 43, $errnr, $errstr);
    set_socket_blocking($fp,0);
    fputs($fp, $domain."\n");
    while (!feof($fp)) {
    	$result = trim(fgets($fp, 200));
		// Kommentare und Leerzeilen werden ignoriert
		if($result AND !ereg("^(%|-)",$result)) {
        // Schleife bricht ab, sobald u.s Ausdrücke vorkommen
			if(ereg("(No match|No entries found)",$result)) {
	        	$domainfrei = true;
				unset($ausgabe);
				break;
			}
			// Splittet das Ergebniss und erstellt eine Tabelle
			$zeile = explode(":",$result);
			$ausgabe[] = "<tr><td>".trim($zeile[0])."</td><td>".trim($zeile[1])."</td></tr>";
		}
	}
fclose($fp);
return $ausgabe;
}
 
<?php
if(isset($_POST['action'])) {
    // Ermittlung der Parameter für die Abfrage-Funktion
    $endung = explode(",",$_POST['endung']);
	$domain = $_POST['domain'];
    $server = $endung[1];
    $endung = $endung[0];
    $server = ($server == 2) ? 'whois.crsnic.net' : 'whois.ripe.net';
    // Aufruf der Funktion
    $ausgabe = abfrage($server,$_POST['domain'],$endung);
    echo '<table>';
    if(count($ausgabe)) {
      // Der Domainname ist vergeben
	  echo '<tr><td valign="middle"><img src="img/domain_notfree.gif" width="16" height="22" align="absmiddle">&nbsp;&nbsp;
	  		Die Domain <font color="#A30000">www.'.$domain.''.$endung.'</font> ist belegt.&nbsp;&nbsp;<a href="#" onclick="submitForm(); 
			return false;"><img src="img/domain_select.gif" width="129" height="19" border="0" align="absmiddle"></a></td></tr>';
    } else{
      // Der Domainname ist frei
	  echo '<tr><td valign="middle"><img src="img/domain_free.gif" width="21" height="19" align="absmiddle">&nbsp;&nbsp;
	  		Die Domain <font color="#00A300">www.'.$domain.''.$endung.'</font> ist frei.&nbsp;&nbsp;<a href="#" onclick="submitForm(); 
			return false;"><img src="img/domain_select.gif" width="129" height="19" border="0" align="absmiddle"></a></td></tr>';
    }
    echo "</table>";
}
?>


Beim Laden der Site kommt nun der Fehler:

HTML Code

1
2
PHP Notice: Undefined offset: 1 in functions.php on line 19 PHP Notice: Undefined offset: 1 in functions.php on line 19
PHP Notice: Undefined offset: 1 in functions.php on line 19 PHP Notice: Undefined variable: ausgabe in functions.php on line 23


Die Pfade sind richtig. Ausgegeben wir auch alles korrekt. Irgendwas muss aber mit dem Array nicht stimmen. Aber er liefert doch das richtige Ergebnis. Was ist das?

2

Wednesday, January 24th 2007, 10:24am

Naja, lass dir doch mal $zeile ausgeben, vielleicht kann explode keine 2 Teile herstellen und deshalb gibt es kein $zeile[0] und $zeile[1].

Welche Strings kommen denn da rein? Bsp. ?

cya

3

Wednesday, January 24th 2007, 2:24pm

Was ist der Inhalt von $zeile?

4

Wednesday, January 24th 2007, 11:08pm

$zeile gibt "ArrayArray" aus.
$zeile[0] = "Whois Server Version 2.0Domain names in the .com and .net domains can now be registeredwith many different competing registrars. Go to httpfor detailed information."
$zeile[1] = "//www.internic.net".
Aber er liefert mir ein richtiges Ergebnis. Mich stören halt nur die Err-Reportings. Muss ja an irgendetwas liegen.

Warum gibt er mir denn die Variable "1" in der Fehlermeldung an.
(PHP Notice: Undefined offset: 1 in functions.php on line 19)
Ich habe gar keine Variable die 1 heißt.

Vielleicht hat ja jemand ein anderes Script mit dem man Domains checken kann.

5

Thursday, January 25th 2007, 9:25am

ihr macht euch Probleme.
Man kann natürlich penibel alles sauber coden und alle Ausnahmen abfangen. Aber sauber zu coden muss man selbst lernen. Die meisten PHP Manuals nehmens auch nicht so genau.

Ich würde dir empfehlen einfach folgenden Code in die erste Zeile zu packen.

PHP Quellcode

1
error_reporting(E_ERROR | E_WARNING | E_PARSE);

6

Thursday, January 25th 2007, 9:29am

Offset bedeutet nicht variable, sonst hätte er dir "variable" hingeschrieben.

Offset ist meist das etwas das in Funktionen als Parameter übergeben wird, hier aber wohl die 1 in deiner Variable $zeile[1]

cya

Social bookmarks