• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warum klappt das denn nicht?

  • Ersteller Ersteller Bastian Born
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
B

Bastian Born

Guest
Tja, wieder ich...
ich wollte fragen waum das nicht klappt!
es soll den user mit der IP: 80.135.180.231 nicht auf die seite lassen.

Code:
<?
  $IP = $_SERVER['REMOTE_ADDR'];
  $sperre = "80.135.180.231";
  
  if($sperre == $IP)
   {
    echo "Leider wurdest du vom Webmaster für diese Seite gesperrt!

     Es liegt z.B. dadran das du zu viel gespamt hast.

     Bei fragen an:
[email][email protected][/email]";
   }
  header ('location: index2.php'); 
 ?>
Kann mir jemand helfen??
 
wo hab ich denn im script rechtschreibfehler?? und brinmgen tut mir das jetzt auch nix! und auserdem sind bei dir auch wekche drinnen!
 
das wird dir auch nicht viel helfen da jeder normale Surfer eine dynamische IP-Addresse hat.
D.h nach jedem einloggen oder spätestends nach 24 Stunden bekommt er eine neue
von seinem ISP zugewiesen.
 
Bastian Born schrieb:
wo hab ich denn im script rechtschreibfehler?? und brinmgen tut mir das jetzt auch nix! und auserdem sind bei dir auch wekche drinnen!

jo, wo denn? (man hat echt das gefühl, du könntest net schreiben, wirklich...)
 
ich meine IM script!! und ich hab nicht danach gefragt ob ich rechtschreibfehler hab!! auserdem machst du auch welche!!

und das mit dem 24 Uhr weiß ich auch! ich will aber trotzdem wissen warum das nicht klappt!
 
Bastian Born schrieb:
ich meine IM script!! und ich hab nicht danach gefragt ob ich rechtschreibfehler hab!! auserdem machst du auch welche!!

und das mit dem 24 Uhr weiß ich auch! ich will aber trotzdem wissen warum das nicht klappt!


ist doch ganz einfach: weil es im moment keinen gibt, der diese ip hat ;P


//edit: habe gerade erst deinen fehler gesehen: wenn du header() verwendest, bringt es dir eh nichts davor noch etwas zu schreiben, weil er dich dann sofort weiterleitet und die sperre a) nichts bringt und b) der text au nich angezeigt wird ;)
 
Gaaanz viel!!
ach ja! es gibt welche die diese IP haben!! das ist meine eigende IP!!!
und deshalb weiß ich das jemand die hat!!! aber ich komme trotzdem auf meine homepage zu index2.php!
 
Bastian Born schrieb:
Gaaanz viel!!
ach ja! es gibt welche die diese IP haben!! das ist meine eigende IP!!!
und deshalb weiß ich das jemand die hat!!! aber ich komme trotzdem auf meine homepage zu index2.php!

guck auf mein edit
 
baddi guck dir nochmal an wie header() funktioniert und was ein HTTP Header ist und wann sie gesendet werden ...
@OP Warum sagst du deine Fehlermeldung erst nach 10 posts ? sorry aber ich finde sowas zum kotzen und würde dir am liebsten gar nicht helfen - das ist jedoch gar nicht nötig da dein script funktioniert - mit der ip wird man nicht weitergeleitet. nach deiner fehlerbeschreibung ist das skript also in Ordnung
[Ich halte es für vollkommen schwachsinnig aber das steh auf einem anderen Blatt]
 
ich hab header jetzt noch in else reingepackt, aber ich komm trotzdem durch!
 
ja da fehlt ein else ;)

dein script lässt nur den text ausgeben... du könntest ans ende auch noch ein exit(); setzen, dann wird nach der "fehlermeldung" das parsen abgebrochen.

btw: bist du dir sicher, dass der user eine statische IP hat?
 
dadrum gehts ja nicht! es ist nicht so wichtig das einer gesperrt wird sondern das das script nicht klappte!! aber geht jetzt wieder nachdem ich ausversehen alle usere auser den gesperrt hab :lol:
 
@niklas: mit der funktion header() wird man auf die gewählte seite weitergeleitet (je nachdem, was in den klammern steht). da php dies sofort umsetzt ist es normalerweise schwachsinnig davor oder danach noch etwas auszugeben. wo liegt also dein problem?
 
header sind [wie der name schon sagt] im kopf bereich der HTTP Anfrage / Antwort.
der Content ist darunter. [also zeitlich später wenn auf die Übertragung schaut]
d.h. mit dem senden des ersten zeichens für content wird erstmal eine Leere Zeile eingefügt die dem Verbindungspartner signalisiert HALT, Hier sind die Header vorbei.
jetzt wurden also die Header gesendet und der content fängt an, wenn du jetzt header() benutzt klappt es natürlich nicht weil es schon viel zu spät ist noch header im head unterzubringen, er wurde schon gesendet.
und warum glaubst du das ausgaben in zusammenhang mit header unsinnig sind?
einen speziellen Content-Type Header zu senden ohne eine Ausgabe danach ist schwachsinnig.
 
ich glaube, dass es schwachsinnig ist, weil es doch eh keiner mehr sieht, weil man doch dann weitergeleitet wird per header(), man sieht den text, der da stehen soll, also sowieso nicht... oder etwa doch? ich nich.
 
im normallfall siehst du den Text und eine fehlermeldung wird erzeugt weil header() fehlschlägt [die man dann auch sieht, je nach server konfiguration]

wenn du allerdings output buffering [ http://de.php.net/manual/en/ref.outcontrol.php ]
benutzt wird der content erstmal zurückgehalten bis das script terminiert oder im script flush benutzt wird - dann tritt das ein was du beschrieben hast

also unsinnig ist ein Location: header hier auf jedenfall nach dem content, entweder keine weiterleitung oder kein content
 
wo niklas recht hat, hat er recht!

immerhin wird der ja jetzt durch if ausgefilltert!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben