phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Problema Guestbook php

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Problema Guestbook php

Messaggio da Jmdesign » 22/12/2015, 11:52

Ciao a tutti avrei un problema con un guestbook php , vorrei inserire il captcha ma ogni volta che lo faccio non mi funziona nella home , come se non riconosce i dati, posso scaricare o aggiungere qualcosa di preimpostato? magari sono io a sbagliate e aggiungere il captcha nel posto sbaglaito..
questo è il guestbook.php :

Codice: Seleziona tutto

    // Recupero i campi dal modulo
    $nome = $_POST["nome"];
    $messaggio = $_POST["messaggio"];

    // Recupero la data corrente
    $data = date("d/m/Y ");

    // Recupero il file di testo in cui scrivere i messaggi
    $file = "guestbook.txt";
	
    // Controlo che i dati siano corretti
    if ($nome == "")
    {
        echo "Inserisci il tuo nome";
    }
    elseif ($messaggio == "")
    {
        echo "Inserisci il messaggio";
    }
    else
    {
        // Apro il file di testo e ci srivo dentro
        $guestbook = fopen($file, "a");
        $scrivi = "<b><font face=”Arial”>" . $nome . "</b><br>\r";
        $scrivi .= $messaggio . "<br>\r";
        $scrivi .= "<i>Scritto in data " . $data . "</i><hr></Font>\r";
        fwrite($guestbook, $scrivi);
        fclose($guestbook);
mentre questo è il form del guestbook nella home

Codice: Seleziona tutto

<h2>Guestbook<br />
                <span> Lasciami un messaggio / Leave me a message...</span></h2>  <form method="post" action="insert.php">
Tuo nome
/ Your name<br />
<input type="text" name="nome" />
<br />
Messaggio
/ Message<br />
<textarea name="messaggio" rows="5" cols="30"></textarea><br /><br />
<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image" /><br />
<a href="#" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">[Cambia immagine / Change Image]</a><br />
<br />
Inserisci il codice / Insert code: 
<input type="text" name="captcha_code" size="10" maxlength="6" />
<br />

<br />
<br />
<input type="submit" value="Firma il Guestbook" />
<br />
<br />
              </form>
se lascio in questo modo ovviamente funziona perchè non ho inserito il captcha nel php ma vorrei coprire per lo spam

Grazie per un eventuale risposta

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Problema Guestbook php

Messaggio da frank » 22/12/2015, 13:40


Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Re: Problema Guestbook php

Messaggio da Jmdesign » 22/12/2015, 14:44

forse mi sono spiegato male.. il guestbook sono già riuscito a farlo il problema sta nell'inserire il captcha nel php..

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Problema Guestbook php

Messaggio da frank » 22/12/2015, 14:46

Appunto, il mio ha il captcha.

Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Re: Problema Guestbook php

Messaggio da Jmdesign » 22/12/2015, 22:19

si più o meno è una cosa del genere quella che voglio.. diciamo che voglio che il captcha che ho inserito nel form funzioni passando per il php.. ora se io sbaglio il codice il messaggio viene caricato ugualmente, ho provato con varie ricerche su google ma non sono riuscito a trovare quello che fa al caso mio :/ non so se sono riuscito a spiegarmi

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Problema Guestbook php

Messaggio da frank » 23/12/2015, 0:35

Devi mettere il controllo php, questo è il mio:

Codice: Seleziona tutto

$validator = htmlspecialchars(trim($_POST['validator']));
//dichiaro la variabile e la rendo vuota, altrimenti da errore
$errore = ''; 
...
//Validatore (Campo obbligatorio)
if ($validator == "") {  
$errore .= "&bull;&nbsp;&nbsp;Inserire il Codice<br><br>"; 
}
if ($errore) {
$ritenta ="$errore"; 
$ritenta .="<meta http-equiv=\"refresh\" content=\"2; url=index.php\">"; 
}
else {
$meta = "Messaggio inviato!"; 
$meta .= "<meta http-equiv=\"refresh\" content=\"2; url=index.php\">"; 
...

<!DOCTYPE html> 
<head>
<meta charset="utf-8">
<script type="text/javascript" src="script.js"></script>
<link rel="stylesheet" type="text/css" media="screen" href="photo.css">
<title>Scrivimi2</title>
</head>
	
<body id="scriv2">

<?php
if(isset($ritenta)) echo $ritenta;
if(isset($meta)) echo $meta;
?>  

</body>
</html>

Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Re: Problema Guestbook php

Messaggio da Jmdesign » 23/12/2015, 10:35

sono un novellino :oops: io ho fatto così

Codice: Seleziona tutto

<?php
    // Recupero i campi dal modulo
    $nome = $_POST["nome"];
    $messaggio = $_POST["messaggio"];

    // Recupero la data corrente
    $data = date("d/m/Y ");

    // Recupero il file di testo in cui scrivere i messaggi
    $file = "guestbook.txt";
if ($_SESSION['CODICE']==$_POST['codice'])	
// codicecap = codice giusto, codicecapins = codice inserito dall'utente
$codicecap=$_POST['captcha']; 
$codicecapins=$_POST['txtcaptcha'];
// Controllo del codice Captcha
if ($codicecapins <> $codicecap)

// Non importa se l'utente inserisce il codice in maiuscolo o minuscolo
$codicecapins=strtolower($codicecapins);
    // Controlo che i dati siano corretti
    if ($nome == "")
    {
        echo "Inserisci il tuo nome";
    }
    elseif ($messaggio == "")
    {
        echo "Inserisci il messaggio";
    }
    else

    {
        // Apro il file di testo e ci srivo dentro
        $guestbook = fopen($file, "a");
        $scrivi = "<b><font face=”Arial”>" . $nome . "</b><br>\r";
        $scrivi .= $messaggio . "<br>\r";
        $scrivi .= "<i>Scritto in data " . $data . "</i><hr></Font>\r";
        fwrite($guestbook, $scrivi);
        fclose($guestbook);

 
    }
?>
e nella home ho cambiato inserendo questo

Codice: Seleziona tutto

<?php
 // Generazione carattere Captcha
 function generacod()
 {
$caratteri="1234567890abcdefghijklmnopqrstuvwxyz";
$cargen=$caratteri{rand(0,35)};
$arrgen[0]=$cargen;
$codice=$cargen;
for ($i=1;$i<5;$i++)
{
$cargen=$caratteri{rand(0,35)};
$arrgen[$i]=$cargen;
$codice.=$cargen;
}
$arrgen[5]=$codice;
return $arrgen;
}
 
// Generazione del codice Captcha
$codicegen=generacod();
 ?>
               <h2>Guestbook<br />
                <span> Lasciami un messaggio / Leave me a message...</span></h2>  <form method="post" action="guestbook3.php">
Tuo nome
/ Your name<br />
<input type="text" name="nome" />
<br />
Messaggio
/ Message<br />
<textarea name="messaggio" rows="5" cols="30"></textarea><br /><br />
<table>
<tr> 
<!-- Caricamento delle immagini Captcha -->
<td><?php echo "<img src='captcha/$codicegen[0].jpg'>"; ?></td>
<td><?php echo "<img src='captcha/$codicegen[1].jpg'>"; ?></td>
<td><?php echo "<img src='captcha/$codicegen[2].jpg'>"; ?></td>
<td><?php echo "<img src='captcha/$codicegen[3].jpg'>"; ?></td>
<td><?php echo "<img src='captcha/$codicegen[4].jpg'>"; ?></td>
</tr>
</table>
<table width="200" border="0">
<tr>
Inserisci il codice / Insert code:
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $lan[9]; ?><br>
<input name="txtcaptcha" type="text" id="txtcaptcha" style="font-family:Verdana;font-size:10px;" size="10" maxlength="6">
<br />

<br />
<?php 
// Si preleva il codice Captcha dall'array generato dalla funzione generacod() 
$codicecap=$codicegen[5];

// Si invia il codice generato alla pagina insert.php tramite campo nascosto
echo "<input type='hidden' name='captcha' value='$codicecap'>";
?>
<br />
<input type="submit" value="Firma il Guestbook" />
<br />
<br />
              </form>
al 99% ho sbagliato nel php , forse perchè ho seguito varie guide e mi sono confuso con i vari codici.. ci sto perdendo anni di vita

Avatar utente
Sir Xiradorn
Grafico
Grafico
Messaggi: 1659
Iscritto il: 11/08/2009, 12:41
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.15
Database: MariaDB 10.1.9
Località: Lontano....
Contatta:

Re: Problema Guestbook php

Messaggio da Sir Xiradorn » 23/12/2015, 16:38

Allora vediamo di ordinare un po le idee. Fammi capire una cosa. Tu vuoi fare il guestbook in maniera da avere il tutto in un certo file di testo che poi riutilizzi per fare il prelievo delle righe. Una soluzione semplicistica e che può generare problemi di sicurezza. Ma stai facendo pratica e fai bene a muoverti a piccoli passi.

Premessa a parte e un consiglio che devi tatuarti a fuoco sulla pelle se vuoi programmare: per favore indenta il codice!!!! Sembra una cacchiata ma fidati che quando ne capirai il potere non sbaglierai più come prima e potrai contenere gli errori e individuarli più facilmente.

Tornando al captcha tu vuoi fare si che ci sia un certo codice casuale che sia poi collegato a delle immagini che poi gli utenti devono digitare per essere elaborati il seguito dall'altra pagina e che devono quindi tramite una sessione recuperare i dati in corso e elaborarli.

La domanda è perchè usi una sessione se non hai una chiave di sessione?

Codice: Seleziona tutto

if ($_SESSION['CODICE']==$_POST['codice']) 
che volevi confrontare? Hai creato altrove questa sessione?

Piccola nota questo

Codice: Seleziona tutto

if ($codicecapins <> $codicecap) 
è equivalente perfettamente a

Codice: Seleziona tutto

if ($codicecapins != $codicecap) 
che puoi rendere ancora più stringente

Codice: Seleziona tutto

if ($codicecapins !== $codicecap) 
!= significa non uguale
!== questo invece è il non identico che si contrappone all'ovvio ===
Sir Xiradorn
Immagine
~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~

Immagine
Stargate - phpbb 3.0.x || 3.1.x || 3.2.x

Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Re: Problema Guestbook php

Messaggio da Jmdesign » 23/12/2015, 19:01

Allora devo aver fatto confusione con i vari tutorial :cry: in alcuni non spiegavano come inserirlo nella home in altri non c'era il captcha quindi devo aver fatto un macello ... :roll: quindi devo rivedermi bene quella parte.. si quello che voglio è proprio questo cioè far apparire queste lettere da far digitare..se le metto solo nella home anche digitando sbagliate inserisce ugualmente il commento..

in un caso avevo questo che ho fatto dai vari tutorial avevo questo:

Codice: Seleziona tutto

<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image" /><br />
<a href="#" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">[Cambia immagine / Change Image]</a><br />
<br />
Inserisci il codice / Insert code: 
<input type="text" name="captcha_code" size="10" maxlength="6" />
<br />
in qeusto caso anche mettendo il codice giusto non andava comunque.. posso fare il captcha anche solo nella home? oppure devo farlo figurare anche nel php? perchè ho anche trovato alcuni siti che mi facevano scaricare roba già pronta ma non riesco a farla funzionare dal php :| :|

Jmdesign
Utente
Utente
Messaggi: 59
Iscritto il: 17/12/2015, 22:26
Sesso: Maschio
Versione: 3.0.0
Server: Windows

Re: Problema Guestbook php

Messaggio da Jmdesign » 23/12/2015, 19:08

Avete da suggerirmi qualche tutorial da seguire per creare questo captcha?

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti