Solucionado (ver solução)
Solucionado
(ver solução)
17
respostas

PHP - Criação de Senha

Boa noite, agradeceria ajuda. Estou tentando criar uma senha aleatória e não estou conseguindo. Poderiam dar uma olhada e me corrigir se possivel?

classe Noivos na função get e setSenha

public function getSenha()
{
return $this->senha;
}
public function setSenha($senha, $tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)
{
// Caracteres de cada tipo
$lmin = 'abcdefghijkmnpqrstuvwxyz';
$lmai = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
$num = '1234567890';
$simb = '!@#$%*-';
// Variáveis internas
$retorno = '';
$caracteres = '';
// Agrupamos todos os caracteres que poderão ser utilizados
$caracteres .= $lmin;
if ($maiusculas) $caracteres .= $lmai;
if ($numeros) $caracteres .= $num;
if ($simbolos) $caracteres .= $simb;
// Calculamos o total de caracteres possíveis
$len = strlen($caracteres);
for ($n = 1; $n <= $tamanho; $n++) {
// Criamos um número aleatório de 1 até $len para pegar um dos caracteres
$rand = mt_rand(1, $len);
// Concatenamos um dos caracteres na variável $retorno
$retorno .= $caracteres[$rand-1];
}
return $retorno;
}

arquivo adiciona-casal

<?php require_once ("conecta.php");?>
<?php require_once ("noivosDAO.php");?>
<?php require_once ("noivos.php");?>

<?php
$noivo = new Noivo();
$noivo->setNome1($_POST["nome1"]) ;
$noivo->setSobrenome1($_POST["sobrenome1"]);
$noivo->setEmail($_POST["email"]);
$noivo->setNome2($_POST["nome2"]);
$noivo->setSobrenome2($_POST["sobrenome2"]);
$noivo->setTelefone($_POST["telefone"]);
$noivo->setRua($_POST["rua"]);
$noivo->setNumero($_POST["numero"]);
$noivo->setCep($_POST["cep"]);
$noivo->setCidade($_POST["cidade"]);
$noivo->setSenha($_POST["senha"]);
$nome_imagem = $noivo->setFoto( $_FILES["foto"]);

$dao = new noivosDAO($conexao);
if ($dao->insereNoivos($noivo, $nome_imagem)) {
?>
<!--<script language="JavaScript"> 
window.location="escolha-noivos.php"; 
</script>
            <php
             }else{
               $msg = mysqli_error($conexao);
               echo ($msg);
                ?>

            <p class="text-danger">O Casal <?= $nome1; ?> não foi adicionado, por favor volte a pagina de cadastro e verifique o erro.</p>
            <a href="cadastro-noivos.php" button type="button" class="btn btn-info btn-fill btn-l">Voltar <i class="fa fa-chevron-right"></i></button></a>
           <?php
          }
?>-->

noivosDAO na função de insereNoivos

function insereNoivos ($noivos, $nome_imagem) {

  $query = "insert into noivos (nome1, sobrenome1, email, nome2, sobrenome2,
              telefone , rua, numero, cep, cidade, senha, foto) values ('{$noivos->getNome1()}', '{$noivos->getSobrenome1()}', '{$noivos->getEmail()}', '{$noivos->getNome2()}','{$noivos->getSobrenome2()}', {$noivos->getTelefone()}, '{$noivos->getRua()}', '{$noivos->getNumero()}', '{$noivos->getCep()}', '{$noivos->getCidade()}', '{$noivos->getSenha()}', '" .$nome_imagem. "')";

      echo ($query); 

  return mysqli_query($this->conexao, $query);
}
17 respostas

TESTEI o código isolado e está funcionando.

<?php

function getSenha()
{
    return $this->senha;
}

