kostenloser Webspace werbefrei: lima-city


Fehler bei 2 Datenbanken in ein PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    kann mir Jemand Helfen

    ich Habe 1 Einem PHP Script 2 Datenbanken eingebaut

    1) der Pruft Ob Dieser IP Text oder Email gibt wenn Ja dann Error (Dieser Text/Mail/IP ist Gespert)
    wenn nicht dann eintag ins 2 Datenbank

    Frage: Er versendet trotzt Sperre

    und in

    error_reporting(E_ALL);
    ini_set('display_errors', 1)

    zeigt Folgene Fehler

    Notice: Undefined index: IP in / on line 12

    Notice: Undefined index: Text in /on line 13

    Notice: Undefined variable: row in / on line 38

    Notice: Undefined variable: row in / on line 39

    Notice: Undefined variable: row in /home/ on line 38

    Notice: Undefined variable: row in / on line 39


    kann mir Helfen

    <?php
       $aErrors = array();
            if(isset($_POST['submit']) and $_POST['submit']=='Senden') {
    		$email = mysql_real_escape_string(trim($_POST['Email']));
    		$ip = mysql_real_escape_string(trim($_POST['IP']));
    		$text = mysql_real_escape_string(trim($_POST['Text']));
     
    		$sql = "
    		SELECT DISTINCT
    			us.id
    		FROM
    			Wochin_Sperre AS us
    		WHERE
    			'{$email}' LIKE us.email
    			OR '{$ip}' LIKE us.ip
    			OR '{$text}' LIKE us.text
    		";
     
    $result = mysql_query($sql);
    if(mysql_num_rows($result) > 0){
        //TODO: user_sperre hat zugeschlageb
    }else{
        //TODO: Insert
    	}
    
            $aNames = array(); 
            $aEmails = array(); 
            $sql = "SELECT Name, Email FROM User";
            $vResult = mysql_query($sql) or die(mysql_error()); 
            while($aRow=mysql_fetch_assoc($vResult)){ 
                $aNames[] = $row['Name']; 
                $aEmails[] = $row['Email']; 
            } 
             if(trim($_POST['Name'])=='') 
            $aErrors[]= "Bitte geben Sie einen Name ein."; 
            elseif(strlen(trim($_POST['Name'])) < 4) 
            $aErrors[]= "Ihr Name muss mindestens 4 Zeichen lang sein."; 
            if(trim($_POST['Email'])=='') 
            .............und so weiter.............................
            }
            if(isset($_POST['submit']) and $_POST['submit']=='Senden' and count($aErrors)==0) {
            unset($_SESSION['captcha_spam']);
                $cSql = "INSERT INTO `Wochin` (
            		Name, 
                    Email, 
                    ...und so weiter.....
                ) VALUES(
                '".mysql_real_escape_string(trim($_POST['Name']))."',
                '".mysql_real_escape_string(trim($_POST['Email']))."',
                '".mysql_real_escape_string(trim($_POST['eintag1']))."', 
                    CURDATE(), 
                 '".mysql_real_escape_string(trim($_POST['eintrag2']))."'		
                        )"; 
                     mysql_query($cSql) or die(mysql_error()); 
    				 
    ?>
    <h2>Vielen Dank!</h2>
    <?php
        }else {
    ?>
    <?php
        if(isset($_POST['submit']) and $_POST['submit']=='Senden') {
    ?>
    <h2>Nicht.</h2>
    
    <ul>
        <?php
            foreach($aErrors as $cError) {
                echo '<li>'.$cError.'</li>';
                    }
        ?>
    </ul>
    <?php
        }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" accept-charset="ISO-8859-1">
    </form>
    <?php
         }
    ?>


    >Danke voraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Die IP-Adresse des anfragenden findest du vermutlich nicht in $_POST sondern in $_SERVER["REMOTE_ADDR"] siehe auch http://php.net/manual/de/reserved.variables.server.phphttp://php.net/manual/de/reserved.variables.server.php

    Wenn $ip aber garnicht die ip-adresse enthält funktioniert der Rest natürlich auch nicht.

    Ist 'Text' tatsächlich beim absenden gesetzt gewesen? Scheint zumindest nicht beim Server angekommen zu sein. Kannst ja mal nachschauen was alles im $_POST drinne steht die funktion print_r() sollte dir dabei helfen
    print_r($_POST);


    Vielleicht hilft dir das schon ein bischen weiter.

    PS: Bitte schaue, dass du den code auch so postest wie er auf dem Server ausgeführt wird, das macht die Zuordnung der Fehler (Zeilennummern) deutlich leichter…
  4. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    bildkritik

    die seite die du gepostet hast ist 404 Not Found
  5. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    soll auch bei 1Tabelle IP Prüfen ob die Gibt und nicht Speichen

    bei zeite Table Soll Speichern

    und dort hab ich $_SERVER["REMOTE_ADDR"]
  6. tshaika schrieb:
    soll auch bei 1Tabelle IP Prüfen ob die Gibt und nicht Speichen


    Prüfen gegen eine Post wert, wenn du aufgrund der ip adresse sperren möchtest, ist denke wenig sinnvoll, da der Nutzer dann ja per post eine belibige ip-adresse übermitteln kann.

    liefert deine mysql abfrage denn überhaupt etwas zurück, wenn gesperrt werden soll? Ich meine die Syntax für like ist andersrum: http://www.w3schools.com/sql/sql_like.asp Ich habe da mal dein sql abgeändert (ebenfalls die Anführungszeichen anders gesetzt)
    $sql = '
    		SELECT DISTINCT
    			us.id
    		FROM
    			Wochin_Sperre AS us
    		WHERE
    			us.email LIKE "%' .$email.'%"
    			OR us.ip LIKE "%'. $ip.'%"
    			OR us.text LIKE "%'.$text.'%"
    		';


    lass dir die abfrage doch mal per
    echo $sql
    ausgeben und schaue in z.B. phpmyadmin ob du resultate bekommst wenn du welche bekommen solltest.
  7. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    OK
    das hat mir gegeben

    SELECT DISTINCT us.id FROM user_sperre AS us WHERE us.email LIKE "%%" OR us.ip LIKE "%%" OR us.text LIKE "%%"


    aber foher war noch das

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/webpages/lima-city/tshaika/html on line 22


  8. da habe ich doch glatt die doppelten und einfachen anführungszeichen vertauscht… sry :wall:

    Neuer versuch mit:
    $sql = "SELECT DISTINCT
    			us.id
    	     FROM
    			Wochin_Sperre AS us
    	    WHERE
    			us.email LIKE '%" .$email."%'
    			OR us.ip LIKE '%". $ip."%'
    			OR us.text LIKE '%".$text."%'
    		";
  9. Die Fehlermeldungen
    Notice: Undefined index: IP in / on line 12

    Notice: Undefined index: Text in /on line 13

    beziehen sich auf
    $ip = mysql_real_escape_string(trim($_POST['IP']));
    		$text = mysql_real_escape_string(trim($_POST['Text']));

    und bedeuten, dass im Superglobal $_POST() weder "IP" noch "TEXT" als Index vorliegen.
    Mit anderen Worten eine Übertragung durch die Methode POST fand nicht statt.
    ---------------------------------------------------
    Die Fehlermeldungen
    Notice: Undefined variable: row in / on line 38
    
    Notice: Undefined variable: row in / on line 39
    
    Notice: Undefined variable: row in /home/ on line 38
    
    Notice: Undefined variable: row in / on line 39

    beziehen sich auf
    while($aRow=mysql_fetch_assoc($vResult)){ 
                $aNames[] = $row['Name']; 
                $aEmails[] = $row['Email']; 
            }

    Ändere die Variable $aRow in $row um.
    Das ganze wird dir aber kein Ergebnis bringen, da deine DB-Abfrage wegen der fehlenden Werte für $ip und $text ins Leere läuft.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!