php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 31-01-2010, 15:39
unnamedkh
 Registrierter Benutzer
Links : Onlinestatus : unnamedkh ist offline
Registriert seit: Nov 2006
Beiträge: 20
unnamedkh ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem bei Verschieben eines Such-Skritpes

Hallo zusammen,

ich habe folgendes Problem: Ich möchte eine einfache IP-Sperre für eine Bewertung realisieren. Dazu lasse ich alle verwendeten IPs in eine Spalte ("IP") eintragen. Dann lasse ich nach dieser IP suchen und falls gefunden, darf derjenige nicht mehr abstimmen. Soweit so gut. Das Script läuft auch - jedoch nur relativ weit oben in meinem Gesamtcode. Kopiere ich es weiter nach unten, funktioniert die Überprüfung der IP nicht mehr. Hat jemand eine Idee, woran das liegen könnte? Ich bin derzeit ratlos. Anbei der verkürzte Code.

PHP-Code:
<?
  $ip
=$_SERVER['REMOTE_ADDR'];
  
$aid=$comments[id];

   
$voted=mysql_num_rows(mysql_query("SELECT IP FROM test WHERE IP LIKE '%".$ip."%' AND id='$aid'"));
    if(!
$voted)
      {
      
//darf abstimmen
      
}
    else
      {
      
//darf nicht abstimmen
      
}

?>
Mit Zitat antworten
  #2 (permalink)  
Alt 31-01-2010, 15:43
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

„Funzt nich“ ist absolut keine brauchbare Problembeschreibung.

http://www.php-resource.de/forum/php...uncements.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 31-01-2010, 15:43
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Pack doch noch mal den Code nach unten. Und dann gibst du dir den Query per echo aus. Ich vermute, dass du irgendwo eine Variable überschreibst.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #4 (permalink)  
Alt 31-01-2010, 15:58
unnamedkh
 Registrierter Benutzer
Links : Onlinestatus : unnamedkh ist offline
Registriert seit: Nov 2006
Beiträge: 20
unnamedkh ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@wahsaga: "Funktioniert nicht" heißt, dass ich immer voten (if) kann, obwohl meine IP schon vorhanden ist.

@Kropff: Blöde Frage, einfach "echo $voted" oder muss ich etwas beachten? Wenn ich das mache, dann kommt "oben" eine "1", unten erscheint nichts.
Wenn ich eine Variable überschreiben sollte, dann hätte ich doch bei einem anderen Script Probleme, aber nicht bei dem, das überschreibt, oder? Da es auch fast am Ende meines Gesamtcodes steht, dürfte danach auch nix überschreiben.
Mit Zitat antworten
  #5 (permalink)  
Alt 31-01-2010, 16:03
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von unnamedkh Beitrag anzeigen
"Funktioniert nicht" heißt, dass ich immer voten (if) kann, obwohl meine IP schon vorhanden ist.
Ja, toll - hilft aber immer noch nicht weiter.

Zitat:
Blöde Frage, einfach "echo $voted" oder muss ich etwas beachten? Wenn ich das mache, dann kommt "oben" eine "1", unten erscheint nichts.
Das deutet nach wie vor darauf hin, dass die Datenbankabfrage schief gegangen ist.

Um herauszufinden, warum, liest du jetzt erst mal die Regeln, und machst, was da drin steht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 31-01-2010, 16:06
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von unnamedkh Beitrag anzeigen
@Kropff: Blöde Frage, einfach "echo $voted" oder muss ich etwas beachten?
Wer lesen kann, ist klar im Vorteil:
Zitat:
Und dann gibst du dir den Query per echo aus
PHP-Code:
echo "SELECT IP FROM test WHERE IP LIKE '%".$ip."%' AND id='$aid'" 
Außerdem ist das LIKE imho fehl am Platz. Da solltest du mit = arbeiten.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 31-01-2010, 16:20
unnamedkh
 Registrierter Benutzer
Links : Onlinestatus : unnamedkh ist offline
Registriert seit: Nov 2006
Beiträge: 20
unnamedkh ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
Ja, toll - hilft aber immer noch nicht weiter.
Ich weiß nicht, was ich Dir noch schreiben soll. Wie geschrieben, funktioniert das Skript relativ weit oben ohne Probleme, weiter unten führt er immer else anstatt wie eigentlich gewollt if aus. Wenn ich dann else ausführen (also vote), wird alles erhöht, IP eingetragen, allerdings kann ich weiter else ausführen, sprich ist $voted immer noch nicht das, was ich will. Die Spalte IP sieht in etwa so aus "ip, ip2, ip3, ...". Mehr fällt mir beim besten Willen nicht ein.

@Kropff: Danke. Jetzt weiß ich, dass ich vorher die Variable $ip schon einmal verwende (nach dem ersten Aufruf des Skriptes und vor dem letzten/zweiten Aufruf). Ändert aber nichts, da der Wert gleich ist.

Nein, like stimmt meiner Meinung nach, weil ich nach einem Muster in der Spalte suche. Da in der Spalte mehrere IPs sind, suche ich nur nach einem Muster - die einzigartige IP.
Mit Zitat antworten
  #8 (permalink)  
Alt 31-01-2010, 16:32
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das Problem mit LIKE ist aber, dass %$ip% mit $ip = 1.0.0.1 nicht nur auf 1.0.0.1 passt sondern auch auf 11.0.0.11 und noch viele weitere IPs. Ich hoffe du verwendest ein Trennzeichen in der IP-Spalte, z.B. ein Komma. Dann solltest du %,$ip,% verwenden.
Noch besser wäre natürlich, wenn du deine DB normalisierst!
Mit Zitat antworten
  #9 (permalink)  
Alt 31-01-2010, 16:39
unnamedkh
 Registrierter Benutzer
Links : Onlinestatus : unnamedkh ist offline
Registriert seit: Nov 2006
Beiträge: 20
unnamedkh ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Das Problem mit LIKE ist aber, dass %$ip% mit $ip = 1.0.0.1 nicht nur auf 1.0.0.1 passt sondern auch auf 11.0.0.11 und noch viele weitere IPs. Ich hoffe du verwendest ein Trennzeichen in der IP-Spalte, z.B. ein Komma. Dann solltest du %,$ip,% verwenden.
Noch besser wäre natürlich, wenn du deine DB normalisierst!
Ah, danke, daran habe ich nicht gedacht. Werde ich die Komma-Variante verwenden, zumal ich nicht genau weiß, was Du mit "normalisieren" meinst!?
Mit Zitat antworten
  #10 (permalink)  
Alt 31-01-2010, 16:43
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von unnamedkh Beitrag anzeigen
zumal ich nicht genau weiß, was Du mit "normalisieren" meinst!?
Normalisierung

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit case include eines GB´s the-duke PHP Developer Forum 10 22-03-2008 20:19
Problem mit Position eines JS bei include vns-design HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 0 02-01-2006 18:56
Problem mit der Sortierung eines Arrays picco PHP Developer Forum 22 04-05-2005 23:53
Problem mit Ändern eines Eintrages s1x SQL / Datenbanken 12 06-11-2004 21:55
Problem mit löschen eines Eintrages adihas PHP Developer Forum 23 12-02-2003 22:13

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:18 Uhr.