function setSenha($senha, $tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)
{
    // Caracteres de cada tipo
    $lmin = 'abcdefghijkmnpqrstuvwxyz';
    $lmai = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
    $num = '1234567890';
    $simb = '!@#$%*-';
    // Variáveis internas
    $retorno = '';
    $caracteres = '';
    // Agrupamos todos os caracteres que poderão ser utilizados
    $caracteres .= $lmin;
    if ($maiusculas) $caracteres .= $lmai;
    if ($numeros) $caracteres .= $num;
    if ($simbolos) $caracteres .= $simb;
    // Calculamos o total de caracteres possíveis
    $len = strlen($caracteres);
    for ($n = 1; $n <= $tamanho; $n++) {
        // Criamos um número aleatório de 1 até $len para pegar um dos caracteres
        $rand = mt_rand(1, $len);
        // Concatenamos um dos caracteres na variável $retorno
        $retorno .= $caracteres[$rand-1];
    }
    return $retorno;
}


echo setSenha('gabriel', 8, true, true, false);

?>

Aparece alguma mensagem de erro pra você?

Oi Gabriel não aparece mensagem simplesmente a função setSenha não está enviando para a função insereNoivos (sql) veja como está o resultado:

insert into noivos (nome1, sobrenome1, email, nome2, sobrenome2, telefone , rua, numero, cep, cidade, senha, foto) values ('Sergio', 'Guerjik', 'superkovalev@gmail.com', 'Marilú','Guerjik', 1533632222, 'R. Rosalvina  Nogueira', '25', '18550-000', 'Boituva', '', 'a5c712287117bad9746c5b06c103bcb4.jpg')

A inclusão dos dados estão acontecendo menos a senha aleatória. O ultimo resultado é o md5 da foto.

Faça o seguinte para verificar se o SetSenha tá funcionando:

$noivo->setSenha($_POST["senha"]);
$nome_imagem = $noivo->setFoto( $_FILES["foto"]);
var_dump($noivo); exit;

O var_dump irá mostrar o conteúdo de noivo. Desta forma você poderá verificar se o setSenha fez o trabalho .

Oi Gabriel, retorna NULL

["cidade":"Noivo":private]=> string(7) "Boituva" ["senha":"Noivo":private]=> NULL

Faz o seguinte:

var_dump($_POST["senha"]);  // para verificar se a senha está sendo enviada do formulário
$noivo->setSenha($_POST["senha"]);
echo $noivo->getSenha(); // para verificar se a função trabalhou.
exit;

Retornou:

string(0) ""

E não incluiu o casal

Parece que o problema tá no seu formulário. O nome do campo da 'senha' tá correto? Se possível, mostre o código do formulário.

Oi Gabriel esse é o formulário. Na senha como o cliente não vai definir no cadastro eu utilizei hidden veja:

<div class="col-sm-5 col-sm-offset-1">
                                                <div class="form-group label-floating">
                                                    <label class="control-label">Cidade</label>
                                                    <input name="cidade" type="text" class="form-control" required="true">
                                                </div>
                                            </div>
<input type="hidden" name="senha">

                                        </div>
                                    </div>
                                </div>
                                <div class="wizard-footer">
                                    <div class="pull-right">
                                        <input type='button' class='btn btn-next btn-fill btn-success btn-wd' name='next' value='Proximo' />

O erro tá aqui......

<input type="hidden" name="senha">

O correto é passar algum valor:

<input type="hidden" name="senha" value="senhabase">

Mas se você quiser que o computador escolha aleatoriamente sem interferência do usuário você terá que mudar a classe que gera a senha:

public function setSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)

Vai funcionar das duas formas. Sugiro a última.

Você também pode usar a data e a hora para gerar uma senha mais aleatória ainda...

<?php

public  function setSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)
{
        $senha_base = date('ymhs');
    // Caracteres de cada tipo
    $lmin = 'abcdefghijkmnpqrstuvwxyz';
    $lmai = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
    $num = '1234567890';
    $simb = '!@#$%*-';
    // Variáveis internas
    $retorno = '';
    $caracteres = $senha_base;
    // Agrupamos todos os caracteres que poderão ser utilizados
    $caracteres .= $lmin;
    if ($maiusculas) $caracteres .= $lmai;
    if ($numeros) $caracteres .= $num;
    if ($simbolos) $caracteres .= $simb;
    // Calculamos o total de caracteres possíveis
    $len = strlen($caracteres);
    for ($n = 1; $n <= $tamanho; $n++) {
        // Criamos um número aleatório de 1 até $len para pegar um dos caracteres
        $rand = mt_rand(1, $len);
        // Concatenamos um dos caracteres na variável $retorno
        $retorno .= $caracteres[$rand-1];
    }
    return $retorno;
}
?>

