Autor Zpráva
Fastman
Profil
Zdravím,

Nevím proč, ale při odeslání to hlásí chybu "No database selected".

<?php

$localhost = "localhost";
$user = "xxxxxx";
$password = "xxxxxxxx";
mysql_connect($localhost, $user, $password);

$ftp = "pureftpd";

if(isset($_POST['submit'])) {

  $User = mysql_real_escape_string($_POST['User']);
  
  /* --- KONTROLA ZADANÝCH ÚDAJŮ --- */
  
  $user_check = mysql_query("SELECT User FROM $ftp.ftpd WHERE User='".$User."'");
  if($User==""){
    echo'<div class="error">Nebylo vyplněné FTP jméno</div>';
  }
  else if(mysql_num_rows($user_check)){
    echo'<div class="error">Tohle FTP jméno je již registrované</div>';
  }
  else{
    $sql= mysql_query("INSERT INTO ftpd SET User='$User';") or die(mysql_error());
    echo'FTP ZAPSÁNO';
  }
}

?>

<!-- formulář pro FTP -->
      <form action="<?php $PHP_SELF; ?>" method="POST">
            
                    <label for="User">FTP username</label>
                    <input name="User" type="text" />
          <center><input type="submit" value="odeslat" name="submit"/></center>
                                      
            </form>

Díky všem za odpovědi.
Fisir
Profil
Reaguji na Fastmana:
Použij raději rozšíření MySQLi, tam je práce s vícero databázemi jednoduchá.
Fastman
Profil
Fisir:

Děkuji za odpověď, ale MySQLi bohužel neznám, jak mám tedy napsat kód aby vše fungovalo?
Radek9
Profil
Fastman:
Asi bych prostě přidal volání funkce mysql_select_db. ;-)
Fastman
Profil
Radek9:

To už jsem zkoušel a vím, že to funguje, ale potřebuji propojit více databází, proto jsem zvolil tuhle funkci.
rafej
Profil
U druhého dotazu

Fisir:
INSERT INTO ftpd SET User='$User';

ti chybí název databáze. Mělo by tam být:

INSERT INTO $ftp.ftpd SET User='$User';

Jinak ještě by bylo dobré přidat zpětné apostrofy kolem názvů databáze, tabulek a sloupců. A hlavně ošetřit obsah proměnné $User, jinak ti hrozí SQL injection.
Fastman
Profil
rafej:
INSERT INTO $ftp.ftpd SET User='$User';
Díky moc.. nechápu, jak jsem si toho nemohl nevšimnout. Ještě jednou, díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: