Visualizzazione dei risultati da 1 a 10 su 10

Discussione: script php

  1. #1

    script php

    Buongiorno a tutti, premetto che mi sto addentrando adesso nel linguaggio lato server e non sono molto ferrato.
    vorrei mettere una newsletter sul mio piccolo sito che ho realizzato in html, tra le varie prove che ho fatto, scaricando i vari script che sono su questo sito, ho trovato questo script: http://php.html.it/script/vedi/1960/newsletterina/ , che in parte mi funziona, cioè crea i record nel database con le varie email che si registrano. Il problema è che non riesco ad accedere al pannello admin, infatti mi da questa dicitura:

    Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.tavillago.it/htdocs/newsletter/header.php:4) in /home/mhd-01/www.tavillago.it/htdocs/newsletter/admin.php on line 47

    io inserisco user e pass, come indicato nelle istruzioni ma mi appare questa dicitura, qualcuno sa cosa significa??? ho cercato di interpretare (non conoscendo molto il linguaggio) che alla riga 47 del documento admin.php c'è un problema, ma quale???
    :master: :master:
    grazie a tutti
    roberts

  2. #2
    Viene mandato del testo al browser prima della riga 47, questo è un problema, alla riga 47 deve mandarti un'header.

  3. #3
    scusami, ma non essendo molto tecnico non capisco cosa significa. Ti scrivo cosa c'è scritto nel codice:
    if(isset($_POST['submit1'])) {

    $db = mysql_connect($db_host, $db_user, $db_password) or die('Errore connessione database');

    mysql_select_db($db_name, $db) or die('Errore selezione database');

    if(($_POST['user']) && ($_POST['pwd'])) {

    $query = "SELECT admin_ID FROM admin_newsletter WHERE user = '$_POST[user]' AND password = '$_POST[pwd]'";
    $risultato = mysql_query($query);
    $num = mysql_num_rows($risultato);

    if($num>0) {
    Header("Location: $file?funzione=amministrazione");

    } else {
    echo"<script>alert('User o password sbagliati.');</script>";

    ------la riga 47 è quella dove c'è scritto: Header("Location: $file?funzione=amministrazione")
    si può rimediare?
    scusami se non ci capisco molto e grazie comunque per avermi risposto!!
    roberts

  4. #4
    potrebbe essere che non riesce a connettersi al database, quando ti mette quell'errore prova a guardare il codice html della pagina e guarda se prima dell'errore in sè ti scrive altro (a parte la struttura generica di un codice html)

  5. #5

    script php

    sembra che non scrivi niente prima, come è possibile che non si riesca a collegare al database?? comunque i record della tabella sul database li incrementa??
    ecco il codice della pagina:

    <html>
    <head>
    <title>Newsletter</title>
    <style type=text/css>
    .input{

    FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    border-width : 1;
    border-color : #333333;
    background : #FFFFFF;
    scrollbar-base-color:#99CCCC;
    }

    select{
    FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    border-width : 1;
    border-color : #333333;
    background : #FFFFFF;
    scrollbar-base-color:#666666;
    }

    .bottone{
    FONT-SIZE: 10px; COLOR: #black; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    border-width : 1;
    border-color : #999999;
    background : #FFFFFF;
    }

    form{
    margin-top: 0px;
    margin-bottom: 0px;
    }

    </style>
    </head>
    <body>
    <center><table border=1 bgcolor=#FFFFFF cellspacing=0 cellpadding=0 bordercolor=#000000 width=600>
    <td>
    <table border=1 cellspacing=0 cellpadding=2 bgcolor=#99CCCC bordercolor=#FFFFFF width=600>
    <td width=550><font face=verdana size=2>Pannello amministrazione</td>
    </table></td></table>

    Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.tavillago.it/htdocs/newsletter/header.php:4) in /home/mhd-01/www.tavillago.it/htdocs/newsletter/admin.php on line 47




    <table border=1 bgcolor=#FFFFFF cellspacing=0 cellpadding=2 bordercolor=#000000 width=150>
    <td><form action=/newsletter/admin.php method=post>
    <table border=0 cellspacing=0 cellpadding=0 bgcolor=#99CCCC bordercolor=#FFFFFF width=150>
    <td><font size=1 face=verdana>User:</td>
    <td><input type=text name=user class=input size=15></td>
    <tr>
    <td><font size=1 face=verdana>Pasword:
    </td>
    <td><input type=password name=pwd class=input size=15>
    <input type=submit name=submit1 class=bottone value=Login></td>
    </table></td></table></form>

    Indietro
    </body>
    </html>

  6. #6
    in teoria se deve farti una redirect alla sezione di amministrazione, l'header di redirect dovrebbe essere mandato prima di tutto quel codice html che hai postato.

  7. #7
    credo di aver capito il problema, ma non so come risolverlo, data la non perfetta conoscenza che ho.
    L'intera pagina del codice php dove c'è l'errore è questa (si può ovviare mettendo l'istruzione header prima?? il codice poi funziona?? o forse è meglio che trovo un'altro script?):
    <?php

    include("header.php");
    include("config.inc.php");
    $file = $_SERVER['PHP_SELF'];


    echo"
    <center><table border=1 bgcolor=$sfondo1 cellspacing=0 cellpadding=0 bordercolor=$bordo1 width=600>
    <td>
    <table border=1 cellspacing=0 cellpadding=2 bgcolor=$sfondo2 bordercolor=$bordo2 width=600>
    <td width=550><font face=verdana size=2>Pannello amministrazione</td>
    </table></td></table>";


    function login() {
    include("config.inc.php");
    global $file;

    echo"


    <table border=1 bgcolor=$sfondo1 cellspacing=0 cellpadding=2 bordercolor=$bordo1 width=150>
    <td><form action=$file method=post>
    <table border=0 cellspacing=0 cellpadding=0 bgcolor=$sfondo2 bordercolor=$bordo2 width=150>
    <td><font size=1 face=verdana>User:</td>
    <td><input type=text name=user class=input size=15></td>
    <tr>
    <td><font size=1 face=verdana>Pasword:
    </td>
    <td><input type=password name=pwd class=input size=15>
    <input type=submit name=submit1 class=bottone value=Login></td>
    </table></td></table></form>";

    }


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

    $db = mysql_connect($db_host, $db_user, $db_password) or die('Errore connessione database');

    mysql_select_db($db_name, $db) or die('Errore selezione database');

    if(($_POST['user']) && ($_POST['pwd'])) {

    $query = "SELECT admin_ID FROM admin_newsletter WHERE user = '$_POST[user]' AND password = '$_POST[pwd]'";
    $risultato = mysql_query($query);
    $num = mysql_num_rows($risultato);

    if($num>0) {
    Header("Location: $file?funzione=amministrazione");

    } else {
    echo"<script>alert('User o password sbagliati.');</script>";
    }
    }
    }





    function amministrazione() {

    include("config.inc.php");
    global $file;

    $db = mysql_connect($db_host, $db_user, $db_password) or die('Errore connessione database');
    mysql_select_db($db_name, $db) or die('Errore selezione database');

    $query = "SELECT mail FROM membri_newsletter ORDER BY membro_ID DESC";
    $ris = mysql_query($query);

    echo"


    <form name=andrea>
    <table border=1 bgcolor=$sfondo1 cellspacing=0 cellpadding=0 bordercolor=$bordo1 width=600>
    <td>
    <table border=1 cellspacing=0 cellpadding=2 bgcolor=$sfondo2 bordercolor=$bordo2 width=600>
    <td align=middle>Cambia user e pass.</td>
    <td align=middle>Crea/Invia una newsletter</td>
    <td align=middle><font size=1 face=verdana>Invia a: <select name=lista onChange = \"self.location = document.andrea.lista[document.andrea.lista.selectedIndex].value;\">\n
    ><option selected> ------ </option>"; while($array = mysql_fetch_array($ris)) {
    echo"<option value=admin.php?funzione=crea_newsletter&indirizzo =$array[mail]>$array[mail]</option>";
    }
    echo"</select></td></table></td></table></form>";

    }




    function cambia_pwd() {

    include("config.inc.php");
    global $file;

    amministrazione();

    echo"

    <font size=2 face=verdana>Inserisci il nuovo username e la nuova password.</font>

    <form action=$file method=post>
    <table border=1 bgcolor=$sfondo1 cellspacing=0 cellpadding=2 bordercolor=$bordo1 width=150>
    <td>
    <table border=0 cellspacing=0 cellpadding=1 bgcolor=$sfondo2 bordercolor=$bordo2 width=150>
    <td><font size=1 face=verdana>User:</td>
    <td><input type=text name=user2 class=input size=15></td>
    <tr>
    <td><font size=1 face=verdana>Pasword:
    </td>
    <td><input type=password name=pwd2 class=input size=15>
    <input type=submit name=submit2 class=bottone value=Cambia></td>
    </table></td></table></form>";
    }

    if(isset($_POST['submit2'])) {
    $db = mysql_connect($db_host, $db_user, $db_password) or die('Errore connessione database');
    mysql_select_db($db_name, $db) or die('Errore selezione database');

    $query = "UPDATE admin_newsletter SET user = '$_POST[user2]', password = '$_POST[pwd2]' WHERE admin_ID = '1'";
    $ris = mysql_query($query);

    if($ris) {
    echo"<font size=2 face=verdana>
    I dati sono stati aggiornati in: User: $_POST[user2] - Password: $_POST[pwd2]
    Rifai il login.</font>";
    } else {
    echo"Errore durante il cambiamento dei dati!";
    }
    }


    function crea_newsletter() {

    include("config.inc.php");
    global $file;

    amministrazione();

    $query = "SELECT * FROM indirizzi";
    $risultato = mysql_query($query);

    if($_GET['indirizzo'] != "") {

    $query3 = "SELECT indirizzi_ID FROM indirizzi WHERE indirizzi = '$_GET[indirizzo]'";
    $risultato3 = mysql_query($query3);
    $num = mysql_num_rows($risultato3);

    if($num != 0) {
    echo"<script>alert('L\'indirizzo è già stato selezionato!')</script>";

    } else {


    $query2 = "INSERT INTO indirizzi(indirizzi_ID, indirizzi) VALUES(null, '$_GET[indirizzo]')";
    $risultato2 = mysql_query($query2);
    Header("Location: $file?funzione=crea_newsletter");
    }
    }


    if($_GET['cancella'] != "") {
    $query = "DELETE FROM indirizzi WHERE indirizzi = '$_GET[cancella]'";
    $risultato = mysql_query($query);
    Header("Location: $file?funzione=crea_newsletter");
    }

    echo"
    <center>

    <table border=1 bgcolor=$sfondo1 cellspacing=0 cellpadding=2 bordercolor=$bordo1 width=600>
    <td><form action=$file?funzione=crea_newsletter method=post>
    <table border=0 cellspacing=0 cellpadding=1 bgcolor=$sfondo2 bordercolor=$bordo2 width=600>
    <td><font size=1 face=verdana>Oggetto:</td>
    <td><input type=text name=oggetto class=input size=99></td>
    <tr>
    <td valign=top><font size=1 face=verdana>Messaggio:
    </td>
    <td><textarea name=messaggio class=input cols=99 rows=20></textarea>
    <input type=submit name=submit3 class=bottone value=Invia></td>
    <tr>
    <td></td>
    <td><font size=1 face=verdana>Opzioni per l'invio

    <input type=checkbox name=tutti>Invia a tutti.

    *Invia a: "; while($array = mysql_fetch_array($risultato)) { echo"<a href=admin.php?funzione=crea_newsletter&cancella=$ array[1]>$array[1]</a> - "; } echo"

    * Se vuoi inviare la newsletter a tutti gli iscritti
    seleziona l'opzione \"Invia a tutti\", altrimenti tramite il menu a tendina in alto scegli i destinatari e lascia deselezionata l'opzione \"Invia a tutti\".</td>
    </table></td></table></form>";


    if($_POST['submit3'] && $_POST['messaggio'] && $_POST['oggetto']) {

    if($_POST['tutti']) {
    $query = "SELECT * FROM membri_newsletter";
    $risultato = mysql_query($query);

    $query2 = "SELECT membro_ID FROM membri_newsletter";
    $risultato2 = mysql_query($query2);
    $num = mysql_num_rows($risultato2);



    $messaggio_formattato = $_POST['messaggio'];

    $mess = <<<EOMESS
    $messaggio_formattato
    EOMESS;

    for($i=0;$i<$num;$i++) {

    $mail = mysql_result($risultato, $i, 'mail');


    $invio = mail("$mail", "$_POST[oggetto]", "$mess", "From: $mail_admin");

    }

    if($invio) {
    echo"<script>alert('Newsletter inviata con successo');</script>";

    }
    } else {

    $query = "SELECT * FROM indirizzi";
    $risultato = mysql_query($query);

    $query2 = "SELECT indirizzi_ID FROM indirizzi";
    $risultato2 = mysql_query($query2);
    $num = mysql_num_rows($risultato2);



    $messaggio_formattato = $_POST['messaggio'];

    $mess = <<<EOMESS
    $messaggio_formattato
    EOMESS;

    for($i=0;$i<$num;$i++) {

    $mail = mysql_result($risultato, $i, 'indirizzi');
    $invio = mail("$mail", "$_POST[oggetto]", "$mess", "From: $mail_admin");

    }

    if($invio) {
    echo"<script>alert('Newsletter inviata con successo');</script>";
    $query = "TRUNCATE TABLE indirizzi";
    $risultato = mysql_query($query);
    }

    }
    }




    }



    switch($_GET['funzione']) {

    case amministrazione:
    amministrazione();
    break;

    case cambia_pwd:
    cambia_pwd();
    break;

    case crea_newsletter:
    crea_newsletter();
    break;

    default:
    login();
    }


    include("footer.html");
    ?>

  8. #8
    Personalmente ti consiglierei di cercare un'altro script.
    Puoi ovviamente anche cercare di sistemare questo, alcune cose però se non fatte correttamente (come spostamenti) potrebbero non funzionarti.

  9. #9
    vediamo se riesco a pasticciare qualcosa, mi servirà anche come esercitazione....
    comunque non è che sapresti indicarmi qualche script di mailing list facile da installare???
    ti ringrazio per la disponibilità
    ciao

    Roberts

  10. #10
    non ho mai usato determinati script, ma puoi cercare su php.html.it nella sezione script

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.