Gabriel, da primeira forma, pedindo para o usuario escolher sua própria senha ok. Não haveria problemas, eu faria um processo de cadastramento normal, com login (email digitado pelo cliente) + senha que ele escolhesse.

Da segunda eu tentei mas continua não funcionando. Não sei onde estou errando.

Eu estou tentando implementar desta forma, porque eu vejo que muitos sites criam sua propria senha no cadastramento e depois enviam por email para que você utilize ela e se quiser depois altere.

Nâo sei se isso é por causa de segurança, então, pensei assim se os caras que são grandes fazem isso, por via das dúvidas eu estou optando pela segunda, mas como você pode notar estou encontrando muita difiiculdade.

Preciso da tua ajuda.

Mude esta parte do código

$noivo->setSenha($_POST["senha"]);

Para:

$noivo->setSenha();

Altere a função (método) conforme abaixo: Isto irá funcionar.

public  function setSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)
{
        $senha_base = date('ymhs');
    // Caracteres de cada tipo
    $lmin = 'abcdefghijkmnpqrstuvwxyz';
    $lmai = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
    $num = '1234567890';
    $simb = '!@#$%*-';
    // Variáveis internas
    $retorno = '';
    $caracteres = $senha_base;
    // Agrupamos todos os caracteres que poderão ser utilizados
    $caracteres .= $lmin;
    if ($maiusculas) $caracteres .= $lmai;
    if ($numeros) $caracteres .= $num;
    if ($simbolos) $caracteres .= $simb;
    // Calculamos o total de caracteres possíveis
    $len = strlen($caracteres);
    for ($n = 1; $n <= $tamanho; $n++) {
        // Criamos um número aleatório de 1 até $len para pegar um dos caracteres
        $rand = mt_rand(1, $len);
        // Concatenamos um dos caracteres na variável $retorno
        $retorno .= $caracteres[$rand-1];
    }
    return $retorno;
}

Gabriel, fiz as alterações mas continua insistindo de enviar NULL veja:

insert into noivos (nome1, sobrenome1, email, nome2, sobrenome2, telefone , rua, numero, cep, cidade, senha, foto) values ('Sergio', 'Guerjik', 'superkovalev@gmail.com', 'Marilú','Guerjik', 1533632222, 'R. Rosalvina  Nogueira', '25', '18550-000', 'Boituva', '', '368b54608757ea84dad30832416bc9cf.JPG')

o cadastro é salvo no BD mas sem o codigo da senha, no BD o campo aparece em branco.

Você pode postar os código completos em sequência? Tem algo que não foi feito.

solução!

Já sei onde está o erro! Você não está guardando a senha. Ao invés de fazer:

return $retorno;

Faça:

$this->senha = $retorno;

Desta forma você estará guardando o retorno da função dentro do objeto no atributo senha.

Por isto que a senha não estava sendo recuperada do objeto.

Obrigado Gabriel segue:

html:

<?php require_once ("cabecalho.php"); ?>

<body>
    <div class="image-container set-full-height" style="background-image: url('assets/img/presente.jfif')">

<!--verifica email     --> 


         <!--   Big container   -->
        <div class="container">
            <div class="row">
                <div class="col-sm-8 col-sm-offset-2">
                    <!--      Wizard container        -->
                    <div class="wizard-container">
                        <div class="card wizard-card" data-color="purple" id="wizardProfile">
      <form action="adiciona-casal.php" method="post" enctype="multipart/form-data">
                        <!--        You can switch " data-color="purple" "  with one of the next bright colors: "green", "orange", "red", "blue"       -->

                                <div class="wizard-header">
                                    <h3 class="wizard-title">
                                       Preencha o Cadastro
                                    </h3>
                                    <h5>Informacoes sobre o Casal.</h5>

                                </div>
                                <div class="wizard-navigation">
                                    <ul>
                                        <li><a href="#about" data-toggle="tab">Sobre Voces</a></li>
                                        <li><a href="#account" data-toggle="tab">Contato</a></li>
                                        <li><a href="#address" data-toggle="tab">Endereco do Casal</a></li>
                                    </ul>
                                </div>

                                <div class="tab-content">
                                    <div class="tab-pane" id="about">
                                      <div class="row">
                                            <h4 class="info-text"> Estes sao os seus dados</h4>
                                            <div class="col-sm-4 col-sm-offset-1">
                                                <div class="picture-container">
                                                    <div class="picture">
                                                        <img src="assets/img/default-avatar.png" class="picture-src" id="wizardPicturePreview" title=""/>
                                                        <input type="file" name="foto" id="wizard-picture" value="foto" >
                                                    </div>
                                                    <h6>Escolha a foto do Casal</h6>

                                                </div>
                                            </div>
                                            <div class="col-sm-6">
                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">face</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                      <label class="control-label">Primeiro Nome</label>
                                                      <input name="nome1" type="text" class="form-control" required="true">
                                                    </div>
                                                </div>

                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">record_voice_over</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                      <label class="control-label">Ultimo Nome</label>
                                                      <input name="sobrenome1" type="text" class="form-control" required="true">
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col-sm-10 col-sm-offset-1">

                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">email</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                        <label class="control-label">Email <small>(obrigatorio)</small></label>
                                                        <input name="email" type="email" class="form-control">
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="tab-pane" id="account">
                                        <div class="row">
                                            <h4 class="info-text"> Aqui vao os dados dele ou dela</h4>
                                            <div class="col-sm-4 col-sm-offset-1">

                                            </div>
                                            <div class="col-sm-6">
                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">face</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                      <label class="control-label">Primeiro Nome</label>
                                                      <input name="nome2" type="text" class="form-control" required="true">
                                                    </div>
                                                </div>

                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">record_voice_over</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                      <label class="control-label">Ultimo Nome</label>
                                                      <input name="sobrenome2" type="text" class="form-control" required="true">
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col-sm-10 col-sm-offset-1">
                                                <div class="input-group">
                                                    <span class="input-group-addon">
                                                        <i class="material-icons">phone</i>
                                                    </span>
                                                    <div class="form-group label-floating">
                                                        <label class="control-label">Telefone do Casal<small>(com DDD)</small></label>
                                                        <input name="telefone" type="text" class="form-control" required="true">
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col-sm-10 col-sm-offset-1">
                                                <div class="input-group">


                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="tab-pane" id="address">
                                        <div class="row">
                                            <div class="col-sm-12">
                                                <h4 class="info-text"> Endereco do Casal </h4>
                                            </div>
                                            <div class="col-sm-7 col-sm-offset-1">
                                                <div class="form-group label-floating">
                                                    <label class="control-label">Rua</label>
                                                    <input name="rua" type="text" class="form-control" required="true">
                                                </div>
                                            </div>
                                            <div class="col-sm-3">
                                                <div class="form-group label-floating">
                                                    <label class="control-label">Numero</label>
                                                    <input name="numero" type="text" class="form-control" required="true">
                                                </div>
                                            </div>
                                            <div class="col-sm-5 col-sm-offset-1">
                                                <div class="form-group label-floating">
                                                    <label class="control-label">Cep</label>
                                                    <input name="cep" type="text" class="form-control" required="true">
                                                </div>
                                            </div>
                                            <div class="col-sm-5 col-sm-offset-1">
                                                <div class="form-group label-floating">
                                                    <label class="control-label">Cidade</label>
                                                    <input name="cidade" type="text" class="form-control" required="true">
                                                </div>
                                            </div>
<input type="hidden" name="senha" value="senhabase">

                                        </div>
                                    </div>
                                </div>
                                <div class="wizard-footer">
                                    <div class="pull-right">
                                        <input type='button' class='btn btn-next btn-fill btn-success btn-wd' name='next' value='Proximo' />

                                        <input type='submit' class='btn btn-finish btn-fill btn-success btn-wd' name='finish' value='Finalizar' />
                                    </div>

                                     <div class="pull-left">
                                        <input type='button' class='btn btn-previous btn-fill btn-default btn-wd' name='previous' value='Anterior' />
                                    </div>
                                    <div class="clearfix"></div>
                                </div>
                            </form>
                        </div>
                    </div> <!-- wizard container -->
                </div>
            </div><!-- end row -->
        </div> <!--  big container -->

        <div class="footer">
            <div class="container text-center">
                Feito com <i class="fa fa-heart heart"></i> by <a href="http://www.tecnologiams.com.br">tecnologiaMS</a>
            </div>
        </div>
    </div>

</body>
    <!--   Core JS Files   -->
    <script src="assets/js/jquery-2.2.4.min.js" type="text/javascript"></script>
    <script src="assets/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="assets/js/jquery.bootstrap.js" type="text/javascript"></script>

    <!--  Plugin for the Wizard -->
    <script src="assets/js/material-bootstrap-wizard.js"></script>

    <!--  More information about jquery.validate here: http://jqueryvalidation.org/     -->
    <script src="assets/js/jquery.validate.min.js"></script>

</html>

adiciona-casal

<?php require_once ("conecta.php");?>
<?php require_once ("noivosDAO.php");?>
<?php require_once ("noivos.php");?>

<?php
$noivo = new Noivo();
$noivo->setNome1($_POST["nome1"]) ;
$noivo->setSobrenome1($_POST["sobrenome1"]);
$noivo->setEmail($_POST["email"]);
$noivo->setNome2($_POST["nome2"]);
$noivo->setSobrenome2($_POST["sobrenome2"]);
$noivo->setTelefone($_POST["telefone"]);
$noivo->setRua($_POST["rua"]);
$noivo->setNumero($_POST["numero"]);
$noivo->setCep($_POST["cep"]);
$noivo->setCidade($_POST["cidade"]);
$noivo->setSenha();
$nome_imagem = $noivo->setFoto( $_FILES["foto"]);

$dao = new noivosDAO($conexao);
if ($dao->insereNoivos($noivo, $nome_imagem)) {
?>
<!--<script language="JavaScript"> 
window.location="escolha-noivos.php"; 
</script>
            <php
             }else{
               $msg = mysqli_error($conexao);
               echo ($msg);
                ?>

            <p class="text-danger">O Casal <?= $nome1; ?> não foi adicionado, por favor volte a pagina de cadastro e verifique o erro.</p>
            <a href="cadastro-noivos.php" button type="button" class="btn btn-info btn-fill btn-l">Voltar <i class="fa fa-chevron-right"></i></button></a>
           <?php
          }
?>-->

classe noivos

<?php
class Noivo
{
private $id;
private $nome1;
private $sobrenome1;
private $email;
private $nome2;
private $sobrenome2;
private $telefone;
private $rua;
private $numero;
private $cep;
private $cidade;
private $senha;
private $foto;


public function getId()
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
}

public function getNome1()
{
return $this->nome1;
}
public function setNome1($nome1)
{
$this->nome1 = $nome1;
}

public function getSobrenome1()
{
return $this->sobrenome1;
}
public function setSobrenome1($sobrenome1)
{
$this->sobrenome1 = $sobrenome1;
}

public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}

public function getNome2()
{
return $this->nome2;
}
public function setNome2($nome2)
{
$this->nome2 = $nome2;
}

public function getSobrenome2()
{
return $this->sobrenome2;
}
public function setSobrenome2($sobrenome2)
{
$this->sobrenome2 = $sobrenome2;
}

public function getTelefone()
{
return $this->telefone;
}
public function setTelefone($telefone)
{
$this->telefone = $telefone;
}

public function getRua()
{
return $this->rua;
}
public function setRua($rua)
{
$this->rua = $rua;
}

public function getNumero()
{
return $this->numero;
}
public function setNumero($numero)
{
$this->numero = $numero;
}

public function getCep()
{
return $this->cep;
}
public function setCep($cep)
{
$this->cep = $cep;
}

public function getCidade()
{
return $this->cidade;
}
public function setCidade($cidade)
{
$this->cidade = $cidade;
}

public function getSenha()
{
return $this->senha;
}
public  function setSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos
= false)
{
        $senha_base = date('ymhs');
    // Caracteres de cada tipo
    $lmin = 'abcdefghijkmnpqrstuvwxyz';
    $lmai = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
    $num = '1234567890';
    $simb = '!@#$%*-';
    // Variáveis internas
    $retorno = '';
    $caracteres = $senha_base;
    // Agrupamos todos os caracteres que poderão ser utilizados
    $caracteres .= $lmin;
    if ($maiusculas) $caracteres .= $lmai;
    if ($numeros) $caracteres .= $num;
    if ($simbolos) $caracteres .= $simb;
    // Calculamos o total de caracteres possíveis
    $len = strlen($caracteres);
    for ($n = 1; $n <= $tamanho; $n++) {
        // Criamos um número aleatório de 1 até $len para pegar um dos caracteres
        $rand = mt_rand(1, $len);
        // Concatenamos um dos caracteres na variável $retorno
        $retorno .= $caracteres[$rand-1];
    }
    return $retorno;
}



public function getFoto()
    {
        return $this->foto;
    }

    public function carregaCaminhoFoto($foto)  {
        $this->foto = $foto;
}

    public function gerarNovoNome( $nomeAntigo )
    {
        // Pega extensão da imagem
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $nomeAntigo, $ext);
        // Gera um nome único para a imagem
        $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

        return $nome_imagem;
    }

    public function setFoto($foto)
    {

        // esta variavel precisa existir, mesmo que vazia
        $nome_imagem = null;

        // armazena erros se houver
        $error = array();

        // Se a foto estiver sido selecionada
        if (!empty($foto["name"]))
        {
            // Largura máxima em pixels
            $largura = 2000;
            // Altura máxima em pixels
            $altura = 2000;
            // Tamanho máximo do arquivo em bytes
            $tamanho = 1000000;
            // Verifica se o arquivo é uma imagem
            if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"]))
            {
                $error[1] = "Isso não é uma imagem.";
            }

            // Pega as dimensões da imagem
            $dimensoes = getimagesize($foto["tmp_name"]);

            // Verifica se a largura da imagem é maior que a largura permitida
            if($dimensoes[0] > $largura)
            {
                $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
            }

            // Verifica se a altura da imagem é maior que a altura permitida
            if($dimensoes[1] > $altura)
            {
                $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
            }

            // Verifica se o tamanho da imagem é maior que o tamanho permitido
            if($foto["size"] > $tamanho)
            {
                $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
            }
// Se não houver nenhum erro
            if (count($error) == 0)
            {
                $nome_imagem = $this->gerarNovoNome($foto["name"]);

                // caso o diretório não exista
                if( !is_dir("fotos") )
                    mkdir("fotos", "0777", true);

                // Caminho de onde ficará a imagem
                $caminho_imagem = "fotos" . DIRECTORY_SEPARATOR . $nome_imagem;
                // Faz o upload da imagem para seu respectivo caminho
                move_uploaded_file($foto["tmp_name"], $caminho_imagem);
                $this->foto = $foto;
            }
           else
            {
                echo "<pre>";
                echo "Opa!, foto com os seguintes problemas: <br>";
                echo implode("<br>", $error);
                echo ("");
                exit;

            }

            return $nome_imagem;

}
    }


}

noivosDAO

<?php
class NoivosDAO
{
    private $conexao;
    function __construct($conexao){
        $this->conexao = $conexao;
    }

    function insereNoivos ($noivos, $nome_imagem) {

  $query = "insert into noivos (nome1, sobrenome1, email, nome2, sobrenome2,
              telefone , rua, numero, cep, cidade, senha, foto) values ('{$noivos->getNome1()}', '{$noivos->getSobrenome1()}', '{$noivos->getEmail()}', '{$noivos->getNome2()}','{$noivos->getSobrenome2()}', {$noivos->getTelefone()}, '{$noivos->getRua()}', '{$noivos->getNumero()}', '{$noivos->getCep()}', '{$noivos->getCidade()}', '{$noivos->getSenha()}', '" .$nome_imagem. "')";

      echo ($query); 

  return mysqli_query($this->conexao, $query);
}

Na mosca Gabriel !!!!!!

valeu obrigado mesmo!!!